최근 운영 중인 서비스가 프로세스를 많이 사용하게 되면서,
ps 나 top 보다 조금 더 나은 도구가 필요하다는 생각이 들었습니다.
그래서 찾아보니 htop 이라는 툴이 있어서 일단 VM에서 어느정도 기능을 제공하는지
확인해 보았습니다.
설치
htop 설치는 apt, snap 또는 소스코드 빌드 등 여러 방법으로 가능하다.
각자 OS에 맞는 패키지 관리 도구를 이용하도록 하자.
저는 apt 로 설치를 진행했습니다.
명령어, 옵션
새로운 명령어를 설치하면 help 또는 man page를 확인해 보곤 합니다.
몇 가지 옵션들이 뜨는데요, 하나씩 천천히 확인해 보겠습니다.
1. htop
그냥 htop명령을 입력했을 때 입니다.
각종 프로세스 정보들과 개별 코어가 얼만큼의 리소스를 사용하고 있는지를 보여줍니다.
htop 내에서는 아래와 같은 인터페이스 명령어를 지원합니다.
- 화살표, Page Up, Page Down, Home, End: 프로세스 목록을 스크롤합니다.
- Space: 프로세스를 태그하거나 태그를 제거합니다.
- U: 모든 프로세스의 태그를 제거합니다 (Space 키로 추가한 모든 태그를 제거합니다).
- s: 프로세스의 시스템 호출을 추적합니다.
- F1: 도움말을 표시합니다.
- F2: 설정을 변경합니다.
- F3: 검색을 시작합니다.
- F4: 필터링을 시작합니다. 프로세스 명령어의 일부를 입력하면 이름이 일치하는 프로세스만 표시됩니다.
- F5: 트리 뷰를 표시합니다.
- F6: 정렬을 시작합니다.
- F7: 선택한 프로세스의 우선순위를 높입니다. 이 작업은 슈퍼유저만 수행할 수 있습니다.
- F8: 선택한 프로세스의 우선순위를 낮춥니다.
- F9: 프로세스를 종료합니다.
- F10: htop을 종료합니다.
2. htop -C
-C 는 no color 옵션입니다.
위에 출력과는 다소 상이한 결과를 확인할 수 있습니다.
알록달록한 색상만 없어졌네요.
3. htop -d <seconds>
-d --delay=DELAY Set the delay between updates, in tenths of seconds
-d 옵션을 통해 Refresh 되는 시간을 설정 가능합니다.
tenths of seconds 는 100 ms 이구요. 1초가 1000 ms 이니
매 업데이트 마다 1초 정도의 딜레이를 주고 싶다면 "-d 10" 옵션값을 사용하시면 됩니다.
$ htop -d 10
4. htop -h
-h --help Print this help screen
도움말을 출력하는 옵션 입니다.
이 옵션은 앞에 언급되었으므로 빠르게 넘어가겠습니다.
5. htop -s
-s --sort-key=COLUMN Sort by COLUMN (try --sort-key=help for a list)
특정 컬럼을 정렬하는 옵션입니다.
htop 의 컬럼 중 하나인 PID를 정렬하면 위와 같은 결과를 얻을 수 있습니다.
각종 계정이나 CPU 사용량 정보를 정렬하면 유용하게 사용할 수 있을 것 같네요.
6. htop -t
-t --tree Show the tree view by default
htop 명령어의 출력을 tree 형태로 보여주는 옵션입니다.
출력 결과는 아래와 같습니다.
자식 프로세스들을 쉽게 확인할 수 있다는게 이 옵션의 장점인데요,
htop 사용 시 기본적으로 -t 옵션을 같이 사용하게 될 것 같네요.
tree 구조로 나오면 분석이 조금이라도 빨라지기 때문입니다.
7. htop -u
-u --user=USERNAME Show only processes of a given user
-u 옵션을 통해 특정 사용자의 프로세스만을 출력 가능합니다.
출력 결과는 아래와 같습니다.
8. htop -p
-p --pid=PID,[,PID,PID...] Show only the given PIDs
지정 된 PID 에 대한 htop 출력을 나타내는 옵션입니다.
이 옵션은 기존에 사용하던 top 명령어에서도 있어서 자주 사용하곤 했습니다.
htop , top 등의 명령어는 서버에서 수행중인 프로세스들의 CPU 사용률을 확인하기 위해 사용하기도 하지만
특정 프로세스가 얼마만큼의 자원을 사용하고 있는지 확인을 위해서도 사용합니다.
이럴 때 -p 옵션을 적극적으로 활용하면 좋을 것 같네요.
오늘은 htop 명령어의 기본적인 옵션값들에 대해 확인해 보았습니다.
다음 포스팅에서는 htop 내에서의 명렁어를 어떻게 잘 활용할 수 있는지에 대해 알아보도록 하겠습니다.
'CS' 카테고리의 다른 글
[Testing/QA] 카오스 엔지니어링의 개념과 예시 - System 회복력의 검증 (0) | 2024.05.25 |
---|---|
리눅스 프로세스 사용량 분석, htop 응용하기 (1) | 2024.04.19 |
MSA에서 서비스 간 효과적인 통신을 책임지는 Service mesh 개념 읽어보기 (0) | 2024.03.16 |
Standard stream의 유형 stdout, stderr 차이점과 활용 (0) | 2024.03.05 |
리눅스 개발하면서 C++ 디버깅 방법 - gdb breakpoint(중단점) 활용 (0) | 2024.03.04 |