[Linux] ps augx sort 를통한 cpu 및 메모리 사용량 확인하기
소트 옵션 다음에 -(마이너스)가 있으면 내림차순 없거나 +(플러스)기 있으면 내림 차순으로 정렬이 됩니다.
메모리 사용량 확인
메모리 사용량을 확인 하는데 있어 한 화면에 필요한 것만 보기 위해서 awk를 파이프로 넣어 사용 했습니다. 또는 스왑메모리 확인 하는것 처럼 상위 10개만 보는 방법도 있습니다.
# 메모리 사용량 순으로 보기
ps aux --sort -rss | awk '$4!=0.0'
# 메모리 사용량 0.1 이상인 프로세스만 보는 방법
ps -eo pid,%mem,cmd --sort -rss | awk '$2>=0.1'
# swap 사용 많이 하는 순서
ps -eo user,pid,ppid,rss,size,vsize,pmem,pcpu,time,comm --sort -size | head -n 10
CPU 사용량 확인
CPU를 많이 사용하는 프로세스를 보기 위한 것입니다ㅣ. 첫번째 부분은 head를 파이프에서 사용되어 상위 10개(디폴트 갯수)만 출력이 됩니다.
# cpu 점유율이 높은 순으로 보기
ps augx --sort -pcpu | head
# 스레드 단위 확인 하기
ps -mo user,lwp,pcpu,rss,comm -C httpd | awk '$3!=0.0'
위에서 사용한 awk는 텍스트를 분할하여 처리 하는데 사용 됩니다.
awk는 입력 텍스트를 레코드(record)와 필드(field)로 분리하여 처리합니다.
기본적으로 레코드는 줄(line)을 기준으로, 필드는 공백이나 탭을 기준으로 분리됩니다.
awk 명령은 일반적으로 다음과 같다.
awk 'pattern { action }' file
- pattern: 처리할 레코드를 선택하는 조건입니다. 패턴이 생략되면 모든 레코드가 선택됩니다.
- action: 선택된 레코드에 대해 수행할 동작입니다. 동작이 생략되면 선택된 레코드를 출력합니다.
- file: 처리할 파일입니다. 파일이 생략되면 표준 입력을 처리합니다.
예를 들어,
'awk '$2>=0.1' 는 두 번째 필드가 0.1 이상인 레코드만 출력합니다.
이는 메모리 사용량이 0.1% 이상인 프로세스만 출력하는 목적에 부합합니다.