free 명령어란?
전체 메모리에 대한 상태를 확인할 수 있는 명령어
$ free -h
total used free shared buff/cache available
Mem: 62G 24G 630M 13G 37G 24G
Swap: 15G 4.4G 11G
- Mem: 메모리 영역
- total: 전체 용량 (free, used, buff/cache의 총 합)
- used: 사용 중인 용량
- free: 남아있는 용량
- shared: 공유 메모리 크기
- buff/cache: 버퍼 및 캐시로 사용 중
- Swap: Swap 영역 (디스크를 메모리처럼 사용)
- availavble: 시스템이 필요할 경우 즉시 사용할 수 있는 메모리
- 현재 사용 중인 캐시된 메모리나 버퍼가 포함될 수 있음
옵션
-b, -k, -m, -g 옵션: 출력 단위를 지정 (각각 Byte, KB, MB, GB 단위)
$ free -g
total used free shared buff/cache available
Mem: 62 24 0 13 37 24
Swap: 15 4 11
-h 옵션: 사람이 읽기 쉬운 형태로 출력
$ free -h
total used free shared buff/cache available
Mem: 62G 24G 818M 13G 37G 24G
Swap: 15G 4.4G 11G
-t 옵션: Mem과 Swap을 합한 값도 함께 출력
$ free -t
total used free shared buff/cache available
Mem: 65820276 25638016 817816 13931776 39364444 25720720
Swap: 16773116 4579892 12193224
Total: 82593392 30217908 13011040
-s 옵션: N초 마다 반복해서 출력
$ free -s 1
total used free shared buff/cache available
Mem: 65820276 25642660 810032 13931776 39367584 25716076
Swap: 16773116 4579892 12193224
total used free shared buff/cache available
Mem: 65820276 25641268 811424 13931776 39367584 25717468
Swap: 16773116 4579892 12193224
total used free shared buff/cache available
Mem: 65820276 25642372 810316 13931776 39367588 25716364
Swap: 16773116 4579892 12193224
buffer/cache
buffer/cache란?
커널은 디스크로부터 한번 읽은 파일을 캐시 영역에 저장하고, 다시 해당 파일을 읽을 때 캐시 영역에서 데이터를 읽어들임
캐시 영역? 데이터를 임시 저장하기 위해, 커널이 사용하는 메모리의 일부 영역
이 때 사용되는 캐시 영역이 buffer, cache
buffer/cache를 사용하는 이유
커널은 디스크 등의 저장 장치를 통해 데이터를 읽고 작성함
매번 I/O 요청 마다 저장 장치를 통해 데이터를 접근하는 것은 속도가 느리며, 시스템에도 부하가 일어남
캐시 영역을 사용할 경우 디스크보다 빠른 메모리를 활용하기에 I/O 요청을 빠르게 처리할 수 있음
buffer와 cache는 동일한가?
cache: 파일의 내용을 저장하고 있는 캐시
- page cache: 한번 읽은 파일의 내용을 커널 메모리의 일부인 page cache에 저장
- Slabs: 커널이 내부적으로 사용하는 캐시
buffer: 파일의 내용이 아닌 파일 시스템을 관리하기 위한 메타 데이터를 저장하는 캐시
- buffer cache: super block(파일 시스템에 대한 총체적인 정보)과 inode block(파일의 메타 데이터)에 해당하는 메타데이터를 저장
메모리가 부족할 때, 캐시 영역의 변화
서버 운영 초반에는 메모리가 전부 가용 상태
시간이 지나면서 커널은 일부 메모리를 캐시 영역으로 사용하여 디스크 I/O 성능을 향상시킴
- 초기 상태: 모든 메모리가 가용 상태로 표시
- 시간이 지남: 커널이 메모리의 일부를 캐시 영역으로 사용
- 어플리케이션 사용 증가: 애플리케이션의 메모리 사용이 증가하면서 가용 메모리가 줄어들고, 캐시 영역의 메모리가 애플리케이션에 반환
- 메모리 부족: 가용 메모리가 부족해지면 swap 영역이 사용되기 시작하고, 시스템 성능이 저하됨
'Linux' 카테고리의 다른 글
[Linux] vmstat 명령어 (시스템 상태) (0) | 2024.09.13 |
---|---|
[Linux] df, du 명령어 (디스크 사용량) (0) | 2024.09.13 |
[Linux] top 명령어 (시스템 및 프로세스 상태) (0) | 2024.09.13 |
[Linux] ps 명령어 (프로세스 상태) (1) | 2024.09.04 |
[Linux] watch, head, tail 명령어 (0) | 2024.09.03 |