dirty writeback 튜닝과 프레임 드롭의 인과관계
버퍼링된 쓰기(write())는 대부분 페이지 캐시에만 반영되고 바로 리턴되지만, dirty 페이지가 일정 기준을 넘으면 커널이 그 프로세스의 write() 호출 자체를 블로킹시켜 디스크가 따라잡을 때까지 강제로 기다리게 한다. 영상 인코더나 로깅 스레드처럼…
버퍼링된 쓰기(write())는 대부분 페이지 캐시에만 반영되고 바로 리턴되지만, dirty 페이지가 일정 기준을 넘으면 커널이 그 프로세스의 write() 호출 자체를 블로킹시켜 디스크가 따라잡을 때까지 강제로 기다리게 한다. 영상 인코더나 로깅 스레드처럼…
애플리케이션 처리량이 갑자기 떨어졌는데 CPU/메모리는 멀쩡하다면 네트워크 재전송을 의심해봐야 한다. 그런데 netstat -s나 nstat은 시스템 전체 누적 카운터만 보여줘서 정작 어떤 연결이 문제인지는 짚어주지 못한다. 이 글에서는 ss -i로 개별…
최신 커널은 블록 장치마다 기본으로 mq-deadline을 쓰지만, /sys/block/<dev>/queue/scheduler를 열어보면 bfq, kyber 같은 대안이 함께 나열돼 있다. 이름만 봐서는 언제 바꿔야 하는지 감이 안 오는데, 셋은 애초에 최적화하는 목표 자체가 다르다.…
애플리케이션에서 fsync() 호출이 가끔 몇 ms에서 수십 ms까지 튀는데, iostat의 디바이스 평균 지연시간만 봐서는 그게 큐잉 때문인지 디스크 자체가 느린 건지 구분이 안 될 때가 있다. blktrace는 블록 계층의 각…
커널에 기능을 하나 추가하려고 매번 전체 커널을 재컴파일하고 재부팅해야 한다면 개발 사이클이 너무 느려진다. Loadable Kernel Module(LKM)은 이 문제를 insmod/rmmod만으로 런타임에 코드를 넣고 뺄 수 있게 해준다. 이 글에서는 최소…
프로세스 간에 잠깐 쓰고 버릴 데이터를 주고받을 때 /tmp에 실제 파일을 만들면 디스크(또는 tmpfs) 경로가 남고, 정리를 깜빡하면 흔적이 계속 쌓인다. memfd_create()는 파일시스템 어디에도 나타나지 않는 익명 메모리 파일을 만들어…
커널 보안 패치가 나와도 프로덕션 서버는 재부팅 창을 잡기가 쉽지 않다. 클러스터 전체를 순차적으로 내렸다 올리는 동안 서비스 영향을 감수해야 하고, 그 사이 취약점은 그대로 열려 있다. Canonical Livepatch는 실행…
virsh 명령을 손으로 하나씩 치면서 VM을 만들고 지우는 건 한두 대일 때는 괜찮지만, 스토리지 풀 준비·도메인 정의·스냅샷·정리까지 반복해야 하는 상황이라면 스크립트로 묶는 게 낫다. 이 글에서는 virt-install로 도메인 XML을 자동…
2026년 7월 19일 하루에만 431건, 다음 날 9건이 더해져 총 440건의 CVE 보안 권고가 linux-cve-announce 메일링 리스트에 한꺼번에 올라왔습니다. 리눅스 커널이 자체 CVE Numbering Authority(CNA)로 활동하기 때문에 가능한 규모지만, 보안…
이번 주 LWN.net 위클리 에디션 주요 내용이다. RCU를 대체할 수 있는 새로운 락-프리 메커니즘 "hazard pointer"의 커널 도입 논의, LSFMM+BPF 서밋 후속 취재로 나온 스왑 백엔드 추상화·netkit 제로카피 네트워킹·인라인 함수…