ºìÁªLinuxÃÅ»§
Linux°ïÖú

Collectl: È«ÄÜLinuxÐÔÄÜ¼à¿Ø¹¤¾ß

·¢²¼Ê±¼ä:2014-06-07 10:21:34À´Ô´:ºìÁª×÷Õß:velcbo
¶ÔÓÚÒ»¸ö Linux ϵͳ¹ÜÀíÔ±À´ËµÈ·±£×Ô¼º¹ÜÀíµÄϵͳ´¦ÓÚÒ»¸öÁ¼ºÃµÄ״̬ÊÇÆäÊ×ÒªÔðÈΡ£Linux ϵͳ¹ÜÀíÔ±¿ÉÒÔÕÒµ½Óкܶ๤¾ßÀ´°ïÖú×Ô¼º¼à¿ØºÍÏÔʾϵͳÖеĽø³Ì£¬ÀýÈç top ºÍ htop ,µ«ÊÇÕâЩ¹¤¾ß¶¼²»ÄÜÓë collectl ÏàæÇÃÀ¡£

collectlÊÇÒ»¿î·Ç³£ÓÅÐã²¢ÇÒÓÐ×ŷḻµÄÃüÁîÐй¦ÄܵÄʵÓóÌÐò£¬Äã¿ÉÒÔÓÃËüÀ´²É¼¯ÃèÊöµ±Ç°ÏµÍ³×´Ì¬µÄÐÔÄÜÊý¾Ý¡£²»Í¬ÓÚ´ó¶àÊýÆäËüµÄϵͳ¼à¿Ø¹¤¾ß£¬collectl ²¢·Ç½ö¾ÖÏÞÓÚÓÐÏÞµÄϵͳ¶ÈÁ¿£¬Ïà·´£¬Ëü¿ÉÒÔÊÕ¼¯Ðí¶à²»Í¬ÀàÐÍϵͳ×ÊÔ´µÄÏà¹ØÐÅÏ¢£¬Èç cpu ¡¢disk¡¢memory ¡¢network ¡¢sockets ¡¢ tcp ¡¢inodes ¡¢infiniband ¡¢ lustre ¡¢memory¡¢nfs¡¢processes¡¢quadrics¡¢slabsºÍbuddyinfoµÈ¡£

ʹÓà collectl µÄÁíÒ»¸öºÃ´¦¾ÍÊÇËü¿ÉÒÔÌæ´úÄÇÐ©ÌØ¶¨ÓÃ;µÄ¹¤¾ßÈ磺 top¡¢ps¡¢iotop µÈµÈÆäËü¹¤¾ß¡£ÄÇô collectl ÓÐÊ²Ã´ÌØÐÔ¶øÊ¹Æä³ÉΪһ¸öÓÐÓõŤ¾ßÄØ£¿

¾­¹ýÐí¶àÑо¿ºó£¬ÎÒ×ܽáÁË collectl µÄÃüÁîÐй¦ÄܵÄһЩ·Ç³£ÖØÒªµÄÌØÐÔ¡£
Collectl ÌØÐÔ

¿ÉÒÔ½»»¥Ê½µØÔËÐлò×÷Ϊһ¸öÊØ»¤½ø³Ì£¬»òͬʱ¶þÕ߼汸µØÔËÐС£

¿ÉÒÔÒÔ¶àÖÖ¸ñʽÏÔʾÊä³ö¡£

¿ÉÒÔ¼à¿Ø¼¸ºõËùÓеÄ×Óϵͳ¡£

¿ÉÒÔÌæ´úÐí¶à¹¤¾ßÈç ps¡¢top¡¢iotop¡¢vmstat¡£

¿ÉÒԼǼ²¢»Ø·Å²¶»ñµÄÊý¾Ý¡£

¿ÉÒÔ½«Êý¾Ýµ¼³ö³É¶àÖÖÊý¾Ý¸ñʽ¡££¨ÕâÔÚÄãÏëÓÃÍⲿ¹¤¾ß·ÖÎöÊý¾Ýʱ·Ç³£ÓÐÓã©

¿ÉÒÔ×÷Ϊһ¸ö·þÎñÀ´¼à¿ØÔ¶³Ì»ú»òÕßÕû¸ö·þÎñÆ÷¼¯Èº¡£

¿ÉÒÔÔÚÖÕ¶ËÏÔʾÊý¾Ý£¬Ð´ÈëÊý¾Ýµ½Îļþ»òÕßÒ»¸öÌ×½Ó×Ö¡£

ÈçºÎÔÚLinuxÉϰ²×°collectl

collectl¿ÉÒÔÔÚËùÓÐµÄ Linux ·¢ÐаæÉÏÔËÐУ¬Î¨Ò»ÐèÒªµÄ¾ÍÊÇ perl ÓïÑÔ£¬ËùÒÔÔÚ°²×° collectl ֮ǰ£¬Ò»¶¨ÒªÈ·±£ÄãµÄµçÄÔÉÏÒѾ­°²×°ÁËPerl¡£
¶ÔÓÚDebian/Ubuntu/Linux Mint

ÏÂÃæµÄÃüÁî¿ÉÒÔÓÃÀ´ÔÚÒÔ Debian Ϊ»ù´¡µÄÉ豸Èç Ubuntu Éϰ²×° collectl¡£

$ sudo apt-get install collectl

¶ÔÓÚRHEL/CentOS/Fedora

Èç¹ûÄãÕýÔÚʹÓûùÓÚºìñµÄ·¢Ðа棬Äã¿ÉÒÔÓà yum ÃüÁîÇáËÉ»ñÈ¡Ëü¡£

# yum install collectl

һЩ¹ØÓÚcollectlµÄʵÀý

collectl ¹¤¾ß°²×°Íê³ÉÖ®ºó£¬Äã¿ÉÒÔÇáËɵØÔÚÖÕ¶ËÔËÐÐËü£¬ÄãÉõÖÁ²»ÐèÒªÖ¸¶¨ÈκÎÑ¡Ïî¡£ÏÂÃæµÄÃüÁ»áÒÔ¼ò¶ÌÒ×¶ÁµÄ¸ñʽÏÔʾcpu¡¢Ó²Å̺ÍÍøÂçÐÅÏ¢¡£

# collectl
waiting for1 second sample...
#
#cpu sys inter ctxsw KBRead Reads KBWrit Writes KBIn PktIn KBOut PktOut
13579013220092741305
102719118600003904
1207531188005232506
132733106300001101
252834137500001101
2828701424003671101
1939492271004431101
172809138400001606
162732134800001101
2249931615005631203

ÕýÈçÉÏÃæÖÕ¶ËÉÏËùÏÔʾµÄ£¬ÎÒÃǺÜÈÝÒ×¹Û²ì¸ÃÃüÁîÊä³öµÄϵͳ¶ÈÁ¿Öµ£¬ÒòΪËüÿ´ÎÒÔÒ»ÐÐÏÔʾ¡£

²»¼ÓÈκβÎÊýÖ´ÐÐ collectl »áÏÔʾÏÂÃæ×ÓϵͳµÄÐÅÏ¢

cpu
´ÅÅÌ
ÍøÂç

Ìáʾ£ºÔÚÕâÀһ¸ö×Óϵͳ¾ÍÊÇÿһÖÖ¿ÉÒÔ²âÁ¿µÄϵͳ×ÊÔ´¡£

ÄãÒ²¿ÉÒÔÏÔʾ³ýslabsÒÔÍâ¸÷¸ö×ÓϵͳµÄͳ¼ÆÊý¾Ý£¬ÕâÒª½áºÏÏÂÃæµÄ -all Ñ¡ÏîÀ´ÊµÏÖ¡£

# collectl --all
waiting for1 second sample...
#
#cpu sys inter ctxsw Cpu0 Cpu1 Free Buff Cach Inac Slab Map Fragments KBRead Reads KBWrit Writes KBIn PktIn KBOut PktOut IP Tcp Udp Icmp Tcp Udp Raw Frag Handle Inodes Reads Writes Meta Comm
16381715424303901G175M1G683M193M1G nsslkjjebbk 002431101000062300081602408290000
11174513243164261G175M1G683M193M1G nsslkjjebbk 00000302000062200081602408280000
15279316833714241G175M1G683M193M1G ssslkjjebbk 00001101000062200081602408290000
16287218754274461G175M1G683M193M1G ssslkjjebbk 002431101000062200081602408280000
24284213834733681G175M1G683M193M1G ssslkjjebbk 0016861101000062200081602408280000
27384410994783651G175M1G683M193M1G nsslkjjebbk 00001619000062200081602408280000
26582312383964281G175M1G683M193M1G ssslkjjebbk 000021139000062200081602408280000
15175312763613911G175M1G683M193M1G ssslkjjebbk 004031203000062300081602408290000

µ«ÊÇ£¬ÄãÈçºÎÓÃËüÀ´¼à¿Ø cpu µÄʹÓÃÇé¿öÄØ£¿ ¡®-s¡¯ Ñ¡Ïî¿ÉÒÔÓÃÀ´¿ØÖÆÄĸö×ÓϵͳµÄÊý¾ÝÐèÒªÊÕ¼¯ºÍ»Ø·Å¡£

ÀýÈçÏÂÃæµÄÃüÁî¿ÉÒÔÓÃÀ´¶ÔcpuʹÓÃÇé¿ö½øÐÐÒ»¸ö×ܽᡣ

# collectl -sc
waiting for1 second sample...
#
#cpu sys inter ctxsw
1527491155
1637721445
1427931247
2748871292
2417961258
1617431113
1517431179
1417061078
1517641268

µ±Ä㽫Õâ¸öÃüÁîÓë¡°scdn¡±½áºÏʱ»á·¢ÉúÊ²Ã´ÄØ£¿Ñ§Ï°ÃüÁîÐй¤¾ß×îºÃµÄ·½Ê½¾ÍÊǶà¼ÓÁ·Ï°£¬ËùÒÔÔÚÖÕ¶ËÔËÐÐÏÂÃæµÄÃüÁî¿´¿´»á·¢Éúʲô°É¡£

# collectl -scdn
waiting for1 second sample...
#
#cpu sys inter ctxsw KBRead Reads KBWrit Writes KBIn PktIn KBOut PktOut
254943333300001102
273825291000001101
275886253100000001
204872240600001101
2618542091002021101
3941004339800002836
4169552464004031203
257890160900001101
162814116500796432202
1417791383004861101
11279512850000214114

Äã¿ÉÒÔºÜÈÝÒ×¾ÍÃ÷°×ĬÈÏÑ¡ÏîÊÇ¡°cdn¡±£¬Ëü´ú±ícpu¡¢Ó²Å̺ÍÍøÂçÊý¾Ý¡£ÔËÐдøÕâ¸öÑ¡ÏîµÄ collectl ÃüÁîµÄÊä³öºÍ¡°collectl £­scn¡±µÄÊä³öÒ»Ñù¡£

Èç¹ûÄãÏë²É¼¯ÄÚ´æµÄÊý¾Ý£¬ÓÃÏÂÃæµÄÃüÁî¡£

# collectl -sm
waiting for1 second sample...
#
#Free Buff Cach Inac Slab Map
1G177M1G684M193M1G
1G177M1G684M193M1G
1G177M1G684M193M1G
1G177M1G684M193M1G
1G177M1G684M193M1G
1G177M1G684M193M1G
1G177M1G684M193M1G
1G177M1G684M193M1G

µ±ÄãÏëÒª½øÒ»²½Á˽âÄÚ´æÊ¹ÓÃÐÅÏ¢¡¢¿ÕÏеÄÄÚ´æ»òÕßÓëÄãϵͳÐÔÄÜÓйصÄÖØÒª×ÊÁÏʱ£¬ÉÏÃæµÄÊä³ö½«ÊǷdz£ÓÐÓõġ£

Èç¹ûÏëËѼ¯Ò»µã¶ù tcp µÄÊý¾ÝÄØ£¿Ê¹ÓÃÏÂÃæµÄÃüÁîÀ´ÊµÏÖ°É¡£

# collectl -st
waiting for1 second sample...
#
# IP Tcp Udp Icmp
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000

µ±ÄãÊìÁ·µ½Ò»¶¨³Ì¶Èʱ£¬Äã¾Í¿ÉÒÔºÜÇáËɵصõ½ÄãÏëÒªµÄ½á¹ûÁË¡£ÀýÈçÄã¿ÉÒÔ½«¹ØÓÚ tcp µÄ¡°t¡±Ñ¡ÏîºÍ¹ØÓÚ cpu µÄ¡°c¡±Ñ¡Ïî×éºÏµ½Ò»Æð¡£ÏÂÃæµÄÃüÁî¾ÍÊÇÈç´Ë¡£

# collectl -stc
waiting for1 second sample...
#
#cpu sys inter ctxsw IP Tcp Udp Icmp
23896131360000
24591636620000
21884824080000
301091626740000
38382617520000
31382014080000
15578113350000
17380213140000
17375512180000
14278813210000

¶ÔÓÚÎÒÃÇÆÕͨ´óÖÚÀ´Ëµ¼ÇסÕâЩѡÏîºÜÀ§ÄÑ£¬ËùÒÔÔÚÕâÀÎÒÕûÀí³öÁËÒ»¸öÁбíÀ´×ܽáÕâ¸ö¹¤¾ßÖ§³ÖµÄÑ¡Ïî¡£

b - buddy info (ÄÚ´æË鯬)
c - CPU
d - Disk
f - NFS V3 Data
i - Inode and File System
j - Interrupts
l - Lustre
m - Memory
n - Networks
s - Sockets
t - TCP
x - Interconnect
y - Slabs (ϵͳ¶ÔÏ󻺴æ)

¶ÔÓÚÒ»¸öϵͳ¹ÜÀíÔ±»òÕßÒ»¸ö Linux Óû§À´ËµºÜÖØÒªµÄÒ»ÖÖÊý¾Ý¾ÍÊÇÓ²Å̵ÄʹÓÃÇé¿ö¡£ÏÂÃæµÄÃüÁî¿ÉÒÔ°ïÄã¼à¿ØÓ²ÅÌʹÓÃÇé¿ö¡£

# collectl -sd
waiting for1 second sample...
#
#KBRead Reads KBWrit Writes
0000
0000
00927
0000
00363
0000
0000
001007
0000

ÄãÒ²¿ÉÒÔʹÓá°-sD¡±Ñ¡ÏîÀ´²É¼¯µ¥¸öÓ²Å̵ÄÊý¾Ý£¬²»¹ýÄã±ØÐëÖªµÀÕâ¾Í²»»áÏÔʾȫ²¿Ó²Å̵ÄÐÅÏ¢¡£

# collectl -sD
waiting for1 second sample...
# DISK STATISTICS (/sec)
# Pct
#Name KBytes Merged IOs Size KBytes Merged IOs Size RWSize QLen Wait SvcTim Util
sda 00005211226261881
sda 0000000000000
sda 0000240212120000
sda 00001520438380000
sda 00001924536464120205
sda 0000204021021020000
sda 0000000000000
sda 00001162633938116164
sda 0000000000000
sda 0000000000000
sda 000032531110116164
sda 0000000000000

ÄãÒ²¿ÉÒÔʹÓÃÆäËüÏêϸµÄ×ÓϵͳÀ´²É¼¯ÏêϸµÄÊý¾Ý¡£ÏÂÃæÊÇÏêϸ×ÓϵͳµÄÒ»¸öÁÐ±í¡£

C - CPU
D - Disk
E - Environmental data (fan, power, temp), via ipmitool
F - NFS Data
J - Interrupts
L - Lustre OST detail OR client Filesystem detail
N - Networks
T - 65 TCP counters only available in plot format
X - Interconnect
Y - Slabs (system object caches)
Z - Processes

collectl ¹¤¾ßÖÐÓÐÐí¶àÑ¡Ïµ«ÊǽöÓÃһƪÎÄÕÂÀ´½éÉܿ϶¨ÊǽéÉܲ»¹ýÀ´µÄ¡£È»¶øÈç¹û½«Ëüµ±×÷ top ºÍ ps ¹¤¾ßÀ´Ê¹Óû¹ÊÇÖµµÃÒ»ÌáµÄ¡£

ºÜÈÝÒ×½« collectl µ±×÷ top À´Ê¹Óã¬Ö»ÒªÔÚ Linux ϵͳµÄÖÕ¶ËÔËÐÐÏÂÃæµÄÃüÁîÄã¾Í»á¿´µ½ºÍ top ¹¤¾ßÀàËÆµÄÊä³ö¡£

# collectl --top
# TOP PROCESSES sorted by time (counters are /sec) 13:11:02
# PID User PR PPID THRD S VSZ RSS CP SysT UsrT Pct AccuTime RKB WKB MajF MinF Command
^COuch!tecmint 20140 R 1G626M00.010.141528:48.24000109/usr/lib/firefox/firefox
3403 tecmint 20140 R 1G626M10.000.202028:48.44000600/usr/lib/firefox/firefox
5851 tecmint 2046660 R 17M13M00.020.06800:01.280000/usr/bin/perl
1682 root 2016662 R 211M55M10.020.01303:10.2400095/usr/bin/X
3454 tecmint 2034038 S 216M45M10.010.02301:23.320000/usr/lib/firefox/plugin-container
4658 tecmint 2046573 S 207M17M10.000.02200:08.23000142 gnome-terminal
2890 tecmint 2025713 S 340M68M00.000.01101:19.950000 compiz
3521 tecmint 20124 S 710M148M10.010.00101:47.840000 skype
1 root 2000 S 3M2M00.000.00000:02.570000/sbin/init
2 root 2000 S 0010.000.00000:00.000000 kthreadd
3 root 2020 S 0000.000.00000:00.600000 ksoftirqd/0
5 root 020 S 0000.000.00000:00.000000 kworker/0:0H
7 root 020 S 0000.000.00000:00.000000 kworker/u:0H
8 root RT 20 S 0000.000.00000:04.420000 migration/0
9 root 2020 S 0000.000.00000:00.000000 rcu_bh
10 root 2020 R 0000.000.00000:02.220000 rcu_sched
11 root RT 20 S 0000.000.00000:00.050000 watchdog/0
12 root RT 20 S 0010.000.00000:00.070000 watchdog/1
13 root 2020 S 0010.000.00000:00.730000 ksoftirqd/1
14 root RT 20 S 0010.000.00000:01.960000 migration/1
16 root 020 S 0010.000.00000:00.000000 kworker/1:0H
17 root 020 S 0010.000.00000:00.000000 cpuset

×îºó£¬µ±È»²»ÊÇ˵Õâ²»ÖØÒª£¬ÎÒÃÇÔÚÖÕ¶ËÔËÐÐÏÂÃæµÄÃüÁî¾Í¿ÉÒÔ½« collectl ÓÃ×÷ ps ¹¤¾ßÁË¡£ Äã¿ÉÒԵõ½¹ØÓÚÄãϵͳ½ø³ÌµÄÐÅÏ¢£¬ÕâºÍÔÚÖÕ¶ËÔËÐС°ps¡±ÃüÁîÊÇÒ»ÑùµÄ¡£

# collectl -c1 -sZ -i:1
waiting for1 second sample...
### RECORD 1 >>> tecmint-vgn-z13gn <<< (1397979716.001) (Sun Apr 20 13:11:56 2014) ###
# PROCESS SUMMARY (counters are /sec)
# PID User PR PPID THRD S VSZ RSS CP SysT UsrT Pct AccuTime RKB WKB MajF MinF Command
1 root 2000 S 3M2M00.000.00000:02.570000/sbin/init
2 root 2000 S 0010.000.00000:00.000000 kthreadd
3 root 2020 S 0000.000.00000:00.600000 ksoftirqd/0
5 root 020 S 0000.000.00000:00.000000 kworker/0:0H
7 root 020 S 0000.000.00000:00.000000 kworker/u:0H
8 root RT 20 S 0000.000.00000:04.420000 migration/0
9 root 2020 S 0000.000.00000:00.000000 rcu_bh
10 root 2020 S 0000.000.00000:02.240000 rcu_sched
11 root RT 20 S 0000.000.00000:00.050000 watchdog/0
12 root RT 20 S 0010.000.00000:00.070000 watchdog/1
13 root 2020 S 0010.000.00000:00.730000 ksoftirqd/1
14 root RT 20 S 0010.000.00000:01.960000 migration/1
16 root 020 S 0010.000.00000:00.000000 kworker/1:0H
17 root 020 S 0010.000.00000:00.000000 cpuset
18 root 020 S 0010.000.00000:00.000000 khelper
19 root 2020 S 0000.000.00000:00.000000 kdevtmpfs
20 root 020 S 0000.000.00000:00.000000 netns
21 root 2020 S 0000.000.00000:00.000000 bdi-default
22 root 020 S 0000.000.00000:00.000000 kintegrityd

ÎÒÈ·ÐÅÐí¶àϵͳ¹ÜÀíÔ±½«»áϲ»¶Õâ¸ö¹¤¾ß²¢ÇÒÔÚ³ä·ÖʹÓÃËüºó»á¸ÐÊܵ½ËüµÄÇ¿´ó¡£Èç¹ûÄãÏëÔö½øÄã¶Ô collectl µÄÁ˽⣬´Ó¶ø´ïµ½ÐµIJãÃæ£¬Äã¿ÉÒÔÈ¥²ÎÔÄ collectl µÄ man ÊֲᲢÇÚ¼ÓÁ·Ï°¡£

ÔÚÄãµÄÖն˼üÈëÏÂÃæµÄÃüÁʼÔĶÁ°É¡£

# man collectl

²Î¿¼Á´½Ó

collectl Homepage£ºhttp://collectl.sourceforge.net/index.html

À´Ô´£ºLinuxÉçÇø
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ