/ process

RHCSA: Operate running systems - Identify CPU/memory intensive processes, adjust process priority with renice, and kill processes.

process Process Information top command kill command nice command renice command rhcsa-new redhat-new pkill command vmstat command netstat command iostat command ps command report
https://4am.kr/rhcsa-operate-running-systems-identify-cpu-memory-intensive-processes-adjust-process-priority-with-renice-and-kill-processes/

RHCSA : 실행 시스템 운영 – CPU/메모리 집약적인 프로세스를 파악하고 renice를 통해 프로세스 우선 순위를 수정하고 프로세스 종료

RHCSA 주제입니다. 아래 참조된 사이트를 번역 및 내용 추가하였습니다.

시스템 엑티비티

1. 서버 엑티비티를 연속적인 이미지로 얻기 위해서는 다음과 같이 입력한다(KVM 하이퍼바이저에서는 virt-top을 사용하면 된다).
[root@server2 ~]# top

rhcsa-renicenice-test-1-top

2. 프로세스에 대해 더 자세한 정보를 알고 싶다면, 다음과 같이 입력한다.
[root@server2 ~]# ps -edf
UID         PID   PPID  C STIME TTY          TIME CMD
...
root      78218      1  0 14:15 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    78219  78218  0 14:15 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    78220  78218  0 14:15 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    78221  78218  0 14:15 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    78222  78218  0 14:15 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    78223  78218  0 14:15 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
root      78339      2  0 14:23 ?        00:00:00 [kworker/0:0]
root      78403      2  0 14:28 ?        00:00:00 [kworker/0:2]
root      78509      2  0 14:38 ?        00:00:00 [kworker/0:1]
root      78557   1074  0 14:42 ?        00:00:00 sleep 60
root      78559  78034  0 14:43 pts/0    00:00:00 ps -edf
[root@server2 ~]# 

프로세스 우선순위

1. 프로세스(여기서는 dd if=/dev/zero of=/dev/null &로 가정)를 낮은 우선순위로 시작하고 싶다면, 다음과 같이 입력한다.
[root@server2 ~]# nice -n 10 dd if=/dev/zero of=/dev/null &
[1] 78593
[root@server2 ~]# 
2-1. 이미 실행중인 프로세스의 우선순위를 변경(여기서는 +5)하고 싶다면, top 혹은 ps 커맨드를 통해 PID(Process ID)(여기서는 78593으로 가정)를 확인하고 다음과 같이 입력한다.
[root@server2 ~]# renice +5 78593
78593 (process ID) old priority 10, new priority 5
[root@server2 ~]# 
2-2. 다른 방법으로 다음과 같이 입력할 수도 있다.
[root@server2 ~]# renice +5 `pgrep dd`
78593 (process ID) old priority 5, new priority 5
[root@server2 ~]# 

프로세스 삭제

1-1. 프로세스를 kill 하고자 하는 경우, 다음과 같이 PID(여기서는 78593으로 가정)를 이용하여 할 수 있다.
[root@server2 ~]# kill -9 78593
[root@server2 ~]# 
1-2. 다른 방법으로 다음과 같이 할 수도 있다.
[root@server2 ~]# pkill dd
[root@server2 ~]# 

시스템 리포팅

1. IO 엑티비티에 대하여 출력하고 싶다면 다음과 같이 입력한다.
[root@server2 ~]# iostat
Linux 3.10.0-123.el7.x86_64 (server2.example.com) 	2016년 05월 08일 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.15    0.04    0.20    0.00    0.00   99.61

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.20         1.75         0.85     470518     228573
sdb               0.00         0.00         0.00        912          0
dm-0              0.00         0.00         0.00        984          0
dm-1              0.20         1.64         0.84     442140     226481

[2]+  종료됨               dd if=/dev/zero of=/dev/null
[root@server2 ~]# 
2. 네트워크 카드의 엑티비티를 출력하고 싶다면, 다음과 같이 입력한다.
[root@server2 ~]# netstat -i
Kernel Interface table
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eno16777  1500    78414      0      0 0          9769      0      0      0 BMRU
lo       65536        8      0      0 0             8      0      0      0 LRU
[root@server2 ~]# 
3. 소켓 엑티비티를 출력하고 싶다면, 다음과 같이 입력한다.
[root@server2 ~]# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 localhost:smtp          0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:60287           0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:sunrpc          0.0.0.0:*               ...
/run/systemd/journal/stdout
unix  3      [ ]         STREAM     CONNECTED     24494    
unix  3      [ ]         STREAM     CONNECTED     24478    
unix  3      [ ]         STREAM     CONNECTED     17788    
[root@server2 ~]# 
4. 가상 메모리 엑티비티(메모리, 스왑, 실행 큐, cpu 사용량, 기타)를 5초마다 얻고 싶다면 다음과 같이 입력한다.
[root@server2 ~]# vmstat 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 3  0      0 739980    880 510788    0    0     2     1   28   44  0  0 100  0  0
 1  0      0 739692    880 510820    0    0     0     0   51   92  0  0 100  0  0
 0  0      0 739692    880 510820    0    0     0     0   44   79  0  0 100  0  0
 1  0      0 739692    880 510820    0    0     0     0   47   83  0  0 100  0  0
^C
[root@server2 ~]# 
5. 서버 엑티비티에 대한 전체 리포트를 출력하고 싶다면, 다음과 같이 입력한다.
[root@server2 ~]# sar -A
Linux 3.10.0-123.el7.x86_64 (server2.example.com) 	2016년 05월 08일 	_x86_64_	(1 CPU)

                CPU      %usr     %nice      %sys   %iowait    %steal      %irq     %soft    %guest    %gnice     %idle
                all      0.14      0.00      0.07      0.00      0.00      0.00      0.00      0.00      0.00     99.79
                  0      0.14      0.00      0.07      0.00      0.00      0.00      0.00      0.00      0.00     99.79

                CPU      %usr     %nice      %sys   %iowait    %steal      %irq     %soft    %guest    %gnice     %idle
                all      0.13      0.00      0.05      0.00      0.00      0.00      0.00      0.00      0.00     99.82
                  0      0.13      0.00      0.05      0.00      0.00      0.00      0.00      0.00      0.00     99.82
...

추가 자료