ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • top 명령어를 통한 시스템 분석
    2011. 6. 27. 6 comments

    linux에서 top 명령어는, linx kernel을 통하여 관리되는 프로세스의 태스크 리스트들의 정보인 CPU, MEM, Process 상태정보등을 확인할 수 있다.

    top 명령어를 통하여 프로세스가 race condition 상태, 메모리 릭, 과도한 i/o사용률, zombie 프로세스,.. 등 활용하기에 따라 많은 정보를 확인할 수 있다.


    그럼 바로 top 명령어를 실행해보자.

    화면 설명
    상단의 전체 cpu 사용량과 memory사용량, Task 정보와 부팅되고 운영된 up 정보가 나오고 있다. 현재 48 일째 운영되고 있다는 사실을 알 수 있다.

    CPU 사용율 정보

    • us: CPU time spent in user space 

      • user space : i/o wait과 ni를 제외한 processes cpu usage

      • 결국 process들이 runing 상태일 때 사용율을 의미.

    • sy: CPU time spent in kernel space(system)

      • hardware & software irq & steal time을 제외한 kernel cpu usage

      • 가상화 운영이 아닌 경우에는 interrupt를 제외한 kernel cpu 사용율이라고 판단해도 된다.

    • ni: CPU time spent on low priority(nice) processes

      • 얼만큼 다른 process들에게 cpu 사용율 친절하게 양보할 것인가를 의미.

      • 의미를 알고 보면 작명에 높은 점수을 줄 수 있다.

      • 숫자가 작을수록(특히 음수) higher prioirty를 갖는다. 

    • id: CPU time spent idle

    • wa: i/o(disk) wait cpu time 

    • hi: CPU time spent servicing/handling hardware interrupts

    • si: CPU time spent servicing/handling software interrupts

    • st: steal time, CPU time in involuntary wait by virtual cpu while hypervisor is servicing another processor


    만약 us가 아닌 인터럽트(hi, si) 혹은 I/O Wait(wa)의 수치가 크게 되면 cpu가 다른 작업을 처리하느라 process가 cpu 스케쥴링 당하지 않을 가능성이 높아지기 때문에 프로세스 실행 결과 속도가  현저히 떨어질 수 있다.


    하단에는 Task단위, 즉 프로세스 하나하나의 정보가 나온다.





    HELP
    h(help) 버튼을 누르면 헬프 페이지가 나타난다.
    모니터링이 주 목적이기 때문에 화면 배색이나 어떤 정보 위주로 리스트를 sort하여 볼지 설정을 할 수 있다.





    Sort field

    Shift + f  (F)  키를 눌르면 sort할 컬럼을 선택할 수 있는데, 어떤 프로세스가 CPU나 MEM을  많이 쓰고 있는지 확인할 때 유용하게 사용할 수 있다.

    아래는 Shift + f 키를 눌러 나온 화면이다. sort할 필드를 확인후 알파벳을 누르면 *표가 그쪽으로 이동을 합니다.
    엔터를 누르면 sort된 화면이 나타난다.
    ※ 보통 내림차순으로 나오는데, Shift + r (R) 을 누르면 오름차순/내림차순을 변경하여 확인이 가능하다.


    아래는 Shift + f 을 누른 화면이다.


    Cpu나 Mem 컬럼을 선택해서 어떤 프로세스가 race condition상태 또는 메모리릭등을 확인 할 수 있으며, Process StatusZombie가 된 프로세스들을 확인 할 수 있다. 태스크 리스트 정보에서 S 컬럼부분에  Z(zombie)라고 나온다.



    화면 갱신 주기 설정

    아래 화면은 시간 타이머에 의해 갱신이 되는데,
    d(delay)를 누르면 delay 시간, 즉 갱신 주기를 설정할 수 있다.  (default 갱신 주기는 3초)

    보통 1초나 0.5초 주기로 확인을 하는 편이다.

     



    CPU core별 사용율


    또한 top의 장점으로 Cpu core별 사용율을 볼 수 있다. top 명령 실행 후 숫자 "1"을 눌르면 된다. 

    바로 core별 사용율을 확인할 수 있다. 매우 간단하다. 하지만 이런 결과물들을 실시간 interaction 할 때에만 확인할 수 있는 단점이 있다.

    만약 CPU 사용율을 장시간(1일 이상) 모니터링 및 로깅을 하려면 mpstat 도구를 사용하는게 좋다.




    반응형

    댓글 6

Designed by Tistory.