uptime 명령으로 1분, 5분, 15분 간의 CPU가 처리해야할 작업이 얼마나 쌓여 있는지 대략적으로 확인할 수 있다.
현재 CPU가 어떤 작업에 주로 사용되고 있는지 알아보려면 vmstat(Virtual Memory) 를 이용하면 된다.
일반적으로 vmstat는 1초 단위의 시간 간격을 파라미터로 사용한다.
명령어 실행시 파라미터로 1초를 적용하면 1초 동안 샘플링된 상태 값을 1초 단위로 출력한다.
[root@localhost ~]# vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 6050228 33584 332100 0 0 47 6 101 226 1 1 98 0 0
0 0 0 6050212 33584 332100 0 0 0 0 97 223 0 1 99 0 0
0 0 0 6050212 33584 332100 0 0 0 0 108 233 0 0 100 0 0
0 0 0 6050212 33584 332100 0 0 0 0 93 216 0 0 100 0 0
0 0 0 6050212 33584 332100 0 0 0 0 95 219 0 1 99 0 0
vmstat 는 가상메모리의 상태를 보여주는 명령이지만, CPU나 프로세스 큐를 확인하는 용도로 더 많이 사용한다.
vmstat 유틸리티의 결과에서 proc 섹션과 cpu 섹션을 주로 참고한다.
procs -r : 프로세스 큐에서 cpu가 실행해주기를 기다리는 프로세스의 수
procs -b : 지정된 이벤트가 발생하기 전까지는 실행될 수 없는 프로세스의 수
cpu -us : 사용자 프로세스를 위해 사용한 cpu사용률로 mysqld 서버의 코드와 같이 애플리케이션의 코드가 사용한
cpu 시간을 의미한다. 대표적으로 정렬이나 group by 작업, 그리고 압축과 같은 작업이 많이 발생하는 자입 에서는 사용자 cpu가 높게 나타난다.
cpu -sy : 커널이 사용한 cpu 시간을 의미한다.
cpu -id : cpu가 아무것도 하지 않고 대기(idle)하는데 사용한 cpu 사용률이다.
cpu -wa : 디스크 입축력을 기다리는데 사용한 cpu 사용률을 의미한다. 주로 DBMS 서버가 실행 중인장비에서 관심을 둬야 할 값인데, wa(wait I/O) 값이 높으면 디스크 I/O가 과도하게 많이 발생해 cpu가 데이터의 입출력을
기다리는 시간이 많다는 것을 의미한다.
cpu -st : 가상 머신으로부터 빼앗긴 시간을 의미하는데, 크게 신경쓰지 않아도 된다.