1. 프로세스 추적: top

리소스 사용량을 읽고 분석하는 방법을 이해하는 것은 모든 Linux 사용자에게 중요한 기술입니다. 많은 사람들은 명령줄 도구를 마스터하는 것이 Linux 가 어떻게 작동하는지에 대한 깊은 통찰력을 제공하기 때문에 Linux 를 처음부터 배우는 최고의 방법이라고 생각합니다. 이 레슨에서는 프로세스가 실시간으로 무엇을 하고 있는지 추적하는 강력한 유틸리티인 top을 소개합니다.

top 명령어 이해하기

이전에 top에 대해 간략하게 언급했지만, 이제 표시되는 내용의 세부 사항을 자세히 살펴보겠습니다. top 명령어는 시스템의 프로세스 및 리소스 사용량에 대한 동적 실시간 보기를 제공합니다.

top - 18:06:26 up 6 days,  4:07,  2 users,  load average: 0.92, 0.62, 0.59
Tasks: 389 total,   1 running, 387 sleeping,   0 stopped,   1 zombie
%Cpu(s):  1.8 us,  0.4 sy,  0.0 ni, 97.6 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:  32870888 total, 27467976 used,  5402912 free,   518808 buffers
KiB Swap: 33480700 total,    39892 used, 33440808 free. 19454152 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 6675 patty    20   0 1731472 520960  30876 S   8.3  1.6 160:24.79 chrome
 6926 patty    20   0  935888 163456  25576 S   4.3  0.5   5:28.13 chrome

이 출력이 무엇을 의미하는지 살펴보겠습니다. 이것을 외울 필요는 없지만, 이 레슨을 참조 자료로 사용할 수 있습니다.

시스템 요약

처음 몇 줄은 시스템 상태에 대한 높은 수준의 요약을 제공합니다.

  • 첫 번째 줄: 이는 uptime 명령어를 실행했을 때 볼 수 있는 것과 동일한 정보입니다. 현재 시간, 시스템 가동 시간, 로그인한 사용자 수, 지난 1 분, 5 분, 15 분 동안의 시스템 부하 평균을 보여줍니다.
  • 두 번째 줄: 실행 중, 절전 중, 중지됨 또는 좀비로 분류된 모든 작업 (프로세스) 의 요약입니다.

CPU 사용량 분석

세 번째 줄은 CPU 사용률을 자세히 설명합니다.

  • us: niced(우선순위 조정) 되지 않은 사용자 프로세스를 실행하는 데 사용된 CPU 시간의 비율입니다.
  • sy: 커널 및 해당 프로세스를 실행하는 데 사용된 CPU 시간의 비율입니다.
  • ni: niced(낮은 우선순위) 사용자 프로세스를 실행하는 데 사용된 CPU 시간의 비율입니다.
  • id: 유휴 상태인 CPU 시간의 비율입니다.
  • wa: I/O 작업 완료를 기다리는 데 사용된 CPU 시간의 비율입니다. 높은 값은 디스크 또는 네트워크 병목 현상을 나타낼 수 있습니다.
  • hi: 하드웨어 인터럽트를 처리하는 데 사용된 CPU 시간의 비율입니다.
  • si: 소프트웨어 인터럽트를 처리하는 데 사용된 CPU 시간의 비율입니다.
  • st: 스틸 타임 (Steal time) 입니다. 가상화된 환경에서 이는 하이퍼바이저가 다른 가상 프로세서를 서비스하는 동안 가상 CPU 가 실제 CPU 를 기다리는 시간의 비율입니다.

메모리 및 스왑 정보

네 번째와 다섯 번째 줄은 각각 메모리 및 스왑 공간 사용량을 보여줍니다. 여기에는 총량, 사용량 및 사용 가능량이 포함됩니다.

프로세스 목록

top의 주요 본문은 리소스를 가장 많이 사용하는 프로세스 목록입니다.

  • PID: 고유한 프로세스 ID 입니다.
  • USER: 프로세스를 소유한 사용자입니다.
  • PR: 프로세스의 스케줄링 우선순위입니다.
  • NI: 우선순위에 영향을 미치는 "nice" 값입니다.
  • VIRT: 프로세스가 사용하는 가상 메모리입니다. 이는 프로세스가 액세스할 수 있는 총 메모리 양입니다.
  • RES: 프로세스가 사용하는 상주 메모리입니다. 이는 작업이 사용 중인 스왑되지 않은 물리적 메모리입니다. linux top virt res의 차이점을 이해하는 것이 메모리 분석의 핵심입니다.
  • SHR: 프로세스가 사용하는 공유 메모리입니다.
  • S: 프로세스 상태: S=절전, R=실행 중, Z=좀비, D=중단할 수 없는 절전, T=중지됨.
  • %CPU: 마지막 업데이트 이후 이 프로세스가 사용한 CPU 시간의 비율입니다.
  • %MEM: 이 프로세스가 사용한 물리적 RAM 의 비율입니다.
  • TIME+: 프로세스가 시작된 이후 사용한 총 CPU 시간입니다.
  • COMMAND: 프로세스를 시작한 명령 이름 또는 명령줄입니다.

특정 프로세스를 해당 ID 로 모니터링할 수도 있으며, 이는 집중적인 문제 해결에 유용합니다.

top -p 1

로그인하여 학습 진행 상황을 저장하세요

로그인

연습 문제

숙달을 위해서는 연습이 필수적입니다. 이 실습 랩은 Linux 프로세스 관리를 배우는 최고의 자료 중 일부이며, 배운 내용을 적용할 수 있는 실제 환경을 제공합니다.

  1. Linux 프로세스 관리 및 모니터링 - 실제 Linux 환경에서 프로세스와 상호 작용, 검사, 모니터링 및 종료하는 방법을 연습합니다.
  2. Linux top 명령어: 실시간 시스템 모니터링 - top 명령어를 사용하여 CPU 사용량, 메모리 및 실행 중인 프로세스를 실시간으로 모니터링하는 방법을 배웁니다.
  3. Linux free 명령어: 시스템 메모리 모니터링 - free 명령어를 사용하여 시스템 메모리 사용량을 모니터링하고 분석하는 방법을 배웁니다.

퀴즈

`top`의 첫 번째 줄과 동일한 출력을 표시하는 명령어는 무엇입니까? 소문자 영어 명령어 이름만 사용하여 답하십시오.