본문 바로가기
CS

리눅스 프로세스 사용량 분석, htop 응용하기

by Warehaus 2024. 4. 19.

 

 

 

이전 글에 이어서 작성하는 리눅스 프로세스 사용량 분석 응용 하기 방법입니다.

아래 글도 한번 읽어주시면 감사하겠습니다.

 

리눅스 프로세스 좀 더 잘 들여다보기 - htop 사용법

 

리눅스 프로세스 좀 더 잘 들여다보기 - htop 사용법

최근 운영 중인 서비스가 프로세스를 많이 사용하게 되면서, ps 나 top 보다 조금 더 나은 도구가 필요하다는 생각이 들었습니다. 그래서 찾아보니 htop 이라는 툴이 있어서 일단 VM에서 어느정도

armin.tistory.com

 

 

반응형

 

htop 기능의 활용

 

htop 을 실행하기 전 옵션을 활용하여 원하는 동작을 수행할 수도 있지만,

htop 실행 후에도 옵션에서 제공했던 기능들을 활용 가능합니다.

 

위에 보이는 htop 실행화면을 보면 F1 ~ F10 까지의 메뉴가 있으며,

아래와 같은 기능을 제공합니다.

 

  • 화살표, Page Up, Page Down, Home, End: 프로세스 목록을 스크롤합니다.
  • Space: 프로세스를 태그하거나 태그를 제거합니다.
  • U: 모든 프로세스의 태그를 제거합니다 (Space 키로 추가한 모든 태그를 제거합니다).
  • s: 프로세스의 시스템 호출을 추적합니다.
  • F1: 도움말을 표시합니다.
  • F2: 설정을 변경합니다.
  • F3: 검색을 시작합니다.
  • F4: 필터링을 시작합니다. 프로세스 명령어의 일부를 입력하면 이름이 일치하는 프로세스만 표시됩니다.
  • F5: 트리 뷰를 표시합니다.
  • F6: 정렬을 시작합니다.
  • F7: 선택한 프로세스의 우선순위를 높입니다. 이 작업은 슈퍼유저만 수행할 수 있습니다.
  • F8: 선택한 프로세스의 우선순위를 낮춥니다.
  • F9: 프로세스를 종료합니다.
  • F10: htop을 종료합니다.

 

Space: 프로세스를 태그하거나 태그를 제거

 

화살표를 통해 원하는 프로세스를 선택한 후 space 를 누르면 위 이미지와 같이 해당 프로세스에 태그가 생성됩니다.

 

U: 모든 프로세스의 태그를 제거합니다 (Space 키로 추가한 모든 태그를 제거합니다)

 

U 를 눌러서 만들었던 태그들을 모두 삭제 가능합니다.

 

반응형

 

 

s: 프로세스의 시스템 호출을 추적합니다.

 

프로세스중 하나를 선택해서 시스템 호출을 추적해 보니 Operation not permitted 라는 메시지를 출력합니다.

일반 계정으로는 불가한 것으로 보여 sudo를 이용해서 htop을 실행하고 다시 시도해 봅니다.

 

 

21496 process에 잘 붙어서 syscall 을 출력해주네요.

 

 

 

F1: 도움말을 표시합니다

 

도움말을 통해 상세한 설명을 확인할 수 있습니다.

색상별로, 키 별로 어떤 기능을 의미하는지 자세히 나타나 있네요.

 

 

 

F2: 설정을 변경합니다

 

 

htop 의 각종 설정을 담당합니다.

custom thread 명을 출력하거나,  Tree view 설정을 하여 따로 옵션을 주지 않더라도 원하는 출력을 확인하실 수 있습니다.

 

반응형

 

F3: 검색을 시작합니다.

 

 

F3 을 누르면 콘솔 하단에 Sarch: 메뉴가 나타납니다.

원하는 검색어를 눌러서 프로세스를 검색해보세요.

 

 

F4: 필터링을 시작합니다. 프로세스 명령어의 일부를 입력하면 이름이 일치하는 프로세스만 표시됩니다.

 

Search와 Filter는 꽤나 유사한 면을 가지고 있습니다.

Search는 특정 프로세스 검색을 목적으로,

Filter는 원하는 프로세스들만 출력하는 목적으로 사용하시면 됩니다.

 

풀어서 써도 크게 차이는 없네요 ^^;

 

F5: 트리 뷰를 표시합니다.

 

리눅스에서 개발을 하다보면 fork를 이용해 자식 프로세스를 만드는 경우가 비일비재 합니다.

그리고 process를 종료하는 경우에도 좀비프로세스가 남지 않도록 확인하는 경우도 많습니다.

 

그럴 때 Tree 구조로 프로세스를 출력하면 한눈에 보기가 수월합니다.

 

Tree view로 전환하고 나면 하단 메뉴가 조금 변경이 됩니다. 원래는 F5 가 트리뷰 표시 기능인데 Sorted(정렬) 로 변경되었습니다.

 

 

반응형

 

F6: 정렬

 

프로세스를 조건에 따라 정렬합니다.

sort by 는 PID, User, Priority, NICE, Memory 등 조건으로 정렬이 가능합니다.

 

 

F7, F8: 선택한 프로세스의 우선순위를 높이거나 낮춥니다.

 

CPU time을 많이 가져갔으면 하는 프로세스에 대해서 우선순위를 높일 수 있습니다.

그 반대로 낮추는 것도 가능합니다.

 

 

F9: 프로세스를 종료합니다.

 

프로세스를 종료하는 기능입니다.

kill 명령과 크게 차이는 없습니다. 

 

재밌는 점은 어떤 시그널로 죽일 지 Signal 선택이 가능하다는 점 입니다.

해당 프로세스 예외처리 기능을 이용하는 경우라면

적절한 signal 선택이 필요할 수 있겠습니다.

 

반응형

 

 

F10: htop을 종료합니다.

htop 이 종료됩니다. F10 을 사용하지 않더라도 Ctrl + C 로 signal 을 보내 종료할 수도 있습니다.