Linux 작업 표시

LinuxBeginner
지금 연습하기

소개

시스템 프로세스를 모니터링하는 것은 Linux 사용자 및 시스템 관리자에게 중요한 기술입니다. 어떤 프로세스가 실행 중인지, 그리고 어떻게 리소스를 소비하는지 이해하는 것은 시스템 안정성과 성능을 유지하는 데 필수적입니다.

이 Lab 에서는 Linux 시스템 프로세스를 실시간으로 모니터링하는 강력한 도구인 top 명령어를 사용하는 방법을 배우게 됩니다. top 명령어는 CPU 사용량, 메모리 소비량 및 기타 중요한 시스템 지표에 대한 자세한 정보를 제공합니다. 이 필수 명령어를 숙달함으로써, 리소스를 많이 사용하는 프로세스를 식별하고 Linux 시스템 리소스를 효과적으로 관리할 수 있습니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 88%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

top 명령어 소개

top 명령어는 시스템에서 실행 중인 프로세스에 대한 동적이고 실시간 보기를 표시하는 기본적인 Linux 유틸리티입니다. "top"이라는 이름은 CPU 를 가장 많이 사용하는 "top" 프로세스를 표시하는 기본 동작을 나타냅니다.

프로젝트 디렉토리로 이동하여 top 명령의 기본 사용법을 살펴보겠습니다.

cd ~/project

이제 top 명령을 실행합니다.

top

이 명령을 실행하면 다음과 유사한 대화형 디스플레이가 표시됩니다.

top - 14:25:30 up 2 days,  3:45,  1 user,  load average: 0.15, 0.20, 0.25
Tasks: 105 total,   1 running, 104 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.0 us,  1.0 sy,  0.0 ni, 97.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   4096.0 total,   2841.3 free,    845.2 used,    409.5 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   2970.5 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
 1234 labex     20   0  562340  42340  28456 S   2.0   1.0   0:30.25 firefox
 2345 labex     20   0   78912  23456  13204 S   0.7   0.6   0:12.34 terminal
 3456 root      20   0   43528   5424   4356 S   0.3   0.1   0:05.67 sshd
  ... (more processes)

top 디스플레이는 두 개의 주요 섹션으로 구성됩니다.

  1. 요약 영역 (상위 5 줄): 다음을 포함한 시스템 전체 정보를 제공합니다.

    • 시스템 가동 시간 및 부하 평균 (load average)
    • 작업 통계 (총계, 실행 중, 절전 등)
    • CPU 사용률 백분율
    • 메모리 사용량 (RAM 및 Swap)
  2. 프로세스 목록 (요약 아래 표): 다음 세부 정보와 함께 실행 중인 프로세스를 나열합니다.

    • PID: 프로세스 ID
    • USER: 프로세스 소유자
    • PR: 우선 순위 (Priority)
    • NI: Nice 값
    • VIRT: 사용된 가상 메모리 (Virtual memory)
    • RES: 사용된 실제 메모리 (Resident memory)
    • %CPU: CPU 사용률 백분율
    • %MEM: 메모리 사용률 백분율
    • COMMAND: 명령 이름

디스플레이는 기본적으로 3 초마다 자동으로 새로 고쳐집니다. top 명령을 종료하려면 q 키를 누르십시오.

이제 -n 1 옵션을 사용하여 프로세스의 정적 스냅샷을 캡처해 보겠습니다. 이렇게 하면 top이 한 번만 업데이트하고 종료됩니다.

top -n 1 > ~/project/top_snapshot.txt

이 명령은 현재 시스템 프로세스의 스냅샷을 포함하는 top_snapshot.txt라는 파일을 프로젝트 디렉토리에 생성합니다. 파일 내용을 확인해 보겠습니다.

cat ~/project/top_snapshot.txt

대화형 top 세션에서 표시된 것과 유사한 출력이 정적 텍스트 파일로 표시됩니다.

top 출력 해석

이제 시스템 프로세스의 스냅샷을 얻었으므로, 시스템의 리소스 사용량에 대한 정보를 이해하기 위해 정보를 분석해 보겠습니다.

nano 텍스트 편집기를 사용하여 top_snapshot.txt 파일을 엽니다.

nano ~/project/top_snapshot.txt

이 파일에서 대화형 top 명령어에 표시된 것과 동일한 정보를 볼 수 있습니다. 목록에서 가장 CPU 를 많이 사용하는 프로세스를 식별하는 데 집중해 보겠습니다.

프로세스 목록 섹션 (요약 영역 아래) 을 보고 %CPU 열에서 가장 높은 값을 가진 프로세스를 찾습니다. 이것은 스냅샷이 찍힌 시점에 가장 많은 CPU 를 소비하고 있던 프로세스를 나타냅니다.

예를 들어, 다음과 같은 줄이 표시되는 경우:

 1234 labex     20   0  562340  42340  28456 S   2.0   1.0   0:30.25 firefox

이는 PID 1234 (firefox) 를 가진 프로세스가 사용자 "labex"에 의해 소유되었으며 CPU 의 2.0% 와 메모리의 1.0% 를 사용하고 있음을 보여줍니다.

가장 높은 CPU 사용량을 가진 프로세스에 대해 다음 정보를 기록해 둡니다.

  1. PID (프로세스 ID)
  2. USER (프로세스 소유자)
  3. %CPU (CPU 사용률 백분율)
  4. %MEM (메모리 사용률 백분율)
  5. COMMAND (실행 중인 명령 또는 프로그램)

nano 를 종료하려면 Ctrl+X를 누르십시오.

이제 분석 결과를 문서화하기 위해 top_analysis.txt라는 파일을 만듭니다.

echo "Most CPU-intensive process analysis" > ~/project/top_analysis.txt

가장 CPU 를 많이 사용하는 프로세스의 세부 정보를 파일에 추가합니다. 자리 표시자를 관찰한 실제 값으로 바꿉니다.

echo "PID: [Replace with PID]" >> ~/project/top_analysis.txt
echo "USER: [Replace with USER]" >> ~/project/top_analysis.txt
echo "CPU%: [Replace with %CPU]" >> ~/project/top_analysis.txt
echo "MEM%: [Replace with %MEM]" >> ~/project/top_analysis.txt
echo "COMMAND: [Replace with COMMAND]" >> ~/project/top_analysis.txt

예를 들어, 프로세스 1234 (firefox) 가 가장 CPU 를 많이 사용했다면 다음과 같이 입력합니다.

echo "PID: 1234" >> ~/project/top_analysis.txt
echo "USER: labex" >> ~/project/top_analysis.txt
echo "CPU%: 2.0" >> ~/project/top_analysis.txt
echo "MEM%: 1.0" >> ~/project/top_analysis.txt
echo "COMMAND: firefox" >> ~/project/top_analysis.txt

파일에 작성한 내용을 확인해 보겠습니다.

cat ~/project/top_analysis.txt

가장 CPU 를 많이 사용하는 프로세스의 세부 정보가 포함된 분석 파일의 내용이 표시됩니다.

top 에서 프로세스 정렬 및 필터링

top 명령어는 프로세스를 정렬하고 필터링하는 방법을 배우면 더욱 강력해집니다. 이 단계에서는 특정 정보에 집중하도록 top 디스플레이를 사용자 정의하는 방법을 배우게 됩니다.

먼저, 대화형 top 명령을 다시 실행해 보겠습니다.

top

top이 실행되는 동안 키보드 단축키를 사용하여 동작을 수정할 수 있습니다.

  1. 메모리 사용량별로 프로세스를 정렬하려면 M (대문자) 을 누릅니다.
  2. CPU 사용량별로 프로세스를 정렬하려면 P (대문자) 를 누릅니다 (기본값).
  3. 시간별로 프로세스를 정렬하려면 T (대문자) 를 누릅니다 (실행 시간).
  4. PID (프로세스 ID) 별로 프로세스를 정렬하려면 N (대문자) 을 누릅니다.

각 정렬 옵션을 시도하여 프로세스 목록이 어떻게 변경되는지 확인하십시오. 실험이 끝나면 q를 눌러 top을 종료합니다.

이제 메모리 사용량별로 정렬된 프로세스의 스냅샷을 만들어 보겠습니다. 특정 옵션과 함께 top의 배치 모드를 사용합니다.

top -b -n 1 -o %MEM > ~/project/top_sorted_by_mem.txt

이 명령은 다음을 사용합니다.

  • -b: 배치 모드 (비대화형)
  • -n 1: 한 번만 실행
  • -o %MEM: 메모리 사용량별로 정렬

이 파일의 내용을 확인해 보겠습니다.

cat ~/project/top_sorted_by_mem.txt

가장 많은 메모리를 사용하는 프로세스가 맨 위에 오도록 메모리 사용량 순으로 나열된 프로세스를 볼 수 있습니다.

다음으로, 사용자 계정에 속하는 프로세스만 표시하도록 프로세스를 필터링해 보겠습니다.

top -b -n 1 -u labex > ~/project/top_user_filtered.txt

-u labex 옵션은 "labex" 사용자가 소유한 프로세스만 표시하도록 출력을 필터링합니다. 이 파일을 검토해 보겠습니다.

cat ~/project/top_user_filtered.txt

이 파일에는 "labex" 사용자가 소유한 프로세스만 표시되어야 합니다.

마지막으로, 정렬과 필터링을 결합하여 보다 구체적인 보기를 만들어 보겠습니다.

top -b -n 1 -u labex -o %CPU > ~/project/top_custom.txt

이 명령은 "labex" 사용자에 속하는 프로세스만 표시하고 CPU 사용량별로 정렬합니다. 결과를 확인해 보겠습니다.

cat ~/project/top_custom.txt

이러한 사용자 정의 옵션을 통해 top은 시스템 성능 및 리소스 사용량의 특정 측면에 집중할 수 있는 다재다능한 도구가 됩니다.

요약

이 랩에서는 top 명령을 사용하여 Linux 에서 프로세스를 모니터링하고 분석하는 방법을 배웠습니다. 습득한 기술은 다음과 같습니다.

  1. top 명령을 실행하여 시스템 프로세스의 실시간 디스플레이를 봅니다.
  2. CPU 사용량, 메모리 사용량 및 프로세스 세부 정보를 포함하여 top 출력에 표시된 정보를 이해합니다.
  3. 분석을 위해 프로세스 정보의 스냅샷을 캡처합니다.
  4. CPU 및 메모리 사용량을 검사하여 리소스를 많이 사용하는 프로세스를 식별합니다.
  5. 정렬 및 필터링 옵션을 통해 top 디스플레이를 사용자 정의합니다.

이러한 기술은 Linux 환경에서 시스템 관리 및 성능 모니터링에 필수적입니다. top 명령은 시스템 상태를 신속하게 평가하고 잠재적인 성능 문제를 식별하는 데 가장 자주 사용되는 도구 중 하나입니다.

top 명령을 마스터함으로써 이제 시스템 리소스를 효과적으로 모니터링하고, 성능 문제를 일으킬 수 있는 프로세스를 식별하며, 시스템 성능을 최적화하는 데 필요한 정보를 수집할 수 있습니다.