linux에서 cpu 사용률

winglet의 이미지

vmstat나 sar로 살펴 보면 user , sys(kernel) 로 나뉘어 보이게 됩니다.
sar를 예를 들면 아래처럼

.
.
.

04:46:04 PM CPU %user %nice %system %iowait %idle
04:46:05 PM all 3.37 0.00 2.00 7.48 87.16
04:46:06 PM all 4.00 0.00 2.38 68.50 25.12
04:46:07 PM all 3.37 0.00 2.00 7.74 86.89
04:46:08 PM all 4.74 0.00 2.62 4.74 87.89

첫째로 여기서 user 와 sys의 의미가 궁금합니다.
상식적으로 user는 어플리케이션이 사용 하고 있는 cpu% 라고 알고 있는데요
kernel은 커널이 사용 하는 cpu% 인가요?
그렇다면 커널은 무슨 용도로 cpu를 사용 하게 되는지 궁금합니다.

둘째로 idle은 어떻게 계산되는지도 궁금 합니다.
막연히 100-(user+sys)해서 나오는지 알고 있었는데 실제 계산해보면 꼭 그렇지도 않네요.

그럼 조언 부탁해요~

다콘의 이미지

1. 커널 레벨이 맞습니다. 커널이 하는일은 많죠.
프로세서, 메모리, 기타 하드웨어 등을 다 제어 해야죠.

2. 100-(user+sys+iowait)

winglet의 이미지

sys% 가 갑자기 치솟는다거나 하는 경우는 무엇을 뜻하는 것일까요?
usr%은 그대로거나 오히려 낮아지고 말이죠

추억은 미화되는 법..

phonon의 이미지

아마도 아래의 경우가 아닐까요?

1.네트웍 트래픽의 증가
2.대용량 화일 입출력 발생
(tar, compress 등의 명령실행)
3.기타 시스템 콜이 발생한 경우

참고
[vmstat man page]
us: 커널이 아닌 프로세스의 시간 (user time, including nice time)
sy: 커널의 사용시간 (system time)
id: 아무런 일을 하지 않는 시간
wa: 입출력 대기 시간
st: 가상머신이 사용하는 시간