본문 바로가기

DevOps3

Day3: 메모리 분석 (Free, vmstat, /proc/meminfo) 목표시스템 메모리 상태를 분석하고, OOM (Out of Memory) 상황을 진단할 수 있어야 함.리눅스 메모리 구성리눅스 메모리는 Used + Free + Buffers + Cached로 이루어져있고, Buffers와 Cached는 즉시 반환이 가능하다. 실제 가용 메모리는 Free + Buffers + Cached의 합이다.- 모르는 부분에 대한 학습1. Buffers와 Cached 에 대한 개념이 없음.2. Buffers는 블록 디바이스 메타데이터 캐시이며, Cached는 실제 파일의 Content에 대한 캐시이며, 즉시 회수가 가능하다.3. 디스크 접근은 메모리 접근 대비 수천~수만 배 느리다. 그래서 Linux는 사용하지 않는 메모리는 낭비라는 철학을 가지고 있다.4. 그래서 Linux는 디스.. 2026. 1. 11.
Day2: /proc 파일시스템으로 프로세스 분석 목표/proc 파일시스템을 통해 실행 중인 프로세스의 상태를 분석하고, FD 누수나 메모리 문제를 진단할 수 있어야 함./proc 파일시스템이란?/proc은 가상의 파일시스템이며, 실제 디스크에 존재하지 않고 커널이 실시간으로 생성하는 정보가 담긴 파일시스템이며, 프로세스와 시스템의 상태를 파일처럼 읽을 수 있다.실제 장애 상황- 증상에 대한 분석과 진단을 한 근거를 찾아가는 과정1. Pod 및 OOMKilled 라는 용어 자체가 생소하였음.2. Pod는 쿠버네티스의 가장 작은 실행단위이며, 1개 이상의 컨테이너의 묶음과 격리된 네임스페이스, cgroup의 단위임.3. 여기서 네임스페이스는 같은 운영체제 (커널)을 사용하지만 보이는 것은 다른 서버 인 것 처럼 보여줄 수 있는 매커니즘4. 더 나아가, 컨.. 2026. 1. 10.
Day 1: strace로 시스템 콜 분석하기 목표애플리케이션이 느리거나 장애가 발생했을 때, strace로 시스템 콜을 분석하여 원인을 찾을 수 있어야 한다. 시스템 콜이란?애플리케이션이 파일을 읽거나, 네트워크 통신을 하려면 운영체제(커널)에게 하드웨어에 접근해달라는 요청을 해야하고, 이 요청을 시스템 콜(System Call) 이라고 한다.DevOps 엔지니어가 시스템 콜을 알아야 하는 이유는?AI는 해당 상황을 장애 상황으로 보고 제시를 해주었으나, 작은 파일 150만 개를 개별적으로 열고 닫는다는 진단이 해당 로그를 보고 어떻게 나온 것인지 궁금하였음- AI의 답변 및 답을 찾아가는 개인적인 사고 방식1. 애플리케이션 로직이 돌고 있지 않은데 CPU를 100% 사용하고 있기 때문에 OS에서의 사용이 클 것이라고 예상함2. strace -c .. 2026. 1. 8.