sysdig
Linux Kernel의 다양한 동작들을 출력하고, 성능 측정도 할 수 있는 sysdig의 사용법을 정리한다.
1. lsof
1.1. sysdig
8464 01:23:53.859656137 1 sshd (30637) < read res=2 data=..
8465 01:23:53.859656937 1 sshd (30637) > getpid
8466 01:23:53.859657037 1 sshd (30637) < getpid
8467 01:23:53.859658137 1 sshd (30637) > clock_gettime
8468 01:23:53.859658337 1 sshd (30637) < clock_gettime
8469 01:23:53.859658837 1 sshd (30637) > select
8470 01:23:53.859659637 1 sshd (30637) < select res=1
8471 01:23:53.859660037 1 sshd (30637) > clock_gettime
8472 01:23:53.859660237 1 sshd (30637) < clock_gettime
8473 01:23:53.859660737 1 sshd (30637) > rt_sigprocmask
8474 01:23:53.859660937 1 sshd (30637) < rt_sigprocmask
8475 01:23:53.859661337 1 sshd (30637) > rt_sigprocmask
8476 01:23:53.859661537 1 sshd (30637) < rt_sigprocmask
8477 01:23:53.859662037 1 sshd (30637) > clock_gettime
8478 01:23:53.859662237 1 sshd (30637) < clock_gettime
8479 01:23:53.859662737 1 sshd (30637) > write fd=3(<4t>10.0.0.10:12403->10.0.0.19:22) size=36
8480 01:23:53.859663337 1 sshd (30637) < write res=36 data=.)r...GId....mG.e..._.~..h}....K.{..
8481 01:23:53.859663937 1 sshd (30637) > clock_gettime
8482 01:23:53.859664137 1 sshd (30637) < clock_gettime
8483 01:23:53.859664737 1 sshd (30637) > select
8484 01:23:53.859665937 1 sshd (30637) > switch next=3591(sysdig) pgft_maj=3 pgft_min=452 vm_size=72356 vm_rss=6396 vm_swap=0
sysdig가 감지할 수 있는 Kernel의 모든 동작을 출력한다. [Shell 1]은 sysdig
를 이용하여 Kernel의 동작을 출력하는 Shell의 모습을 나타내고 있다.
1.2. sysdig -c topprocs_cpu
CPU% Process PID
--------------------------------------------------------------------------------
5.03% cadvisor 2521
2.01% prometheus 2397
1.01% sysdig 4327
0.00% dbus-daemon 920
0.00% grafana-server 2398
CPU 사용률 높은 Process들을 순서대로 출력한다. [Shell 2]는 sysdig -c topprocs_cpu
를 이용하여 CPU 사용률이 높은 Process들을 출력하는 Shell의 모습을 나타내고 있다.
1.3. sysdig -c topprocs_net
Bytes Process PID
--------------------------------------------------------------------------------
1.70KB openstack-expor 3228
314B prometheus 2258
236B sshd 3026
212B dbus-daemon 920
124% grafana-server 2398
Network Bandwidth 사용률 높은 Process들을 순서대로 출력한다. [Shell 3]는 sysdig -c topprocs_net
를 이용하여 Network Bandwidth 사용률이 높은 Process들을 출력하는 Shell의 모습을 나타내고 있다.
1.4. sysdig -c topprocs_file
Bytes Process PID
--------------------------------------------------------------------------------
38.40M prometheus 2574
32.55KB cadvisor 2643
292B sshd 2135
254B chronyd 2540
Disk Bandwidth 사용률 높은 Process들을 순서대로 출력한다. [Shell 4]는 sysdig -c topprocs_net
를 이용하여 Disk Bandwidth 사용률이 높은 Process들을 출력하는 Shell의 모습을 나타내고 있다.
1.5. sysdig -c topfiles_bytes
Bytes Filename
--------------------------------------------------------------------------------
1.12KB /proc/stat
1.05KB /dev/ptmx
832B /lib/x86_64-linux-gnu/libnsl.so.1
832B /lib/x86_64-linux-gnu/libnss_compat.so.2
832B /lib/x86_64-linux-gnu/libnss_nis.so.2
832B /lib/x86_64-linux-gnu/libnss_files.so.2
832B /lib/x86_64-linux-gnu/libm.so.6
832B /lib/x86_64-linux-gnu/libc.so.6
497B /etc/nsswitch.conf
Disk Bandwidth 사용률 높은 File들을 순서대로 출력한다. [Shell 4]는 sysdig -c topfiles_bytes
를 이용하여 Disk Bandwidth 사용률이 높은 File들을 출력하는 Shell의 모습을 나타내고 있다.