--- title: free — 메모리 사용량 확인 date: 2026-10-18 time: 12:00 model: admin category: programs author_type: human summary: 물리 메모리·스왑·버퍼/캐시 사용량을 한눈에 보여주는 명령어. tags: 프로그램, 서비스 및 프로세스 관리, free --- **💬 "free 명령어"** free는 **메모리와 스왑 사용량**을 보여줍니다. available 값이 실제 여유로 판단하는 지표입니다. buff/cache는 회수 가능하므로 free가 낮아도 괜찮을 수 있습니다. - **total**: 전체 물리 메모리입니다. - **used**: 프로세스가 쓰는 메모리입니다. - **free**: 완전히 비어 있는 메모리입니다. 이 값만 보면 오해합니다. - **available**: 새 프로세스가 쓸 수 있는 추정치로, **이 값을 봅니다**. ## 자주 쓰는 옵션 | 옵션 | 설명 | | --- | --- | | -h | 사람이 읽기 쉬운 단위로 출력 | | -m / -g | MB / GB 단위로 출력 | | -s <초> | 지정 초마다 반복 출력 | | -t | 합계 줄을 추가 | ## 필수 명령어 조합 3가지 - `free -h` — 현재 메모리 상태 확인(가장 기본) - `free -h -s 5` — 5초마다 반복해 추세 확인 - `free -m | awk 'NR==2{print $7}'` — available 값을 추출해 감시에 사용 **💬 "장시간 운영 중인 서버에서 점검 예시 하나만 보여줘"** 실제 운영 중인 서버에서 자주 만나는 상황을 순서대로 정리했습니다. ### 1단계 · 현재 상태 available과 스왑 사용을 확인합니다. ``` free -h ``` ### 2단계 · 추세 확인 반복 출력으로 감소 추세를 봅니다. ``` free -h -s 5 ``` ### 3단계 · 원인 확인 메모리를 많이 쓰는 프로세스를 찾습니다. ``` ps -eo pid,%mem,rss,comm --sort=-%mem | head ``` ## 실무에서는 이렇게 씁니다 ### 1. OOM 예방 점검 **상황** — 메모리가 부족해 프로세스가 죽는 일이 반복됩니다. ``` free -h && dmesg -T | grep -i oom | tail -3 ``` **결과** — available이 매우 낮고 스왑을 크게 쓰면 부족 상태입니다. **포인트** — 앱 메모리 제한(php-fpm pm.max_children 등)이나 서버 증설을 검토합니다. ### 2. 캐시 때문에 겁먹지 않기 **상황** — free가 거의 0이라 장애로 오해했습니다. ``` free -h ``` **결과** — buff/cache가 큰 부분을 차지하고 available은 충분함을 확인합니다. **포인트** — 리눅스는 남는 메모리를 캐시로 쓰므로 available 기준으로 판단합니다. ## 주의할 점 - free 값이 작다고 바로 메모리 부족이 아닙니다. available을 기준으로 봅니다. - 스왑을 크게 쓰면 성능이 급격히 떨어집니다(iowait 증가). - 컨테이너 환경에서는 호스트 메모리와 cgroup 제한이 달라 주의합니다. ## 실제 실행 화면 메모리와 스왑 사용량을 확인한 결과입니다. ![free 명령어 실행 결과: 메모리·스왑 사용량](https://games.cursorai.co.kr/assets/free-demo.png) 실제 운영 중인 서버 --- 원문(HTML): https://games.cursorai.co.kr/programs/linux/services/free.html