Linux 메모리 관리 핵심 정리

1. free 명령 구조

              total    used    free    buff/cache    available
Mem:           7.9G    2.1G    1.2G         4.6G         5.4G

항목 내용

used프로세스 메모리 + SUnreclaim(Slab)
buff/cacheBuffers + Cached(page cache) + SReclaimable(Slab)
available실제 사용 가능한 메모리 (free + 회수 가능한 buff/cache)

2. buff/cache 세부 구성

항목 역할

Buffers블록 디바이스의 메타데이터 캐시 (슈퍼블록, inode 테이블 등)
Cached한 번 읽은 파일 내용을 보관하는 page cache
SReclaimable해제 가능한 Slab 캐시 (dentry, inode cache 등)
공통 특성: 미사용 메모리를 커널이 효율성을 위해 활용하며, 프로세스가 필요로 하면 즉시 해제하여 양보

3. /proc/meminfo — Anon / File 영역

항목 내용

Active(anon) / Inactive(anon)프로세스의 힙, 스택 등 파일과 무관한 메모리
Active(file) / Inactive(file)page cache, mmap된 파일 등 I/O 캐시

LRU 관리 방식

Active ↔ Inactive 이동  →  접근 여부에 따라 상시 발생
Inactive → 해제(reclaim) →  메모리 압박 시에만 발생

4. Slab 메모리

커널 내부 객체(dentry, inode, task_struct 등)를 위한 커널 전용 메모리 풀

항목 내용 free 위치

SReclaimabledentry/inode cache 등 해제 가능buff/cache
SUnreclaimtask_struct, kmalloc 등 해제 불가used
# Slab 상세 확인
grep -E "Slab|SReclaimable|SUnreclaim" /proc/meminfo
sudo slabtop -o

5. 메모리 이슈 진단 흐름

메모리 사용량 높음
        │
        ▼
      free -h
        │
        ├── buff/cache 높다
        │       └── page cache 과다 → echo 1 > /proc/sys/vm/drop_caches
        │
        └── used 높다
                │
                ├── 프로세스 문제   → top / ps 로 범인 찾기
                │
                └── Slab 문제      → /proc/meminfo 확인
                                           │
                                           ├── SReclaimable 높다
                                           │     → echo 2 > drop_caches (응급처치)
                                           │
                                           └── SUnreclaim 높다
                                                 → slabtop 으로 원인 캐시 특정
                                                 → 해당 프로세스 조치

6. drop_caches 정리

# 권한 문제로 아래처럼 실행해야 함 (sudo만으론 리다이렉트 불가)
sudo sh -c 'echo N > /proc/sys/vm/drop_caches'
# 또는
echo N | sudo tee /proc/sys/vm/drop_caches

값 동작

1page cache 해제
2dentry + inode cache 해제 (SReclaimable)
31 + 2 모두 해제
⚠️ SUnreclaim은 drop_caches로 해제 불가 — 해당 프로세스 조치 필요
⚠️ 운영 환경에서 남발 시 캐시 해제 후 디스크 I/O 급증 주의

Read more

mybloodyvalentine 3집 loveless

마이블러디발렌타인의 정규 2집 loveless 엘피를 김밥레코즈에서 5만원가량의 금액으로 구매. 요건 평생 들어도 질리지않을거같아 바이닐로 구매했다. 물리적인 이슈가 발생하지않는 한 이제 스트리밍 플랫폼의 의존성없이 평생 청취 가능하다 내부 크레딧 개인적으로 빌린다 부처의 맥아리없는 보컬을 참 좋아한다. 바이닐 커버를 벗기면 평범하다 0:00 /0:12 1× 2집 loveless만큼 3집 mbv도 좋아해서 아마

By 권동혁