리눅스 메모리 점검의 시작, free 명령어 완벽 가이드
리눅스 서버를 운영하다 보면 서비스가 느려지거나 갑자기 중단되는 상황을 겪게 됩니다. 이때 가장 먼저 확인해야 할 지표가 바로 메모리(RAM) 사용량입니다. "내 서버의 메모리가 왜 부족할까?", "여유 메모리가 있는데 왜 스왑(Swap)을 사용할까?"라는 의문이 드신다면 오늘 소개할 free 명령어가 해답을 드릴 것입니다. 초보자부터 시니어 엔지니어까지 반드시 알아야 할 핵심 사용법을 정리했습니다.
1. free 명령어 기본 출력과 항목별 의미
터미널에 free를 입력하면 나타나는 지표들은 처음 접할 때 다소 혼란스러울 수 있습니다. 특히 리눅스의 독특한 메모리 관리 방식인 Buffer와 Cache 개념을 이해하는 것이 중요합니다.
- total: 설치된 전체 물리 메모리 용량
- used: 현재 시스템에서 사용 중인 메모리 (공유 메모리, 버퍼, 캐시 포함)
- free: 커널이나 애플리케이션에 할당되지 않은 완전히 비어 있는 메모리
- shared: 프로세스 간 통신(IPC) 등에 사용되는 공유 메모리
- buff/cache: 디스크 입출력 성능 향상을 위해 임시로 사용하는 메모리 공간
- available: 실제 애플리케이션이 추가로 할당받아 사용할 수 있는 예상 메모리 (가장 중요한 지표)
2. 실무에서 자주 쓰이는 주요 옵션
기본 출력은 바이트(byte) 단위로 표시되어 읽기 어렵습니다. 상황에 맞는 옵션을 조합하여 가독성을 높여보세요.
가장 추천하는 옵션은 free -h입니다. 'Human-readable'의 약자로, 용량에 따라 GB, MB 단위로 자동 변환하여 보여줍니다. 또한 free -s 3처럼 초 단위를 지정하면 실시간으로 메모리 변화를 모니터링할 수 있습니다.
3. free 명령어 옵션 및 메모리 상태 체크리스트
| 구분 | 명령어/지표 | 설명 및 활용 팁 |
|---|---|---|
| 추천 옵션 | free -h |
가장 권장되는 옵션. GB, MB 단위로 읽기 쉽게 출력. |
free -m |
결과값을 Megabytes 단위로 고정하여 출력. | |
free -t |
최하단에 Total(RAM + Swap) 합계 행을 추가. | |
| 성능 체크 | Available | 이 수치가 10% 미만이면 메모리 증설 혹은 프로세스 점검 필요. |
| Swap Used | 스왑 사용량이 급증하면 디스크 I/O 병목으로 시스템 속도가 급감함. |
4. "Free 메모리가 적으면 위험한가요?" (LSI 키워드: 리눅스 캐시 비우기)
리눅스는 유휴 메모리를 최대한 활용하기 위해 데이터를 캐싱합니다. 따라서 free 수치가 작고 buff/cache 수치가 큰 것은 시스템이 아주 효율적으로 작동하고 있다는 증거입니다. 진짜 중요한 것은 available 수치입니다. 만약 캐시를 강제로 비우고 싶다면 drop_caches 명령을 사용할 수 있지만, 성능 저하를 초래할 수 있으니 주의해야 합니다.
마치며: 효율적인 메모리 관리를 위한 조언
free 명령어는 리눅스 서버의 건강 상태를 진단하는 청진기와 같습니다. 단순히 수치만 보는 것이 아니라 Available 메모리와 Swap 사용량의 상관관계를 파악하는 것이 고수의 노하우입니다.
지금 바로 실천해보세요!
- 터미널을 열고
free -h를 입력합니다. - 전체 메모리 대비 available 용량이 충분한지 확인합니다.
- 스왑 메모리가 과도하게 사용 중이라면
top명령어로 원인 프로세스를 찾아보세요.
이 포스팅이 도움이 되셨다면 댓글로 궁금한 명령어를 남겨주세요! 봉봉테크가 상세히 분석해 드립니다.