[유닉스/리눅스] 명령어
(CPU/메모리/디스크 사용량 확인하기)
서버점검할때 CPU 사용량, 메모리 사용량, 디스크 사용량 확인 시 사용할 수 있는 명령어들을 정리하였습니다.
서버 점검 내용 | 점검 결과 |
CPU | 2.6% |
메모리 (물리 메모리) |
used / total (%) 0.01GB/0.18GB(2.88%) |
메모리 (Swap 메모리) |
used/total (%) 0k/0k (0%) |
디스크 | used/total (%) 5.60GB / 9.85GB (56.85%) |
1. CPU
명령어 : top
top 명령어
top 명령어 실행 결과 :
%Cpu(s)에서 id가 유휴상태를 뜻함. (전체에서 사용률을 계산할때 : 100-id)
그 이외의 %Cpu(s) 항목들이 무엇을 뜻하는지 이다.
top 명령어 | 의미 |
us | 프로세스 유저(user) 영역의 CPU 사용률 |
sy | 프로세스 커널 영역에서 CPU 사용률 |
ni | 프로세스 우선순위(priority) 설정에 사용하는 CPU 사용률 |
id | 유휴상태(사용하지 않는) 비율 |
wa | IO가 완료될때까지 기다리고 있는 CPU 사용률 |
hi | 하드웨어 인터럽트에서 사용되고 있는 CPU 사용률 |
si | 소프트웨어 인터럽트에서 사용되는 PCU 사용률 |
st | CPU를 VM에서 사용하여 대기하는 CPU 사용률 |
* 여기서도 메모리 확인가능하다. %Cpu(s) 밑에 있는게 메모리 사용 내역이다.
top명령어 말고 또 사용할 수 있는 건 htop이라는 명령어로 top과 비슷한 명령어인데 더 보기좋게 나타나서 적어보았다.
명령어 : htop
명령어 실행 결과 :
CPU와 메모리 사용량 둘다 확인이 가능함.
몇 프로 사용되었는지 계산이되어 나와서 기존 top명령어보다 보기 좋음.
2. 메모리
명령어 : free
free 명령어는 지금 사용하는 메모리 사용량을 확인할 수 있는 명령어이다.
명령어 실행 결과 :
free 명령어를 사용하면, KB 단위로 나오기 때문에 보기 어렵다.
그래서 -h 옵션을 사용하면 현재 크기에 맞춰서 보기 쉽게 단위가 변환되서 출력된다.
(참고로 옵션에 -b이면 바이트, -k면 키로바이트, -m이면 메가바이트, -g이면 기가바이트이다.)
명령어 free -h 실행결과 :
free명령어를 활용하여 한줄로 메모리 현재 사용량과 전체용량, 그리고 몇프로 사용했는지 한줄로 출력해주는 명령어이다. :
free | grep Mem | awk '{printf "%.2fGB / %.2fGB (%.2f%)\n",$3/1024/1024,$2/1024/1024,($3/$2*100)}'
실행 결과 :
※ 참고 : Swap 메모리는 Mem을 Swap으로만 바꿔주면 된다.
free | grep Swap | awk '{printf "%.2fGB / %.2fGB (%.2f%)\n",$3/1024/1024,$2/1024/1024,($3/$2*100)}'
3. 디스크
명령어 : df
df명령어는 현재 파일시스템에서 사용중인 디스크용량을 출력해준다.
명령어 실행결과 :
df 명령어 결과는 각각 파일시스템별 사용량이기 때문에 전체 사용량을 확인하기 어렵다.
아래 명령어가 총 디스크 크기인 2번째 줄과, 현재 사용중인 디스크 크기이 3번째 줄을 계산하여 used/total(사용%)를 한줄로 출력해 준다. :
df -P | grep -v Filesystem | awk '{sum_used+=$3}{sum_total+=$2} END {printf "%.2fGB / %.2fGB (%.2f%) \n", sum_used/1024/1024, sum_total/1024/1024, sum_used/sum_total*100}'
실행 결과 :
정리 :
점검 내용 | 명령어 | 결과 |
CPU | top htop |
2.6% |
메모리 (물리) |
top htop free | grep Mem | awk '{printf "%.2fGB / %.2fGB (%.2f%)\n", $3/1024/1024, $2/1024/1024, ($3/$2*100)}' |
0.01GB/0.18GB(2.88%) |
메모리 (Swap) |
htop free | grep Swap | awk '{printf "%.2fGB / %.2fGB (%.2f%)\n", $3/1024/1024, $2/1024/1024, ($3/$2*100)}' |
0.01GB/0.18GB(2.88%) |
디스크 | df -P | grep -v Filesystem | awk '{sum_used+=$3}{sum_total+=$2} END {printf "%.2fGB / %.2fGB (%.2f%)\n", (sum_used/1024/1024), (sum_total/1024/1024), (sum_used/sum_total*100)}' | 5.60GB/9.85GB(56.85%) |