delayacct 사용법
CPU 사용률은 낮은데 프로세스가 유독 느리게 느껴질 때가 있다. top이나 ps는 프로세스가 CPU를 얼마나 썼는지는 보여주지만, 그 프로세스가 CPU를 기다리느라 얼마나 시간을 날렸는지, 디스크 I/O나 스왑·메모리 회수 때문에 얼마나 블로킹됐는지는…
Linux Kernel
CPU 사용률은 낮은데 프로세스가 유독 느리게 느껴질 때가 있다. top이나 ps는 프로세스가 CPU를 얼마나 썼는지는 보여주지만, 그 프로세스가 CPU를 기다리느라 얼마나 시간을 날렸는지, 디스크 I/O나 스왑·메모리 회수 때문에 얼마나 블로킹됐는지는…
특정 프로세스가 어떤 시스템 콜을 얼마나 자주 호출하는지, 혹은 파일 하나를 여는 데 왜 갑자기 수십 밀리초가 걸리는지 알아내야 할 때 strace부터 떠올리기 쉽다. 하지만 strace는 매 시스템 콜마다 대상…
리눅스 커널의 rtmutex(real-time mutex)는 스레드 간 우선순위 역전을 막기 위한 priority inheritance 로직을 담고 있는, 십수 년 넘게 손댈 일이 거의 없던 오래된 락(lock) 서브시스템입니다. 그런데 2026년 7월, 바로 이…
free나 vmstat으로 메모리 상태를 보면 실제 사용 중인 메모리보다 buff/cache 항목이 훨씬 큰 경우가 많다. 이 대부분이 Page Cache인데, page_type이나 page->flags를 직접 들여다보지 않고서는 특정 페이지가 왜 캐시에 남아 있는지,…
동시접속이 많은 웹 서버나 DB 서버를 운영하다 보면 애플리케이션 코드에는 문제가 없는데도 특정 부하 구간에서 연결이 끊기거나 응답이 느려지는 상황을 만난다. 원인을 따라가 보면 애플리케이션이 아니라 커널 기본값이 병목인 경우가…
리눅스 커널의 패킷 필터링 서브시스템 nf_tables(넷필터)에서 발견된 CVE-2026-23111은 권한 없는 로컬 사용자가 root 권한을 얻을 수 있는 use-after-free 취약점입니다. 더 놀라운 점은 이 버그의 원인이 코드 한 글자, 정확히는 논리…
여러 개의 락(lock)을 다루는 드라이버나 서브시스템을 작성하다 보면, 어떤 경로에서는 lock_a를 먼저 잡고 lock_b를 나중에 잡는데 다른 경로에서는 반대로 lock_b를 먼저 잡는 실수를 저지르기 쉽다. 이런 ABBA 데드락은 두 경로가…
ps aux로 프로세스 목록을 보거나, 좀비(zombie) 프로세스가 쌓여서 시스템이 이상하게 동작하는 걸 겪어본 적이 있다면 "프로세스가 어떻게 뜨고, 어떻게 관리되고, 어떻게 사라지는가"를 커널 관점에서 이해할 필요가 생긴다. 유저 공간에서는 fork()/exec()…
카메라, 비디오 코덱, 디스플레이 같은 DMA 디바이스는 종종 물리적으로 연속된(contiguous) 대용량 버퍼가 필요하다. CPU와 달리 이런 디바이스는 MMU로 흩어진 페이지를 하나의 연속 주소 공간처럼 매핑하는 게 불가능한 경우가 많기 때문이다.…
라즈베리파이 OS에는 이미 최신 커널이 올라가 있고, CONFIG_BPF_SYSCALL과 CONFIG_BPF_JIT도 기본으로 켜져 있어서 단순한 eBPF 프로그램은 커널을 새로 빌드하지 않아도 로드된다. 문제는 그다음부터다. bpftrace나 최신 BCC 도구 상당수는 BTF(BPF Type Format)…