2022. 11. 21. 16:49ㆍ리눅스(Linux)
$ htop
- https://www.tecmint.com/htop-linux-process-monitoring/
- HTOP는 가장 유용한 real-time interactive Linux Process Monitoring Tool
- Windows의 작업관리자와 비슷한 개념
- top보다 향상된 GUI와 편리한 기능
- 리눅스에서 시스템 사용량 즉 CPU사용량, 메모리 사용량 등을 어느 정도 GUI로 보여주는 프로그램
- HTOP는 third-party tool로, 리눅스 시스템에서 제공하지 않기에 Package Manager를 이용하여 별도로 설치
- 대부분의 리눅스 시스템에서 Default Package Manager로 설치가 가능
설치 및 실행 CentOS7/8
# sudo yum install epel-release
# sudo yum install htop
# htop
기능
- 프로세스 선택을 커서나, 마우스를 사용
- pstree, top을 함께 보는 기능
- 선택된 프로세스를 죽이거나 우선순위를 변경
- 특정 프로세스 이름으로 검색, 필터링하여 현황을 볼 수 있음
- 선택된 프로세스의 ‘Isof’ 명령 결과를 볼 수 있다
- 왼쪽 상단에 CPU, swap 메모리, 메모리 사용률이 표현.
1초마다 한번 갱신
F1 ~ F10까지 단축키가 있고 단축키 마다 기능이 정해져 있다.
단축키별 기능
F1 | htop의 도움말을 볼 수 있으며, 단축키의 기능을 알 수 있다. |
F2 | 설정, 설정에서는 상단에 보여줄 CPU 메모리에 대한 정보를 추가/제거 할 수 있으며, 디스플레이 옵션 설정도 가능하다. |
F3 | F3 또는 “ / ” 눌러 해당 프로세스를 검색할 수 있다. |
F4 | 원하는 프로세스만 모니터링 할 수 있는 기능 (grep과 유사) |
F5 | pstree 명령어와 같은 기능으로 프로세스의 부모 자식 관계를 트리 형태로 보여주는 기능이며, 한 번 더 키를 입력하면 트리를 보여 주거나 그 반대 기능을 합니다.“+”.”-” 키를 이용해 트리를 펼치거나 접을 수 있다. |
F6 | 프로세스를 CPU 메모리,사용자,우선순위, 프로세스 이름 등 원하는 방식으로 정렬하여 보다 쉽게 모니터링 할 수 있다. |
F7 | 프로세스의 우선 순위을 바꾸는 단축키 |
F8 | |
F9 | 프로세스를 종료 시키는 단축키입니다. 보통 프로세스를 종료 시키려면ps명령어로 해당 PID를 찾아 kill -9 PID 명령어로 종료 시킵니다. htop에서 해 당 프로세스를 선택 후 F9 또는 “k”키를 입력하여 해당 프로세스를 종료시킬 수 있다. |
F10 | htop을 종료 |
l | 그 프로세스가 열고 있는 파일들을 볼 수 있다. |
u | 특정 사용자의 프로세스만 볼 수 있다. |
k | 현재 또는 선택된 프로세스를 종료 |
M | 메모리 사용량으로 프로세스를 정렬 |
P | CPU 사용량으로 프로세스를 정렬 |
프로세스 정보
프로세스 명령어 | 설명 |
PID | 프로세스의 프로세스 ID 번호 |
USER | 프로세스의 소유자 |
PR | 프로세스의 우선순위 |
NI | 우선순위에 영향을 주는 프로세스의 nice 값 |
VIRT | 프로세스가 사용 중인 가상 메모리 양 |
RES | 프로세스가 사용 중인 물리 RAM의 양 (단위는 킬로바이트) |
SHR | 프로세스가 사용 중인 공유 메모리 양 |
S | 프로세스의 현재 상태 (zombied, sleeping, running, uninterrupredly sleeping, traced) |
%CPU | 프로세스가 프로세서를 사용한 시간의 백분율 |
%MEM | 프로세스가 사용 중인 물리 RAM의 백분율 |
TIME+ | 프로세스가 프로세서를 사용한 시간 |
# F1 - 각 단축키 별 기능을 설명해준다.
# F2
<Meters>
Left Column == 상단 왼쪽에 있는 속성 ( CPU, Mem Swp )
Right column == 상단 오른쪽에 있는 속성 ( Task counter, Uptime, Clock )
※ 속성을 추가하고 싶으면 Available meters에서 가져와 사용하면 됨.
# F3 - 원하는 프로세스를 찾아서 검색할 수 있다.
# F4 - htop을 제외한 나머지 실행 중인 파일을 Filtering 한다.
# F5
- 정렬 방식을 정한다
- pstree구조로 보거나 Sorted된 구조로 정렬한다. ‘+’ ‘-’ 키를 사용해서 트리를 펼치거나 접을 수 있다.
# F6 - 프로세스를 원하는 방식으로 정렬하여 보기 쉽게 모니터링 할 수 있다.
# F7, F8
- F7, F8 - NI(Nice) : 프로세스의 우선 순위를 바꾸는 단축키
- F7 = NI(Nice) 값을 줄여 우선순위를 올리는 기능
- F8 = NI(Nice) 값을 올려 우선순위를 내리는 기능
즉 해당 프로세스를 선택하여 F7 또는 “]” 키를 사용하여 높이며,
‘F8’ 키 또는 ‘]’를 사용하여 우선 순위를 내릴 수 있음.
# F9 - sleep 프로세스를 검색해서 찾은 후 SIGKILL으로 프로세스를 종료해준다.
$ Monit
- Monit은 웹 기반의 프로세스 관리 도구이고 오픈 소스이다
- 자동으로 프로세스, 프로그램, 파일, 디렉터리, 허가, 체크섬, 파일 시스템 등을 관리 및 모니터링 한다
- Apache, MySQL, Mail, FTP, ProFTP, Nginx, SSH 같은 리눅스 기반 시스템 | 서비스를 모니터링 하는데 사용하며 시스템 관리자에게 정확하고 유용한 모니터링 기능을 제공한다
- 모니터링 정보는 CLI나 기본 HTTP(S)를 사용한 Web Interface를 통해 확인이 가능하다
- Web Interface를 사용하기 위해선 기본적으로 Apache나 Nginx 같은 시스템이 설치되어 있어야 한다
기능
- Monit은 프로세스를 시작할 수 있으며, 반응이 없을 시 Restart, 리소스 사용량이 증가할 시 종료도 가능
- 또한 파일, 디렉터리, 파일 시스템, Checksum, 파일 크기, TimeStamp 등의 변화를 모니터링 하는 데에도 사용 가능
- 원격지 Host의 TCP/IP Port, Server Protocol, Ping 통신 상태를 실시간 확인이 가능
- Monit은 특이사항을 log file의 모두 저장하고, 치명적 에러 발생시 경보를 주고 이를 회복
설치 CentOS7/8
# yum install epel-release
# yum install monit
monit 설정
- Monit 설정파일은 가독성이 높고 사용자 친화적으로 제작되어서 설정 난이도는 상당히 쉬운 편
- log 파일은 /var/log/monit에 저장된다.
- Web interface를 사용하기 위해 port는 2812로 사용된며 Web Interface기능을 사용하기 위해서 설정 파일을 수정, 메인 설정파일은 /etc/monitrc -> CentOS7 기준
#vi /etc/monitrc
- 이후 해당 영역을 활성화 시키고, IP address, domain name, allow user, change user info 등의 영역을 수정한다.
# /etc/init.d/monit start
- 해당 명령어로 monit 실행 후, "http://localhost:2812"로 접근이 가능하다.
- user name 은 "admin" 비밀번호는 "monit"으로 접속할 수 있다. -> 160번 라인에서 수정 가능
- 이후 모니터링 할 프로그램은 /etc/monitrc 파일 하단에 추가하여 관리가 가능하다.
EX )
Apache :
check process httpd with pidfile /var/run/httpd.pid
group apache
start program = "/etc/init.d/httpd start"
stop program = "/etc/init.d/httpd stop"
if failed host 127.0.0.1 port 80
protocol http then restart
if 5 restarts within 5 cycles then timeout
MySQL :
check process mysqld with pidfile /var/run/mysqld/mysqld.pid
group mysql
start program = "/etc/init.d/mysqld start"
stop program = "/etc/init.d/mysqld stop"
if failed host 127.0.0.1 port 3306 then restart
if 5 restarts within 5 cycles then timeout
- 프로그램 소스 추가 이후 # monit –t 명령어를 통해 에러 유무를 확인 가능하다
# monit -t
New Monit id: bd0592dde14cccfc9adac243bef374df
Stored in '/root/.moint.id'
Control file syntax OK
- 에러 없음을 확인하고 monit을 재 시작한다.
# etc/init.d/monit restart
- monit 서비스가 시작되면 log 파일을 확인 가능하다
# tail /var/log/monit
$ Nmon
- https://www.tecmint.com/nmon-analyze-and-monitor-linux-system-performance/
- Nmon(Nigel's performance Monitor)은 CPU, Memory, DiskUsage, Network, Top Processes, NFS, Kernel 등과 같은 퍼포먼스 관련 요소들을 모니터링하는데 사용하는 유틸리티, Online Mode와 Capture 모드가 있다
- Online Mode는 실시간 모니터링을 하는데 사용
- Capture Mode는 추후 작업을 위해 csv파일을 저장할 때 사용
설치 및 실행 CentOS7/8
# yum install epel-release
# yum install nmon
# nmon
- 해당 화면에서 하단의 키 정보를 통해 원하는 정보를 확인 가능하다
: CPU
- 'c' 키를 통해 CPU performance statistics를 확인 가능하다
- 'n' 키를 통해 네트워크 상태를 확인 가능하다
- 'd' 키를 통해 디스크 정보를 확인 가능하다.
: Top Process
: Kernel Information
- 'k' 키를 통해 System 커널 정보를 간략하게 확인할 수 있다.
: System Information
- 'r' 키를 통해서 시스템 정보를 확인할 수 있다
- 해당 화면에서는 하드웨어 구조, 운영체제 버전, 리눅스 버전, CPU 와 같은 정보를 확인 가능하다.
- 'j' 키를 통해 파일 시스템 정보를 확인 가능하다.
- 해당 화면을 통해 파일 시스템의 사이즈, 사용 공간, 파일 시스템 유형, 마운트 포인트를 확인 가능하다.
- 'N' 키를 통해 NFS 데이터를 수집 및 확인할 수 있다
Data Capture Mode
# nmon –f –s 13 –c 30
- 원하는 정보를 화면에 출력하는 것이 아닌, 파일로 저장하는 기능
- 해당 명령어 실행 후 작업 디렉토리에 .nmon 확장자를 가진 파일이 생성된 것을 확인 가능
* option Explanation
-f : 데이터를 출력하는 것이 아닌 파일로 저장하라는 의미
-s [n] : n 초 마다 데이터를 캡쳐하는 것을 의미
-c [n] : n 개의 data points / snap shots을 생성한다는 의미
'리눅스(Linux)' 카테고리의 다른 글
[Centos 7] Creating Filesystem & Mount, Auto mount (파일 시스템 생성 & 마운트, 오토마운트) (0) | 2022.11.23 |
---|---|
Disk management - File System, Partition (파일 시스템, 파티션) (0) | 2022.11.21 |
[Centos 7] Process Management (프로세스 관련 명령어) (0) | 2022.11.20 |
[Centos 7] Investigating and Managing Processes (프로세스 조사) (0) | 2022.11.20 |
[Centos 7] Ownership / Permissions (소유자/권한) (0) | 2022.11.20 |