1.1 "시스템의 CPU 사용량" 은 어떻게 측정되는가?
Solaris 운영체제는 1초에 100번씩 CPU가 어떤 일을 하는지 감시한다. 이때 CPU가 user mode에서 작업을 실행하면 user_tick에 1을 증가 시키고, system mode에서 작업을 실행하면(애플리케이션이 시스템 콜을 호출하여 커널에서 실행되고 있는 경우) system_tick에 1을 증가시킨다.
CPU가 실행할 작업이 없어서 쉬고 있는 경우, I/O(block device: hard disk)를 기다리는 작업이 있으면 wait_tick에 1을 증가시키고, 그렇지 않으면 idle_tick에 1을 증가시킨다.
vmstat나 sar 명령어는 이러한 값을 시스템으로 부터 얻어서 주어진 시간간격(interval) 의 차이 값을 구하여 각각을 백분율(%)로 나타낸 것이 CPU 사용율이다.
만일 sar 명령어로 10초 간격으로 시스템 사용량을 조사하면, sar 명령어는 먼저 위에서 설명한 값을 시스템으로 부터 얻어 오고, 10초 후에 한번 더 얻어와서 2회 측정한 값의 차이 값을 각각의 백분율로 보여 준다.
예를 들어, 10초 간격으로 CPU 사용율을 조사하면,
|
다음은 CPU 사용율을 알아보는 명령어 sar 와 vmstat 명령어의 결과이다.
|
위의 결과에서 보면, sar 명령어는 CPU 사용량을 %usr(user)와 %sys(system)과 %wio(wait)와 %idle(idle)로 구분하고, vmstat에서는 us(user)와 sy(system)과 id(idle)로 구분한다.
%wio의 값은 CPU의 사용율과는 무관하다. 이 값은 CPU가 놀고 있을 때, IO를 기다리고 있는 프로세스가 있는지 여부를 알아보는 힌트이다.
IO를 기다리는 프로세스가 있다는 것은 그 IO가 완료되면 곧 바로 CPU를 다시 사용할 것이라는 것을 암시한다. 유닉스,솔라리스,scsa,scna,csa,솔라리스학원,유닉스학원,유닉스보안,unix유닉스,솔라리스,scsa,scna,csa,솔라리스학원,유닉스학원,유닉스보안,unix유닉스,솔라리스,scsa,scna,csa,솔라리스학원,유닉스학원,유닉스보안,unix,solaris
sar 와 vmstat 명령어의 결과는 다음과 같은 관계이다.
|