태그: #linux
GPU·LLM·MLOps·쿠버네티스, 그리고 마음가짐에 관한 글 · 90 편
Too many open files 완전 해결 — ulimit을 올려도 안 되는 이유
서버 로그에 accept4 failed (24: Too many open files)가 찍히고 ulimit -n을 올렸는데도 그대로입니다. 이 증상 뒤에는 서로 독립적인 세 가지 한계가 있습니다. 프로세스별 RLIMITNOFILE, 시스템 전역 fs.file-max, 그리고 systemd 서비스의 LimitNOFILE이 셸의 ulimit 설정을 완전히 무시한다는 사실입니다. /proc/PID
2026-07-26 · 22 분 읽기 #linux#systemd#file-descriptor#troubleshooting#containers용량이 남았는데 No space left on device — inode 고갈, 삭제된 열린 파일, 예약 블록
df는 여유 공간을 보여 주는데 파일 하나를 만들지 못하고 ENOSPC가 납니다. 원인은 거의 항상 다섯 가지 중 하나입니다. inode 고갈, 삭제됐지만 프로세스가 열고 있는 파일, ext4의 예약 블록, 다른 파일시스템이 겹쳐 마운트되어 보이지 않는 파일, 그리고 컨테이너의 오버레이 상한입니다. 각각을 df -i, lsof +L1, tune2fs, 바인드 마운트로 어떻게 확정하고 무엇으로
2026-07-26 · 25 분 읽기 #linux#filesystem#ext4#troubleshooting#storageOOM Killer가 프로세스를 죽였을 때 — dmesg 로그 해독부터 cgroup OOM 구분까지
프로세스가 아무 로그도 남기지 않고 사라졌고 종료 코드는 137입니다. 커널 OOM Killer가 남긴 dmesg 리포트를 한 줄씩 읽는 법, badness 점수가 계산되는 방식과 가장 큰 프로세스가 아닌 다른 프로세스가 죽는 이유, 시스템 전역 OOM과 cgroup v2 memory.max에 의한 컨테이너 OOM을 로그만 보고 구분하는 법을 정리합니다. overcommitmemory 0/1
2026-07-26 · 27 분 읽기 #linux#memory#oom#cgroups#kubernetesCPU steal time과 스로틀링 — top의 st, 버스터블 크레딧, CFS 쿼터를 가르는 법
CPU 사용률은 40%인데 p99 지연이 튀고, top의 st 열에는 20%가 찍혀 있습니다. 겉으로 비슷해 보이는 이 증상에는 세 가지 전혀 다른 원인이 있습니다. 하이퍼바이저가 vCPU에 물리 CPU를 주지 않는 steal time, 버스터블 인스턴스의 CPU 크레딧 고갈, 그리고 top에 아예 보이지 않는 cgroup CFS 쿼터 스로틀링입니다. st가 몇 퍼센트부터 문제인지, nrth
2026-07-26 · 28 분 읽기 #linux#cpu#cgroups#kubernetes#cloudsystemd v261 — PID 1에 들어온 단계적 롤아웃, 클라우드 IMDS 흡수, 그리고 dlopen 전환의 완성
2026년 6월 19일 릴리스된 systemd v261은 유닛을 fleet의 지정 비율에서만 켜는 ConditionFraction=, 머신 태그로 링을 나누는 ConditionMachineTag=, 그리고 9개 퍼블릭 클라우드의 인스턴스 메타데이터를 시스템 자격증명으로 끌어오는 IMDS 서브시스템을 새로 실었고, libc를 제외한 모든 외부 라이브러리 링크를 dlopen()으로 바꾸는 다년
2026-07-17 · 30 분 읽기 #linux#systemd#devops#cloud#sysadminPodman 6.0 — slirp4netns·CNI·cgroups v1 제거, macOS 기본 프로바이더는 libkrun
2026년 6월 24일, Podman 5.0 이후 27개월 만의 메이저 릴리스인 6.0.0이 나왔습니다. slirp4netns·CNI·iptables·cgroups v1·BoltDB 지원이 한꺼번에 제거됐고, Intel Mac과 Windows 10 지원도 끊겼으며, macOS의 기본 machine 프로바이더가 applehv에서 libkrun으로 바뀌었습니다. CNCF 이관에 따라 GitHub
2026-07-17 · 23 분 읽기 #container#podman#docker#linux#macosTalos Linux 1.13 — 쉘 없는 불변 OS가 디버그 쉘을 배송하기까지
쿠버네티스 전용 불변 OS인 Talos Linux의 1.13이 2026년 4월 27일에 나왔습니다. 이번 릴리스에는 Clang/ThinLTO로 빌드된 커널, 재현 가능한 디스크 이미지, 머신 전역 컨테이너 이미지 서명 검증, 그리고 가장 상징적인 기능 — 쉘도 SSH도 없는 OS를 위한 공식 디버그 컨테이너(talosctl debug) — 이 들어 있습니다. 이 글은 1.13의 실제 릴리스
2026-07-17 · 25 분 읽기 #linux#kubernetes#talos#immutable-infrastructure#devopsWayland 색 관리는 어느 릴리스에 실렸나 — 5년 걸린 프로토콜의 배포 연대기, 그리고 X 서버의 2026년
Wayland의 색 관리·HDR 프로토콜 color-management-v1은 2020년 1월에 열린 머지 리퀘스트가 2025년 2월에야 병합된 5년짜리 표준화의 결과물입니다. 이 글은 뉴스 기사가 아니라 저장소 기록으로 배포 시점을 핀으로 꽂습니다 — Mutter는 GNOME 48(2025년 3월)에서 공식 프로토콜을, 49에서 color-representation을, 50(2026년 3월
2026-07-17 · 25 분 읽기 #linux#wayland#hdr#color-management#x11sched_ext 서브 스케줄러 — 커널 7.1에 절반만 도착한 cgroup별 스케줄러
리눅스 7.1(2026년 6월 14일)에 schedext의 cgroup 서브 스케줄러 지원이 들어갔습니다. 목표는 분명합니다 — cgroup 트리 어디에나 BPF 스케줄러를 붙이고, 부모 스케줄러가 자식들에게 CPU를 동적으로 배분해서, 컨테이너나 애플리케이션 도메인마다 자기 워크로드에 맞는 스케줄링 정책을 돌리는 것입니다. 동기는 cpuset 하드 파티셔닝이 주지 못하는 유연성이고, 멀티테
2026-07-16 · 24 분 읽기 #linux#kernel#scheduler#cgroups#bpfeBPF Verifier는 멈춘 곳만 알려준다 — 거부 235건을 재현해 측정한 진단 격차
eBPF를 써 본 사람이라면 누구나 겪는 일이 있습니다. Verifier가 프로그램을 거부하는데, 에러 메시지는 아무 잘못도 없어 보이는 줄을 가리킵니다. 2026년 7월에 나온 논문 하나가 이 답답함을 처음으로 수치화했습니다. 저자들은 Stack Overflow, GitHub 이슈, 수정 커밋, 커널 셀프테스트에서 후보 936건을 모아 커널 6.15.11 + clang 18이라는 고정 툴체
2026-07-16 · 33 분 읽기 #ebpf#linux#kernel#debugging#developer-experiencecontainerd 2.3의 EROFS 네이티브 레이어 — 언팩을 없애는 대신 무엇을 냈나
2026년 4월 30일 나온 containerd 2.3은 레지스트리에서 EROFS 파일시스템 이미지를 그대로 받아 마운트하는 경로를 열었습니다. tar를 풀지 않으니 언팩 단계가 통째로 사라지고, 그 자리에 blob 복사 한 번만 남습니다. 다만 이건 다들 기다리는 지연 로딩(lazy pull)이 아닙니다 — containerd 자신의 seekable-erofs PR이 "청크 테이블은 쓰지만
2026-07-16 · 32 분 읽기 #container#containerd#oci#storage#linuxbcachefs가 이레이저 코딩의 experimental 딱지를 뗀 이야기 — 그리고 그게 무슨 뜻인지
2025년 9월 29일 리누스 토발즈는 커밋 하나로 커널에서 bcachefs 코드 117,483줄을 지웠고, bcachefs는 ZFS처럼 DKMS 모듈로 배포되는 파일시스템이 됐습니다. 드라마는 그것으로 끝났고, 2026년의 진짜 뉴스는 따로 있습니다 — bcachefs의 이레이저 코딩(RAID5/6에 해당하는 기능)이 experimental 딱지를 뗐습니다. 그런데 이 사실을 옮긴 문장 하
2026-07-16 · 29 분 읽기 #linux#kernel#filesystem#bcachefs#storageDocker에서 Podman으로 — 데몬 없는 컨테이너 엔진 전환 완전 가이드
Podman은 데몬 없이(fork-exec) 동작하고 rootless가 기본이라는 점에서 Docker와 아키텍처 철학부터 다릅니다. 내부 동작(conmon·crun), 설정 파일 위치와 의미, GPU를 쓰기 위한 CDI 설정, compose.yaml을 그대로 쓰는 두 가지 방법(podman 소켓 + docker compose vs podman-compose), SELinux 볼륨 라벨 같은
2026-07-08 · 15 분 읽기 #docker#podman#containers#devops#linuxhtop와 top 완벽 해부 — 모든 숫자를 읽는 법
리눅스에서 htop과 top을 열면 수많은 숫자가 쏟아집니다. VIRT와 RES와 SHR의 차이, 프로세스 상태 문자, 로드 애버리지가 왜 CPU 사용률과 다른지, 미터 색깔의 의미, 좀비 프로세스까지 — 최근 해커뉴스에서 다시 화제가 된 명문 해설을 바탕으로 필드 하나하나를 읽는 법을 정리합니다.
2026-07-05 · 14 분 읽기 #linux#performance#htop#sysadmin저지연 트레이딩 시스템을 위한 커널 튜닝 — 마이크로초와의 전쟁
HFT와 마켓메이킹처럼 마이크로초가 손익을 가르는 도메인에서 리눅스 커널을 어떻게 튜닝하는지 정리합니다. CPU 격리, NUMA 정렬, 커널 바이패스 스펙트럼, C-state 고정, PTP 시간 동기화, 그리고 꼬리지연 측정 방법론까지 실전 레시피 중심으로 다룹니다.
2026-06-13 · 31 분 읽기 #linux#kernel#low-latency#trading#performance컨테이너는 거짓말이다 — cgroups와 네임스페이스로 본 커널의 진실
컨테이너라는 커널 객체는 존재하지 않습니다. 네임스페이스 7종 투어, cgroup v2 파일 인터페이스 직접 조작, unshare와 pivotroot로 만드는 미니 컨테이너, overlayfs, capabilities, seccomp까지 — 컨테이너를 이루는 커널 기능을 하나씩 해부하고 쿠버네티스와의 연결, 디버깅 기법을 정리합니다.
2026-06-13 · 27 분 읽기 #linux#kernel#container#cgroups#namespaceseBPF 기초 완전 정복 — 프로그램, 맵, 그리고 Verifier의 세계
eBPF가 리눅스 커널 프로그래밍을 어떻게 바꿨는지 처음부터 끝까지 정리합니다. 프로그램 타입과 맵, Verifier의 동작 원리를 이해하고, libbpf와 CO-RE 기반의 첫 eBPF 프로그램을 직접 만들어 봅니다.
2026-06-13 · 33 분 읽기 #ebpf#linux#kernel#libbpf#observability패킷의 여정 — 리눅스 커널 네트워킹 스택 따라가기
NIC에 도착한 패킷이 DMA, 링버퍼, NAPI, IP/TCP 계층을 거쳐 애플리케이션 소켓까지 도달하는 전체 경로를 해부합니다. RSS/RPS/RFS 멀티코어 분산, GRO/GSO/TSO 오프로드, XDP, 소켓 버퍼 튜닝과 실전 성능 진단 시나리오까지 다룹니다.
2026-06-13 · 33 분 읽기 #linux#kernel#networking#tcp#xdp리눅스 CPU 스케줄러의 진화 — CFS에서 EEVDF까지
vruntime과 레드블랙 트리로 공정성을 구현한 CFS의 원리부터, 지연 민감 워크로드의 한계를 해결하기 위해 커널 6.6에서 기본이 된 EEVDF까지 스케줄러의 진화를 따라갑니다. cgroup CPU 제어와 쿠버네티스 스로틀링 진단, 저지연 워크로드 격리 레시피, 테일 레이턴시 튜닝 시나리오를 다룹니다.
2026-06-13 · 30 분 읽기 #linux#kernel#scheduler#cfs#eevdfeBPF 관측성 실전 — bpftrace로 시스템의 블랙박스를 열다
bpftrace 원라이너 10선과 BCC 도구상자로 운영 중인 시스템을 코드 수정 없이 들여다보는 방법을 다룹니다. 지연 히스토그램 해석, 플레임그래프, 컨테이너 환경 적용, 그리고 실전 트러블슈팅 시나리오 3가지를 단계별로 정리했습니다.
2026-06-13 · 26 분 읽기 #ebpf#bpftrace#observability#linux#profiling