cgroups v2 Memory 컨트롤러로 메모리 고갈 상황 재현하기
컨테이너 하나에 메모리 제한 512Mi를 걸어놓고 배포했는데, 실제 트래픽이 몰리면 그 한도를 넘길 때 서비스가 어떻게 반응할지 로컬에서 미리 확인해보고 싶을 때가 있다. 스왑이 있으면 조용히 스왑아웃되다 끝날 수도 있고,…
컨테이너 하나에 메모리 제한 512Mi를 걸어놓고 배포했는데, 실제 트래픽이 몰리면 그 한도를 넘길 때 서비스가 어떻게 반응할지 로컬에서 미리 확인해보고 싶을 때가 있다. 스왑이 있으면 조용히 스왑아웃되다 끝날 수도 있고,…
네트워크 트래픽이 몰릴 때 top이나 mpstat으로 코어별 사용률을 보면 CPU 6개 중 딱 하나만 계속 90% 넘게 찍히고 나머지는 한가한 경우가 있다. 부하 분산이 안 되고 있다는 신호인데, 애플리케이션 스레드…
Ubuntu는 안정적인 배포판이지만 apt update/apt install 도중 여러 이유로 실패하는 경우가 잦다. 원인은 크게 세 가지로 나뉜다 — 다른 프로세스가 dpkg 락을 잡고 있는 경우, 이전 설치 작업이 중간에 끊겨…
VS Code Remote-SSH로 원격 서버에 붙으려 하면 "Could not establish connection to ..."와 함께 "프로세스에서 없는 파이프에 쓰려고 했습니다"(Windows의 ERROR_PIPE_NOT_CONNECTED)가 뜨는 경우가 있다. SSH 자식 프로세스가 이미 죽어 파이프에 쓸…
벤더 커널을 빌드하다가 아래와 같은 에러를 만났다. /home/worker/.../kernel-source/include/linux/cred.h:258:28: error: passing argument 1 of 'atomic_inc' from incompatible pointer type [-Werror=incompatible-pointer-types] 258 | atomic_inc(&new->usage); | ^~~~~~~~~~~ | | | atomic_long_t * {aka…
SSH로 서버에 접속할 때 Permission denied (publickey) 에러를 만나면 비밀번호도 못 쓰는 상태라 당황하기 쉽다. 이 에러는 서버가 클라이언트가 제시한 공개 키 중 어느 것도 인증에 성공시키지 못했다는 뜻인데, 원인이…
Yocto 빌드 중 pseudo-native의 do_compile 단계에서 이런 에러를 만날 때가 있다. gcc -c -isystem .../recipe-sysroot-native/usr/include -isystem .../recipe-sysroot-native/usr/include -m32 ... pseudo_util.c In file included from /usr/include/linux/stat.h:5, from /usr/include/bits/statx.h:31, from /usr/include/sys/stat.h:465, from…
터미널에서 API 응답이나 로그의 JSON을 다루다 보면 grep/sed는 중첩된 배열/객체 구조 앞에서 금방 한계에 부딪힌다. 이 프로젝트의 output/post_index.json도 400개 넘는 포스트 정보가 { "159": {...}, "348": {...} } 형태로 중첩돼…
SSH 연결이 끊기면(노트북을 덮거나, 와이파이 끊김, VPN 타임아웃) 터미널에 붙어 있던 셸과 프로세스가 통째로 죽는다. nohup/disown으로 프로세스는 살릴 수 있어도 다시 접속해서 출력을 보거나 개입할 방법은 없다. tmux(terminal multiplexer)는 터미널…
취약점 스캐너가 "이 패키지에 CVE가 있다"고 보고하면 대개 apt upgrade 한 번으로 끝냈다고 여기기 쉽다. 하지만 패치가 실제로 설치됐는지, 그리고 그 패치가 해당 CVE의 익스플로잇 경로를 실제로 막았는지는 별개의 질문이다.…