perf와 flamegraph로 서비스 CPU hotspot 시각화

서비스 CPU 병목 현상, Perf와 Flame Graph로 시각화하기 서비스 운영 중 갑자기 CPU 사용량이 급증하거나 응답 시간이 느려지는 경우, 어디가 문제인지 파악하기가 쉽지 않습니다. 이때 Perf와 Flame Graph는 강력한 도구 조합이 되어 문제의 원인을 시각적으로 파악하고 해결하는 데 도움을 줄 수 있습니다. 이 글에서는 Perf를 사용하여 CPU 프로파일링 데이터를 수집하고, Flame Graph를 통해 이를 시각화하여 […]

커널 파라미터 튜닝으로 TCP Throughput 2배 높이기

커널 파라미터 튜닝으로 TCP Throughput 2배 높이기 TCP throughput은 네트워크 성능의 핵심 지표 중 하나입니다. 이는 네트워크를 통해 얼마나 많은 데이터를 안정적으로 전송할 수 있는지를 나타내며, 웹사이트 로딩 속도, 파일 전송 속도, 스트리밍 품질 등 다양한 사용자 경험에 직접적인 영향을 미칩니다. 특히 대규모 데이터 센터, 클라우드 환경, 고성능 컴퓨팅 시스템에서는 TCP throughput 최적화가 시스템 전체 […]

High Load 상황에서 runqueue latency 분석 방법

High Load 상황에서 Runqueue Latency 분석 완벽 가이드 High Load 상황에서 시스템 성능 저하의 원인을 파악하는 것은 매우 중요합니다. 그 중에서도 Runqueue Latency는 CPU 자원 경쟁으로 인해 발생하는 성능 문제를 진단하는 데 핵심적인 지표입니다. 이 가이드에서는 Runqueue Latency의 개념부터 분석 방법, 실질적인 문제 해결 전략까지 자세히 다룹니다. Runqueue Latency란 무엇일까요? Runqueue Latency는 프로세스가 CPU를 사용하기 […]

프로세스 스케줄링에서 CFS의 Weight 기반 공정성 실험

프로세스 스케줄링에서 CFS의 Weight 기반 공정성 실험 알아보기 프로세스 스케줄링은 운영체제의 핵심 기능 중 하나로, CPU와 같은 시스템 자원을 여러 프로세스에 효율적으로 할당하는 역할을 합니다. 특히 CFS (Completely Fair Scheduler)는 리눅스 운영체제에서 기본적으로 사용되는 스케줄러로, ‘완전한 공정성’을 목표로 설계되었습니다. CFS는 각 프로세스에 CPU 시간을 공정하게 분배하기 위해 Weight 기반의 스케줄링 방식을 사용합니다. 이 글에서는 CFS의 […]

커널 수준에서의 I/O 병목 진단: blk-mq와 io_uring 분석

커널 수준 I/O 병목 진단 blk-mq와 io_uring 분석: 성능 최적화를 위한 가이드 I/O(Input/Output) 병목 현상은 시스템 성능 저하의 주범 중 하나입니다. 특히 데이터베이스, 웹 서버, 빅데이터 처리 시스템 등 I/O 집약적인 애플리케이션에서는 더욱 심각한 문제가 될 수 있습니다. 이 글에서는 리눅스 커널 수준에서 I/O 병목을 진단하고 해결하는 데 사용되는 두 가지 핵심 기술인 blk-mq와 io_uring을 […]

seccomp 필터링을 통한 최소 권한 실행 환경 만들기

seccomp 필터링을 통한 최소 권한 실행 환경 구축 가이드 보안은 모든 소프트웨어 개발 및 운영의 핵심 요소입니다. 특히, 외부 입력을 처리하거나 네트워크에 연결된 프로그램은 보안 취약점에 노출될 위험이 높습니다. 이러한 위험을 완화하기 위한 효과적인 방법 중 하나가 바로 seccomp (Secure Computing Mode) 필터링을 이용한 최소 권한 실행 환경 구축입니다. seccomp란 무엇이며 왜 중요할까요? seccomp는 리눅스 […]

SSH Hardening Beyond Passwords: FIDO2 & Hardware Token 연동

SSH 보안 강화 패스워드 너머 FIDO2 & 하드웨어 토큰 연동 가이드 SSH(Secure Shell)는 서버에 안전하게 접속하고 관리하기 위한 필수적인 프로토콜입니다. 하지만 단순히 패스워드만을 사용하는 SSH는 무차별 대입 공격, 피싱, 키로깅 등 다양한 보안 위협에 취약합니다. 이러한 위협을 효과적으로 방어하기 위해 FIDO2와 하드웨어 토큰을 SSH 인증에 통합하는 것이 강력한 해결책이 될 수 있습니다. 이 가이드에서는 FIDO2와 […]

Auditd로 시스템 콜 수준 침입 감지 구축

Auditd 시스템 콜 수준 침입 감지 구축 가이드 시스템 보안은 끊임없이 진화하는 위협에 맞서 싸우는 지속적인 과정입니다. 침입 탐지 시스템(IDS)은 이러한 위협을 식별하고 대응하는 데 중요한 역할을 합니다. Auditd는 Linux 시스템에서 시스템 콜 수준의 활동을 감사하는 강력한 도구이며, 이를 활용하여 효과적인 침입 탐지 시스템을 구축할 수 있습니다. Auditd란 무엇인가 Auditd는 Linux 감사 시스템의 사용자 공간 […]

chroot와 namespace의 보안 경계가 실제로는 허물어지는 이유

chroot와 네임스페이스 보안 경계의 허점 파헤치기 chroot와 네임스페이스는 시스템 보안을 강화하기 위해 오랫동안 사용되어 온 기술입니다. 마치 컨테이너처럼 프로세스를 격리된 환경에 가두어, 만약 프로세스가 해킹당하더라도 전체 시스템에 대한 피해를 최소화하는 것이 목표입니다. 하지만 완벽한 보안은 존재하지 않듯, chroot와 네임스페이스 역시 완벽한 방어막은 아닙니다. 이 글에서는 왜 chroot와 네임스페이스가 완벽한 보안 경계를 제공하지 못하는지, 그리고 어떻게 […]

PAM(Pluggable Authentication Module)의 인증 흐름 역추적

PAM 인증 흐름 역추적, 왜 알아야 할까요? PAM, 즉 Pluggable Authentication Modules는 리눅스 시스템에서 사용자 인증을 처리하는 핵심 구성 요소입니다. 사용자가 로그인할 때, `sudo` 명령어를 사용할 때, 또는 다른 서비스에 접근할 때, PAM은 다양한 인증 방법을 통해 사용자를 확인합니다. PAM의 동작 방식을 이해하는 것은 시스템 보안을 강화하고 문제 해결 능력을 향상시키는 데 매우 중요합니다. 잘못된 […]