본문 바로가기
리눅스/리눅스마스터1급

[리눅스마스터] 리눅스 top 명령어와 CPU 성능 분석

by 혼자왔서연 2023. 8. 22.
반응형

이번시간에는  ibm - aix, fedora, centos, ubuntu, debian  ,unix 에서 공용 명령어 top 대해서 알아보겠습니다. 이론핵심과 

실용도를 중심으로 작성한점 참고 바랍니다

1. top 명령어란?

top 명령어는 리눅스 모든 운영체제에서 실행 중인 프로세스와 시스템 자원 사용량을 실시간으로 모니터링할수있도록 도와주는 도구입니다 특히  CPU, 메모리, 디스크 활동 등 다양한 측면에서 시스템의 성능을 파악하는 데 도움을 줍니다.

 

질문 - 모니터링해서 어디다 쓸수있나요?

물론 인터페이스가 잘 구축된 있는 소프트웨어는 아래에 보여드릴 사진처럼 안 보고 web을 통해서 편하게 모니터링을 할 수도 있으나! 분명 독립된 망, 유지보수를 하시게 된다면 검은색 배경에 흰색글씨로 된 화면만 볼수도 있어요! 또한 어떤 서비스를 가동할 때 이 service unit 이 얼마나 많은 자원 소모를 하고 있다, 뭐가 문제가 있다, 자원 배분을 늘려야 된다 등 근본적인 해결책을 얻을 수 있답니다 

 

간단한 예시로 윈도 운영체제를 사용할 때 프로그램 종료가 안되거나 갑자기 컴퓨터가 렉에 걸렸을때 작업관리자 키셔서 프로그램을 강제종료 한다든지, 응답없음 파일을 종료시킨다든지,gpu,메모리 체크를  할때 사용하는 작업관리자 기능과 유사한 기능이 top라고 생각하시면  됩니다 

2. 주요 기능과 사용법

top 명령어는 터미널에서 실행되며, 시스템의 현재 상태를 실시간으로 업데이트하여 보여줍니다. 상위에는 CPU 사용량과 메모리 사용량 등의 요약 정보가 나타나며, 하단에는 실행 중인 각 프로세스의 상세 정보가 표시됩니다.

명령어 사용 예시:

top

top 명령어 결과

1.PID (프로세스 식별자): 각 프로세스의 고유한 식별번호로, 해당 프로세스를 식별하는 데 사용됩니다.
2.USER (사용자): 프로세스를 실행한 사용자 계정을 나타냅니다.
3.PR (우선순위): 프로세스의 실행 우선순위를 나타냅니다. 값이 낮을수록 더 높은 우선 순위를 가집니다.
4.NI (우선 순위 변경): 사용자에 의해 변경된 프로세스의 우선 순위를 나타냅니다.
5.VIRT (가상 메모리 사용량): 프로세스가 사용하는 가상 메모리의 크기를 킬로바이트(KB) 단위로 표시합니다.
6.RES (실제 메모리 사용량): 프로세스가 실제로 점유하고 있는 물리적 메모리의 크기를 킬로바이트(KB) 단위로 표시
7.SHR (공유 메모리 사용량): 다른 프로세스와 공유하고 있는 메모리의 크기를 킬로바이트(KB) 단위로 표시합니다.
8.S (상태): 프로세스의 현재 상태를 나타내며, 'R'은 실행 중, 'S'는 슬립 중, 'Z'는 좀비 상태를 의미합니다.
9.% CPU (CPU 사용률): 프로세스가 CPU를 사용하는 비율을 백분율로 나타냅니다.
10.% MEM (메모리 사용률): 프로세스가 메모리를 사용하는 비율을 백분율로 나타냅니다.
11.TIME+ (누적 CPU 시간): 프로세스가 실행되며 사용한 누적 CPU 시간을 표시합니다.
12.COMMAND (명령어): 프로세스를 실행한 명령어 또는 프로그램을 나타냅니다.

 

2.1 cpu에 관한 추가적인 설명

그림에 보이는 첫번쨰 행이 cpu 관련 설명입니다

us (User): 사용자 프로세스가 사용한 CPU 시간의 백분율.
sy (System): 시스템 프로세스가 사용한 CPU 시간의 백분율.
ni (Nice): 높은 우선순위로 실행되는 프로세스가 사용한 CPU 시간의 백분율.
id (Idle): CPU가 유휴 상태인 시간의 백분율.
wa (IO Wait): 입출력 작업 완료를 기다리는 시간의 백분율.
hi (Hardware IRQ): 하드웨어 인터럽트에 사용된 CPU 시간의 백분율.
si (Software IRQ): 소프트웨어 인터럽트에 사용된 CPU 시간의 백분율.
st (Steal Time): 가상 환경에서 호스트 시스템에 의해 빼앗긴 시간의 백분율.

3. CPU 성능 최적화를 위한 팁

CPU 성능을 최적화하여 시스템의 응답성을 향상하는 것은 중요한 과제입니다. 몇 가지 방법만 간략한 설명드리고 추후에 업로드하도록 하겠습니다.

  • 불필요한 프로세스 종료: top 명령어를 통해 불필요한 CPU 부하를 일으키는 프로세스를 식별하고 종료할 수 있습니다. top에서 pid 확인 후 kill 명령어 사용  혹은  ps aux | grep process_name으로 좀 더 자세한 내용 확인
  • 멀티스레딩 최적화: 멀티스레딩 작업을 수행하는 프로세스는 여러 CPU 코어를 활용할 수 있도록 최적화해야 합니다.
  • taskset
  • CPU 스케줄링 조정: 스케줄러 설정을 통해 우선순위가 높은 작업이 더 많은 CPU 시간을 할당받도록 조정할 수 있습니다. taskset 또는 nice 사용

4. 요약

리눅스 운영체제에서 시스템의 성능을 모니터링하고 최적화하는 과정은 중요한 역할을 합니다. 특히 모든 서비스는 자원을 이용하며 오류가 발생하거나 좀비 프로세스 발생으로 인한 자원소모율이 하드웨어의 수명을 단축시키거나 메모리, cpu 고장 등으로 인한 장비 교체를 유발할 수도 있기 때문에. 자격증을 준비하시는 것도 좋지만 꼭 이 명령어는 기억해 두시면 좋겠습니다 

반응형

Animated Rainbow Nyan Cat