본문 바로가기
Program/ubuntu Linux

우분투 리눅스 메모리 사용량 캐쉬메모리 정리

by 소중하루 2020. 9. 26.
반응형

우분투 리눅스 메모리 사용량 메모리 정리

 

 

1) 메모리 사용량 (KB 단위)

$ free

 

2) 메모리 사용량 (MB 단위)

$ free -m

 

3) 메모리 사용량 (사람이 보기 편한 단위)

$ free -h

 

 

4) 현재 메모리 사용정보

$ cat /proc/meminfo

 

5) 프로세스 메모리 사용량 표시

$ ps -eo user,pid,ppid,rss,size,vsize,pmem,pcpu,time,cmd --sort -rss

 

5) 프로세스 메모리 사용량 표시 (상위 10개)

$ ps -eo user,pid,ppid,rss,size,vsize,pmem,pcpu,time,cmd --sort -rss | head -n 11

 

6) 프로세스 메모리 사용량 표시 (상위 10개 명령인수 제외)

$ ps -eo user,pid,ppid,rss,size,vsize,pmem,pcpu,time,comm --sort -rss | head -n 11

 

7) 리눅스 시스템의 운용상황 및 프로세스 실시간으로 모니터링

$ top
top : 현재 시스템 시간
up : 현재 시스템이 운영중인 총 시간
3 users : 현재 시스템에 접속중인 사용자 3명
load average : 1분, 5분, 15분 간의 시스템 사용률
Tasks : 실행중인 프로로세스
%Cpu(s) : CPU 사용률

PID : 프로세스 ID (PID)
USER : 프로세스를 실행시킨 사용자 ID
PR : 프로세스의 우선순위 (priority)
NI : NICE 값. 일의 nice value값이다. 마이너스를 가지는 nice value는 우선순위가 높음.
VIRT : 가상 메모리의 사용량(SWAP+RES)
RES : 현재 페이지가 상주하고 있는 크기(Resident Size)
SHR : 분할된 페이지, 프로세스에 의해 사용된 메모리를 나눈 메모리의 총합.
S : 프로세스의 상태 [ S(sleeping), R(running), W(swapped out process), Z(zombies) ]
%CPU : 프로세스가 사용하는 CPU의 사용율
%MEM : 프로세스가 사용하는 메모리의 사용율
TIME+ : 프로세스 시작된 이후 경과된 총 시간
COMMAND : 실행된 명령어

top 실행 후

[shift + m] : 메모리 사용량이 큰 순서로 정렬

[shift + p] : CPU 사용량이 큰 순서로 정렬

[q] : top 명령 종료

 

8) 캐쉬메모리 정리

pagecache 해제
$ echo 1 > /proc/sys/vm/drop_caches

dentries, inodes 해제
$ echo 2 > /proc/sys/vm/drop_caches

pagecache, dentries, inodes 모두 해제
$ echo 3 > /proc/sys/vm/drop_caches

 

9) 캐쉬메모리 정리 (sync)

$ sync && echo 3 > /proc/sys/vm/drop_caches

캐쉬 메모리중에 write buffer 라는 파일 쓰기 대기 버퍼는 drop_cache 로 사라지지 않습니다.

sync 명령어는 메모리의 데이터를 디스크에 저장하여 동기화시키는 작업 입니다.

sync 명령어로 write buffer 내용을 디스크에 쓰고 drop 할 수 있는 cache 로 바꿉니다.

 

 

그래서 sync 후에 drop_caches를 해야 최대한 많은 메모리가 확보 됩니다.

디스크 I/O 가 많은 시간에 캐쉬메모리를 정리하면 CPU 부하량이 증가 할 수 있으므로 사용이 적은 시간에 캐쉬메모리 정리를 하는게 좋습니다.

 

 

캐쉬메모리 정리 전

캐쉬메모리 정리 후

 

10) 캐쉬메모리 정리 crontab 등록

 - 매일 5시 캐쉬메모리 정리 실행

$ crontab -e

0 5 * * * sync && echo 3 > /proc/sys/vm/drop_caches

 

반응형

댓글