(2 votes)

24 สุดยอดเครื่องมือตรวจสอบประสิทธิภาพเครือข่ายและระบบของ Linux

24 สุดยอดเครื่องมือตรวจสอบประสิทธิภาพเครือข่ายและระบบของ Linux

               ฉบับนี้ ผู้เขียนขอแนะนำให้รู้จักกับเครื่องมือ ทรงประสิทธิภาพ สำหรับการดูแลระบบเครือข่าย และ Server ที่ทำงานภายใต้ ระบบปฏิบัติการ Linux 25 รายการซึ่งมากเพียงพอสำหรับที่ต้องการ ตรวจสอบประสิทธิภาพการทำงาน รวมทั้งการหาจุดเสีย และปัญหาต่างๆ

1.   SAR

               ภายใต้การทำงานของ SAR Utility ซึ่งมากับระบบปฏิบัติการ ท่านจะสามารถ

  • เฝ้าดูประสิทธิภาพการทำงานของ CPU หน่วยความจำ อุปกรณ์ I/O ต่างๆ)
  • รวบรวมข้อมูลข่าวสารเกี่ยวกับประสิทธิภาพการทำงานของอุปกรณ์ และระบบในลักษณะเรียลไทม์ เพื่อที่จะนำมาวิเคราะห์หาสาเหตุ หรือที่มาของปัญหาการทำงาน

SAR เป็นส่วนหนึ่งของโปรแกรมแพ็กเกจที่มีชื่อเรียกว่า sysstat ต่อไปนี้เป็นข้อสรุปประสิทธิภาพ

การทำงานของ SAR

ภาพที่ 1 แสดงหน้าจอการทำงานของ SAR

 

  • รวบรวมปริมาณใช้งานของ CPU
  • แสดงข้อมูลข่าวสารเกี่ยวกับสถิติการทำงานของ CPU แต่ละตัว
  • ปริมาณการใช้งานหน่วยความจำ รวมทั้งจำนวนคงเหลือของหน่วยความจำ
  • ปริมาณการใช้งานเนื้อที่ Swap และเนื้อที่คงเหลือ
  • กิจกรรมของอุปกรณ์ I/O ต่างๆ
  • สถิติการทำงานของระบบเครือข่าย
  • รายงานเกี่ยวกับข้อมูลของ SAR ในห้วงเวลาหนึ่ง

 ตัวอย่างต่อไปนี้ แสดงสถิติการทำงานของ CPU จำนวน 3 ครั้งโดยเว้นห้วงเวลา 1 วินาที และ option –b มีไว้เพื่อให้มีการรายงานสถิติการทำงานของ I/O

 
$ sar -b 1 3
Linux 2.6.18-194.el5PAE (dev-db)        03/26/2011      _i686_  (8 CPU)
 
01:56:28 PM       tps       rtps         wtps      bread/s    bwrtn/s
01:56:29 PM    346.00    264.00     82.00     2208.00    768.00
01:56:30 PM    100.00     36.00     64.00      304.00     816.00
01:56:31 PM    282.83     32.32     250.51    258.59     2537.37
Average:         242.81    111.04    131.77     925.75     1369.90

2.   Tcpdump

               Tcpdump เป็นโปรแกรมประเภทวิเคราะห์ Packet บนเครือข่าย ด้วยโปรแกรมนี้ ท่านจะสามารถดักจับและวิเคราะห์ ดูปัญหาต่างๆ เช่น Packet Error รวมทั้งปัญหาการเชื่อมต่อ ปัญหาการติดต่อกับ Server ปัญหาประสิทธิภาพการทำงานของเครือข่าย ปัญหาระบบความปลอดภัย เป็นต้น คำสั่งต่อไปนี้เป็นตัวอย่างการ ดักจับ Packet และแสดงดูข้อมูลภายใน Packet ที่แสดงในลักษณะรหัส ASCII

$ tcpdump -A -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:34:50.913995 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 1457239478:1457239594(116) ack 1561461262 win 63652
E.....@.@..]..i...9...*.V...]...P....h....E...>{..U=...g.
......G..7\+KA....A...L.
14:34:51.423640 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 116:232(116) ack 1 win 63652
E.....@.@..\..i...9...*.V..*]...P....h....7......X..!....Im.S.g.u:*..O&....^#Ba...
E..(R.@.|.....9...i.*...]...V..*P..OWp........

ท่านสามารถใช้ Tcpdump เพื่อดักจับ Packet ภายใต้เงื่อนไขที่ท่านสามารถจัดตั้งขึ้นได้ ตัวอย่างเช่น ท่านสามารถเลือกที่จะดักจับ Packet ที่ทำงานภายใต้หมายเลข Port ต่างๆที่ท่านต้องการ หรือ Packet ที่มาจากโปรโตคอลโดยเฉพาะก็ได้ เช่นกัน

ตัวอย่างการดักจับ 2 Packet ด้วยคำสั่ง tcpdump -c

ปกติเมื่อเราเรียกใช้ Tcpdump แล้ว โปรแกรมจะมีการดับจับ Packet ไปเรื่อยๆ จนกว่าเราจะสั่งให้หยุด แต่เราก็ยังสามารถใช้คำสั่ง เพื่อดักจับ Packet ตามจำนวนที่ต้องการได้อีกด้วย คำสั่งต่อไปนี้ ใช้เพื่อดักจับ packet เพียง 2 รายการเท่านั้น 

$ tcpdump -c 2 -i eth0
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:38:38.184913 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 1457255642:1457255758(116) ack 1561463966 win 63652
14:38:38.690919 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 116:232(116) ack 1 win 63652
2 packets captured
13 packets received by filter
0 packets dropped by kernel

แสดงข้อมูลใน Packet ในรูปแบบของ HEX และ ASCII ด้วยคำสั่ง tcpdump – XX

$tcpdump -XX -i eth0
18:52:54.859697 IP zz.domain.innetbcp.net.63897 > valh4.lell.net.ssh: . ack 232 win 16511
        0x0000:  0050 569c 35a3 0019 bb1c 0c00 0800 4500  .PV.5.........E.
        0x0010:  0028 042a 4000 7906 c89c 10b5 aaf6 0f9a  .(.*@.y.........
        0x0020:  69c4 f999 0016 57db 6e08 c712 ea2e 5010  i.....W.n.....P.
        0x0030:  407f c976 0000 0000 0000 0000            @..v........
18:52:54.877713 IP 10.0.0.0 > all-systems.mcast.net: igmp query v3 [max resp time 1s]
        0x0000:  0050 569c 35a3 0000 0000 0000 0800 4600  .PV.5.........F.
        0x0010:  0024 0000 0000 0102 3ad3 0a00 0000 e000  .$......:.......
        0x0020:  0001 9404 0000 1101 ebfe 0000 0000 0300  ................
        0x0030:  0000 0000 0000 0000 0000 0000            ............

ดักจับ Packet แล้วเขียนเข้าไปใน File ด้วยคำสั่ง tcpdump -w

$ tcpdump -w 08232010.pcap -i eth0
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
32 packets captured
32 packets received by filter
0 packets dropped by kernel

-w เป็น option ที่ทำให้สามารถเขียนข้อมูลลงไปใน File ที่ท่านกำหนดไว้ โดย File นี้จะมีนามสกุลว่า .pcap ซึ่งท่านสามารถอ่านได้จากโปรแกรมวิเคราะห์เครือข่ายทั่วไป เช่น Ethereal หรือ Wireshark   

อ่านข้อมูล Packet จาก File ด้วยคำสั่ง tcpdump –r

               ท่านสามารถอ่านข้อมูลเกี่ยวกับ Packet ที่ได้ถูกบันทึกลงบน File ก่อนหน้านั้นด้วยคำสั่ง tcpdump –r ดังนี้

$tcpdump -tttt -r data.pcap
2010-08-22 21:35:26.571793 00:50:56:9c:69:38 (oui Unknown) > Broadcast, ethertype Unknown (0xcafe), length 74:
        0x0000:  0200 000a ffff 0000 ffff 0c00 3c00 0000  ............<...
        0x0010:  0000 0000 0100 0080 3e9e 2900 0000 0000  ........>.).....
        0x0020:  0000 0000 ffff ffff ad00 996b 0600 0050  ...........k...P
        0x0030:  569c 6938 0000 0000 8e07 0000            V.i8........
2010-08-22 21:35:26.571797 IP valh4.lell.net.ssh > zz.domain.innetbcp.net.50570: P 800464396:800464448(52) ack 203316566 win 71
2010-08-22 21:35:26.571800 IP valh4.lell.net.ssh > zz.domain.innetbcp.net.50570: P 52:168(116) ack 1 win 71
2010-08-22 21:35:26.584865 IP valh5.lell.net.ssh > 11.154.12.255.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; BROADC

ดักจับ Packet เพื่อดูเฉพาะ IP Address เท่านั้นด้วยคำสั่ง tcpdump –n

               ในบางครั้งท่านอาจต้องการดูร่องรอยการบุกรุกเครือข่าย หรือต้องการดูว่ามีใครบ้างที่เข้ามาใช้งานเครือข่าย รวมทั้งโปรโตคอลที่ใช้

$ tcpdump -n -i eth0
15:01:35.170763 IP 10.0.19.121.52497 > 11.154.12.121.ssh: P 105:157(52) ack 18060 win 16549
15:01:35.170776 IP 11.154.12.121.ssh > 10.0.19.121.52497: P 23988:24136(148) ack 157 win 113
15:01:35.170894 IP 11.154.12.121.ssh > 10.0.19.121.52497: P 24136:24380(244) ack 157 win 113

ดักจับ Packet เฉพาะโปรโตคอลที่ต้องการ

               ท่านสามารถเลือกที่จะดักจับโปรโตคอลเฉพาะเจาะจงได้ เช่น fddi  tr  wlan  ip  arp  ip6  rarp  dcenet  tcp และ udp เป็นต้น ตัวอย่างต่อไปนี้เป็นการดักจับ Packet ที่ทำงานภายใต้โปรโตคอล arp ที่วิ่งผ่าน eth0 interface (LAN Card แผ่นที่ 1)

$ tcpdump -i eth0 arp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
19:41:52.809642 arp who-has valh5.lell.net tell valh9.lell.net
19:41:52.863689 arp who-has 11.154.12.1 tell valh6.lell.net
19:41:53.024769 arp who-has 11.154.12.1 tell valh7.lell.net

ดักจับการสื่อสารระหว่างคอมพิวเตอร์ 2 เครื่อง

               ท่านสามารถดักจับดูการสื่อสารระหว่างเครื่องคอมพิวเตอร์ ที่ใช้โปรโตคอล TCP

$tcpdump -w comm.pcap -i eth0 dst 16.181.170.246 and port 22
 

ดักจับ การไหลของ Packet บน Port เฉพาะเจาะจงโดยใช้ tcpdump port

หากท่านต้องการรู้เกี่ยวกับ Packet ที่ได้รับ ภายใต้การทำงานของ Port ต่างๆบนเครื่อง ท่านสามารถทำได้โดยใช้คำสั่ง ต่อไปนี้ 

$ tcpdump -i eth0 port 22
19:44:44.934459 IP valh4.lell.net.ssh > zz.domain.innetbcp.net.63897: P 18932:19096(164) ack 105 win 71
19:44:44.934533 IP valh4.lell.net.ssh > zz.domain.innetbcp.net.63897: P 19096:19260(164) ack 105 win 71
19:44:44.934612 IP valh4.lell.net.ssh > zz.domain.innetbcp.net.63897: P 19260:19424(16

3.   Nagios

               Nagios เป็นโซลูชั่น ที่ใช้เพื่อเฝ้าดูการทำงานของระบบต่างๆ โดยเป็นระบบ Open Source ภายใต้ Nagio ท่านสามารถรับรู้ถึงปัญหา Server ล่ม ด้วยข่าวสารแจ้งเตือนจากโปรแกรมนี้ โดยส่งมาที่  Sysadmin และหา Database เกิดล่ม ก็จะมีการส่งข่าวแจ้งอเตือนมาที่ผู้ดูแลระบบฐานข้อมูล  นอกจากนี้ ท่านยังสามารถจัดตั้งระบบการแจ้งเตือน และระดับของการยอมรับก่อนที่จะมีการแจ้งเตือน เช่น การทำงานของ CPU จะต้องไม่เกิน 75% หากเกินก็ให้แจ้งเตือน หรือปริมาณใช้งานเนื้อที่ของ Disk partition สูงเกินกว่า 80% เป็นต้น เพื่อให้ Sysadmin ดำเนินการเพิ่มเนื้อที่ของ Disk ด้วยวิธีการต่างๆ ก่อนที่จะเกิดปัญหา

ภาพที่ 2 แสดงหน้าต่างการทำงานของ Nagios

 

               นอกจากนี้ Nagios ยังมี user interface ที่ดูดี ที่จะช่วยให้ท่านสามารถเฝ้าดูระบบโครงสร้างของไอที ได้ง่าย ต่อไปนี้เป็นประสิทธิภาพการทำงานของ Nagios

  • สามารถตรวจสอบการทำงานของ Hardware ทุกชนิด
  • ใช้ได้ดีกับ Linux และ Windows Server
  • ใช้ได้ดีกับฐานข้อมูลต่างๆ เช่น Oracle  MySQL  PostgreSQL  เป็นต้น
  • Service ต่างๆที่ทำงานบน OS เช่น sendmail  nis  nfs  ldap เป็นต้น
  • Web Server
  • Application เฉพาะกิจของท่าน

4.   Iostat

               Iostat เป็นโปรแกรมที่สามารถรายงานสถิติการทำงานของ CPU  Disk I/O และ NFS หากท่านเรียกใช้คำสั่ง Iostat โดยไม่ใส่ Option จะมีการแสดงข่าวสารเกี่ยวกับปริมาณใช้งานของ CPU รวมทั้งสถิติการทำงานของ Disk I/O ซึ่งเกี่ยวข้องกับ partition ทั้งหมด ในระบบ ดังตัวอย่าง

$ iostat
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011
 
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.68    0.00    0.52    2.03    0.00   91.76
 
Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             194.72      1096.66      1598.70 2719068704 3963827344
sda1            178.20       773.45      1329.09 1917686794 3295354888
sda2             16.51       323.19       269.61  801326686  668472456
sdb             371.31       945.97      1073.33 2345452365 2661206408
sdb1            371.31       945.95      1073.33 2345396901 2661206408
sdc             408.03       207.05       972.42  513364213 2411023092
sdc1            408.03       207.03       972.42  513308749 2411023092

               อย่างไรก็ตาม ในการทำงานปกติ Iostat ยังสามารถแสดงข่าวสารเกี่ยวกับ I/O สำหรับ Disk ทั้งหมดในระบบ เพื่อที่แสดงสถิติการทำงานของอุปกรณ์โดยเฉพาะเจาะจง (เช่น /dev/sda) ให้ใช้ Option –p ดังตัวอย่าง

ภาพที่ 3 แสดงหน้าจอรายงานของ iostat

 

$ iostat -p sda
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011
 
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               5.68      0.00    0.52         2.03       0.00     91.76
 
Device:            tps       Blk_read/s   Blk_wrtn/s   Blk_read        Blk_wrtn
sda               194.69      1096.51      1598.48    2719069928    3963829584
sda2              336.38        27.17        54.00      67365064        133905080
sda1              821.89         0.69        243.53      1720833          603892838

ภาพที่ 4 แสดงหน้าจอของ Mpstat

 

5. Mpstat

               Mpstat เป็นโปรแกรมที่ใช้เพื่อรายงานสถิติการทำงานของ CPU ต่อไปนี้เป็นตัวอย่างการใช้งาน Mpstat

               Option –A มีไว้เพื่อแสดงข้อมูลข่าวสารทั้งหมด ซึ่งเทียบเท่ากับการใช้คำสั่ง mpstat –I ALL –u  -P ALL

               หากใช้ Option –p ALL ตัวโปรแกรมจะแสดง CPU แต่ละตัว (หรือ Core) พร้อมด้วยสถิติการทำงานออกมาให้เห็น

$ mpstat -P ALL
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011      _x86_64_        (4 CPU)
 
10:28:04 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
10:28:04 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.99
10:28:04 PM    0    0.01    0.00    0.01    0.01    0.00    0.00    0.00    0.00   99.98
10:28:04 PM    1    0.00    0.00    0.01    0.00    0.00    0.00    0.00    0.00   99.98
10:28:04 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
10:28:04 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

6. Vmstat

vmstat เป็น Utility โปรแกรมที่ถูกนำมาใช้เพื่อแสดงรายงานเกี่ยวกับสถิติการทำงานของ Virtual memory ต่อไปนี้เป็นบางตัวอย่างของคำสั่ง vmstat  โดยปกติ vmstat จะแสดงปริมาณใช้งานหน่วยความจำ (รวมทั้ง swap) ดังตัวอย่าง

$ vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free         buff  cache        si   so    bi    bo   in   cs  us  sy  id  wa  st
 0  0 305416 260688  29160 2356920    2    2     4     1     0    0   6   1   92  2    0
 

เพื่อที่จะรัน vmstat ทุกๆ 2 วินาที จำนวน 10 ครั้ง และหยุดทำงานหลังครบ 10 ครั้ง สามารถใช้คำสั่งดังนี้ 

$ vmstat 2 10
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b     swpd   free       buff      cache        si   so    bi    bo   in   cs   us   sy id    wa  st
 1  0      0       537144 182736  6789320    0    0     0     0    1    1     0    0  100   0   0
 0  0      0       37004   182736  6789320    0    0     0     0   50   32   0    0  100   0   0
..

ทั้ง iostat และ vmstat ต่างก็เป็นส่วนหนึ่งของ sar utility ดังนั้นท่านจะต้องติดตั้ง sysstat Package ให้เรียบร้อยเสียก่อน ที่ vmstat จะสามารถทำงานได้

7.   คำสั่ง ps

               Linux เป็นระบบปฏิบัติการแบบ Multitasking ดังนี้ จึงสามารถทำงานได้หลายชิ้นในเวลาเดียวกัน ท่านสามารถใช้คำสั่ง ps เพื่อตรวจสอบดุว่า ขณะนี้มี Process อะไรบ้างที่กำลังทำงานของเครื่องคอมพิวเตอร์ หรือระบบของท่าน

               นอกจากนี้ PS ยังสามารถให้ข้อมูลเกี่ยวกับ Process ซึ่งจะช่วยให้ท่านสามารถพิสูจน์ทราบถึงประสิทธิภาพการทำงานรวมทั้ง ข้อบกพร่องที่เกิดขึ้นในระบบ ต่อไปนี้เป็นตัวอย่างของคำสั่ง ps

               ท่านสามารถใช้ option เพื่อแสดง Process ที่เป็นของ User แต่ละคนได้ เมื่อท่านต้องการดู Process ของ User หลายๆคน ท่านสามารถคั่นชื่อด้วยเครื่องหมาย “ , “ ได้ ตัวอย่างต่อไปนี้เป็นการแสดง Process ที่มีอยู่ทั้งหมดของ User wwwrunในขณะนั้น หรือ postfix

$ ps -f -u wwwrun,postfix
UID               PID     PPID       C     STIME           TTY          TIME CMD
postfix           7457   7435       0     Mar09 ?        00:00:00 qmgr -l -t fifo -u
wwwrun        7495   7491        0     Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun    7496  7491  0 Mar09 ?   00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun    7497  7491  0 Mar09 ?   00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun    7498  7491  0 Mar09 ?   00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun    7499  7491  0 Mar09 ?   00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun   10078  7491  0 Mar09 ?  00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun   10082  7491  0 Mar09 ?  00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
postfix  15677  7435  0 22:23 ?      00:00:00 pickup -l -t fifo -u

ตัวอย่างข้างล่างนี้ เป็นการแสดง Process ID. และชุดคำสั่งที่ใช้ในลักษณะเรียงแบบลดหลั่นตามลำดับ ตัว option forest เป็น argument ที่ใช้จัดเรียงคำสั่ง ps ซึ่งจะแสดง ASCII ในลักษณะการแตกกิ่งก้านสาขาของต้นไม้ ในลักษณะนี้ จะทำให้ท่านสามารถ พิสูจน์แสดงว่าส่วนใดเป็น Parent Process และส่วนใดที่เป็น Child Process 

ภาพที่ 5 แสดงหน้าจอคำสั่ง ps

 

$ ps -e -o pid,args --forest
  468  \_ sshd: root@pts/7>
  514  |   \_ -bash
17484  \_ sshd: root@pts/11>
17513  |   \_ -bash
24004  |       \_ vi ./790310__11117/journal
15513  \_ sshd: root@pts/1>
15522  |   \_ -bash
 4280  \_ sshd: root@pts/5>
 4302  |   \_ -bash

8. Free

               Free เป็นคำสั่งที่ใช้แสดงข้อมูลข่าวสารเกี่ยวกับ หน่วยความจำ RAM รวมทั้ง Swap Memory ภายในระบบของท่าน

               จากตัวอย่างต่อไปนี้ จำนวนหน่วยความจำในระบบของท่านคือ 1 GB และค่าที่แสดงผลในระบบของท่านคิดเป็นหน่วย KB

# free
       total   used    free   shared  buffers  cached
Mem: 1034624   1006696 27928  0       174136   615892
-/+ buffers/cache:     216668      817956
Swap:    2031608       0    2031608

               ต่อไปนี้เป็นการแสดงจำนวนของหน่วยความจำทั้งหมดในระบบ รวมทั้งหน่วยความจำ RAM และ Swap

  • Option m มีไว้เพื่อแสดงหน่วยความจำคิดเป็น MB
  • Option t ใช้แสดงทุกบรรทัดที่มีอยู่ทั้งหมด ซึ่งเป็นผลรวมของหน่วยความจำ RAM และ ค่า Swap
  • Option o มีไว้เพื่อซ่อนเร้น buffer/cache จากตัวอย่างข้างต้น

# free -mto
                  total       used        free     shared       buffers     cached
Mem:          1010        983         27              0         170           601
Swap:          1983         0          1983
Total:          2994        983        2011

ภาพที่ 6 แสดงหน้าจอ หลังจากใช้คำสั่ง Free

9.   Top

               คำสั่ง Top มีไว้เพื่อแสดง Process ที่กำลังทำงานอยู่ทั้งหมดในระบบ โดยเรียงตัวเป็นคอลัมน์ และแสดงข้อมูลแบบเรียลไทม์             

               ท่านสามารถ Kill Process โดยที่ไม่ต้องออกจาก top ก็ได้ เมื่อท่านเลือก Process ที่ต้องการจะ kill แล้ว เพียงกดแป้น “k” ระบบจะถามท่านว่า Process ID. และ Signal ที่จะจัดส่งออกไป หากท่านมีสิทธิ์ที่จะ Kill Process แล้ว โปรแกรม top จะยอมให้ท่าน kill ได้สำเร็จ

PID to kill: 1309
Kill PID 1309 with signal [15]:
  PID USER      PR  NI  VIRT    RES  SHR S %CPU %MEM    TIME+  COMMAND
 1309 geek      23   0   2483m 1.7g  27m S    0      21.8     45:31.32 gagent
 1882 geek      25   0   2485m 1.7g  26m S    0      21.7     22:38.97 gagent
 5136 root       16   0   38040  14m 9836 S    0      0.2       0:00.39  nautilus

               ท่านสามารถใช้ top –u เพื่อแสดง Process ของ User โดยเฉพาะเจาะจง ดังตัวอย่าง

 
$ top -u geek

ในขณะที่คำสั่ง top กำลังถูกใช้งาน ให้ท่านกดแป้น “u” ซึ่งโปรแกรมจะถามชื่อ User

Which user (blank for all): geek
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1309 geek   23   0 2483m 1.7g  27m S    0 21.8  45:31.32 gagent
 1882 geek   25   0 2485m 1.7g  26m S    0 21.7  22:38.97 gagent

ภาพที่ 7 แสดงหน้าจอจากคำสั่ง top

 

10. Pmap

               คำสั่ง pmap มีไว้เพื่อแสดง memory map ของแต่ละ Process ท่านจะต้องใส่ Process ID เป็น argument หลังคำสั่ง pmap

               ต่อไปนี้เป็นคำสั่งที่ใช้เพื่อแสดง Memory map ของ bash shell ที่ใช้ในปัจจุบัน จากตัวอย่างนี้ เราใช้ Process ID. 5732 สำหรับ bash shell

$ pmap 5732
5732:   -bash
00393000    104K r-x--  /lib/ld-2.5.so
003b1000   1272K r-x--  /lib/libc-2.5.so
00520000      8K r-x--  /lib/libdl-2.5.so
0053f000     12K r-x--  /lib/libtermcap.so.2.0.8
0084d000     76K r-x--  /lib/libnsl-2.5.so
00c57000     32K r-x--  /lib/libnss_nis-2.5.so
00c8d000     36K r-x--  /lib/libnss_files-2.5.so
b7d6c000   2048K r----  /usr/lib/locale/locale-archive
bfd10000     84K rw---    [ stack ]
 total     4796K

ต่อไปนี้ เป็นคำสั่ง pmap -x ที่จะช่วยเพิ่มการแสดงของข้อมูลเกี่ยวกับ Memory Map ในระบบ 

 
$  pmap -x 5732
5732:   -bash
Address   Kbytes            RSS    Anon      Locked     Mode       Mapping
00393000     104             -       -              -              r-x--         ld-2.5.so
003b1000    1272            -       -              -              r-x--         libc-2.5.so
00520000       8              -       -              -              r-x--         libdl-2.5.so
0053f000      12              -       -              -              r-x--         libtermcap.so.2.0.8
0084d000      76              -       -              -              r-x--         libnsl-2.5.so
00c57000      32             -       -               -              r-x--         libnss_nis-2.5.so
00c8d000      36             -       -               -              r-x--         libnss_files-2.5.so
b7d6c000    2048            -       -              -              r----         locale-archive
bfd10000      84              -       -              -              rw---        [ stack ]
-------- ------- ------- ------- -------
total kB    4796       -       -       -

เพื่อที่จะแสดงผลเกี่ยวกับข่าวสารของอุปกรณ์ต่างๆ ให้ใช้ ‘pmap -d pid’

ภาพที่ 8 แสดงตัวอย่างหน้าจอคำสั่ง pmap

 

11. Netstat

               Netstat เป็นคำสั่งที่เรานำมาใช้เพื่อแสดงข้อมูลข่าวสารเกี่ยวกับการทำงานบนเครือข่าย เช่น การเชื่อมต่อบนเครือข่าย ตารางเราติ้ง สถิติการเชื่อมต่อ Interface การเชื่อมต่อแบบ NAT รวมทั้งสมาชิกของระบบ Multicast เป็นต้น ต่อไปนี้เป็นการใช้คำสั่ง netstat

ภาพที่ 9 แสดงหน้าจอคำสั่ง netstat –an

 

ภาพที่ 10 แสดงหน้าจอ netstat –b 2

 

               ภาพที่ 10 แสดงการใช้ netstat –b 2 เพื่อแสดงให้เห็น Application ที่เปิดใช้งานในเครื่องรวมทั้งหมายเลข Port ที่เกี่ยวข้อง คำสั่ง netstat –a | more มีไว้เพื่อแสดงรายการของ Port ที่เปิดใช้อยู่ในขณะนี้ทั้งหมด

# netstat -a | more
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 localhost:30037         *:*                     LISTEN
udp        0      0 *:bootpc                *:*                                
 
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     6135     /tmp/.X11-unix/X0
unix  2      [ ACC ]     STREAM     LISTENING     5140     /var/run/acpid.socket

ต่อไปนี้เป็นคำสั่ง netstat ที่ใช้เพื่อค้นหาดูว่า Port ใดที่โปรแกรมหรือ Application กำลังถูกใช้งานในขณะนั้น 

# netstat -ap | grep ssh
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        1      0 dev-db:ssh           101.174.100.22:39213        CLOSE_WAIT  -
tcp        1      0 dev-db:ssh           101.174.100.22:57643        CLOSE_WAIT  -

ใช้คำสั่ง netstat เพื่อค้นหาว่า Process ใดกำลังใช้งานหมายเลข Port อะไร 

# netstat -an | grep ':80'

12.   IPTraf

               IPTraf เป็น Software ที่มีไว้สำหรับเฝ้าดูการทำงานของระบบเครือข่าย ต่อไปนี้เป็นคุณลักษณะการทำงานของ IPTraf

ภาพที่ 11 ใช้ IPTraf เพื่อตรวจสอบดู Packet ที่ทำงานภายใต้ปรโตคอลต่างๆ

 

ภาพที่ 12ใช้ IPTraf เพื่อตรวจสอบการทำงานของ Host บนเครือข่าย

 

  • เป็น Utility ที่ทำงานบนพื้นฐานของ Text
  • ใช้แสดง IP traffic บนเครือข่าย โดยสามารถแสดงสถานะ (Flag) จำนวน packet และขนาดของไบต์ รวมทั้งสามารถตรวจสอบ Packet ที่ทำงานภายใต้ โปรโตคอลต่างๆ เช่น IP TCP UDP ICMP เป็นต้น
  • สามารถแสดงสถิติการทำงานของ Interface (รวมทั้ง IP  TCP  UDP  ICMP โดยสามารถแสดงขนาดคิดเป็นไบต์ รวมทั้ง Checksum Error เป็นต้น)
  • สามารถตรวจสอบพบการทำงานของ Host คอมพิวเตอร์บนเครือข่ายโดยอัตโนมัติ
  • สามารถติดตั้ง Filter เพื่อคัดกรองโปรโตคอล หรือ Packet ที่ต้องการจะตรวจสอบได้
  • มีระบบจัดเก็บ log
  • สนับสนุนการทำงานของ Ethernet  FDDI  ISDN  SLIP  PPP และ loopback
  • สามารถรันในโหมด Full Screen

13. Strace

Strace ถูกนำมาใช้เพื่อ debugging และตรวจสอบหาจุดเสียการทำงานของ Linux โดยจะมีการแสดง System call ที่ถูกเรียกใช้โดย Process ต่างๆ รวมทั้ง Signal ที่ที่ได้รับมาโดย Process 

Strace สามารถเฝ้าดูการทำงานของ System Call และ Signal ของ Program เฉพาะอย่างได้ และมีประโยชน์ในกรณีที่ท่านต้องการจะตรวจสอบดูปัญหาการใช้งานของโปรแกรม โดยไม่มี Source Code อยู่ในมือ และ Strace จะทำให้ท่านสามารถ เอ็กซิคิ้ว คำสั่งในโปรแกรมได้ตามลำดับตั้งแต่ต้นจนจบ

$ strace ls
execve("/bin/ls", ["ls"], [/* 21 vars */]) = 0
brk(0)                                  = 0x8c31000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb78c7000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=65354, ...}) = 0

เพื่อที่จะแสดงเฉพาะ System Call เท่านั้น ท่านสามารถใช้คำสั่ง strace -e option ดังตัวอย่าง

$ strace -e open ls
open("/etc/ld.so.cache", O_RDONLY)      = 3
open("/lib/libselinux.so.1", O_RDONLY)  = 3
open("/lib/librt.so.1", O_RDONLY)       = 3
open("/lib/libacl.so.1", O_RDONLY)      = 3
open("/lib/libc.so.6", O_RDONLY)        = 3
open("/lib/libdl.so.2", O_RDONLY)       = 3
open("/lib/libpthread.so.0", O_RDONLY)  = 3
open("/lib/libattr.so.1", O_RDONLY)     = 3
open("/proc/filesystems", O_RDONLY|O_LARGEFILE) = 3
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3
open(".", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3

14. Lsof

Lsof  มาจากคำว่า ls open files ซึ่งจะแสดงรายการของ File ที่กำลังเปิดอยู่ในระบบในขณะนั้น โดย File ที่เปิดอยู่นี้ครอบคลุมไปถึง การเชื่อมต่อเครือข่าย อุปกรณ์ และ Directory และค่าแสดงผลที่ปรากฏบนหน้าจอ จะประกอบด้วยคอลัมน์ต่างๆดังนี้   

COMMAND process name.

PID process ID

USER Username

FD file descriptor

TYPE node type of the file

DEVICE device number

SIZE file size

NODE node number

NAME full path of the file name.

เพื่อที่จะแสดงดูรายการของ File ที่กำลังเปิดอยู่ ให้รันคำสั่ง lsof โดยไม่ต้องใช้พารามิเตอร์ใดๆ ดังตัวอย่างต่อไปนี้ 

# lsof | more
COMMAND     PID       USER   FD       TYPE     DEVICE  SIZE       NODE    NAME
Init                 1       root     cwd        DIR        8,1      4096          2 /
init                  1       root     rtd         DIR        8,1      4096          2 /
init                  1       root     txt         REG        8,1     32684     983101    /sbin/init
init                  1       root     mem      REG        8,1    106397     166798  /lib/ld-2.3.4.so
init                  1       root     mem      REG        8,1   1454802     166799  /lib/tls/libc-2.3.4.so
init                 1       root     mem      REG        8,1     53736     163964  /lib/libsepol.so.1
init                 1       root     mem      REG        8,1     56328     166811  /lib/libselinux.so.1
init                 1       root     10u        FIFO       0,13                  972     /dev/initctl
migration        2       root     cwd        DIR        8,1      4096          2     /
skipped..

เพื่อที่ต้องการตรวจดู User เฉพาะเจาะจงที่กำลังเปิดดู Files ท่านสามารถใช้ lsof –u เป็น option ที่ใช้เรียกดู Files ที่กำลังเปิดอยู่

# lsof -u  somchai 
vi      7190    somchai  txt    REG        8,1   474608   475196 /bin/vi
sshd  7163    somchai  3u    IPv6     15088263         TCP dev-db:ssh->abc-12-12-12-12.

และหากต้องการดู File เฉพาะของ User บางคน ท่านสามารถใช้คำสั่ง ดังนี้ จากตัวอย่างนี้ เป็นการแสดง User ทั้งหมดที่มีอยู่ในปัจจุบันด้วย option 

# lsof /bin/vi
COMMAND  PID  USER     FD   TYPE  DEVICE   SIZE               NODE NAME
vi              7258  root      txt    REG    8,1       474608 475196   /bin/vi
vi              7300  ramesh txt    REG    8,1       474608 475196   /bin/vi

15. Ntop

Ntop มีความคล้ายคลึงกับ top แต่เน้นที่ network traffic โดย ntop เป็นโปรแกรม monitor ดูการทำงานของ Traffic บนเครือข่าย ท่านสามารถเข้าไปใช้งาน ntop ผ่านทาง Browser เพื่อที่จะให้ได้ข่าวสารเกี่ยวกับ Traffic และสถานะ การทำงาน รวมทั้งปริมาณใช้งานของเครือข่ายได้  ntop มีขีดความสามารถหลักๆ ดังนี้ 

  • แสดงสถานะ การทำงานของโปรโตคอลและปริมาณ traffic ของมัน
  • สามารถจัดเรียงค่าแสดงผล
  • สามารถแสดงสถิติและปริมาณของ traffic บนเครือข่ายได้
  • มีขีดความสามารถที่จะจัดเก็บสถิติของ traffic ได้โดยใช้ RRD
  • สามารถพิสูจน์แสดง User และพิสูจน์ทราบถึงการใช้ OS ของแต่ละ Host ได้
  • สามารถแสดงและวิเคราะห์ IT Traffic ได้
  • สามารถทำงานเป็น NetFlow/sFlow เพื่อรวบรวมข้อมูลให้กับ Router และ Switches ได้
  • สามารถแสดงสถิติการทำงานของเครือข่ายคล้ายกับ RMON
  • สามารถทำงานบนเครื่อง Linux MacOS และ Windows ได้  

ภาพที่ 13 แสดงหน้าจอของ ntop

 

16.  GkrellM

               GkrellM มาจากคำว่า GNU krell Monitors หรือ GTK Krell Meters เป็นโปรแกรมประเภท GTK+ Toolkit เพื่อใช้ Monitor ดู ทรัพยากรของระบบได้หลายแบบ เช่นเดียวกับโปรแกรมประเภท Monitoring อื่นๆ GkrellM สามารถ Monitor ดูการทำงานของ CPU หน่วยความจำ ระบบ File ปริมาณการใช้งานเครือข่าย และหากมีการเพิ่ม plug-in เข้าไปก็จะสามารถ Monitor ดู Application ภายนอกได้  

ภาพที่ 14 แสดงหน้าจอ GKrellM

 

17.  w กับ uptime

               ขณะที่ท่านกำลังเฝ้ามองดูประสิทธิภาพการทำงานของระบบ คำสั่ง w จะช่วยให้ท่านรู้ว่าใครที่กำลัง Logon เข้ามาที่ระบบ

$ w
09:35:06 up 21 days, 23:28,  2 users,  load average: 0.00, 0.00, 0.00
USER      TTY      FROM            LOGIN@   IDLE    JCPU   PCPU WHAT
root        tty1     :0                   24Oct11   21days 1:05   1:05 /usr/bin/Xorg :0 -nr -verbose
ramesh   pts/0    192.168.1.10  Mon14      0.00s   15.55s 0.26s sshd: localuser [priv]
john       pts/0    192.168.1.11  Mon07      0.00s   19.05s 0.20s sshd: localuser [priv]
jason      pts/0    192.168.1.12  Mon07      0.00s   21.15s 0.16s sshd: localuser [priv]

สำหรับรายละเอียดของ User ที่ Logon เข้ามา จะมีการแสดงรายละเอียดดังนี้

  • ชื่อของผู้เข้ามาใช้งาน
  • ข้อมูลเกี่ยวกับ terminal หรือ tty
  • IP Address ของเครื่องที่ logon เข้ามา
  • ช่วงเวลา Logon เข้ามาที่ระบบ
  • นานเท่าใดที่ User นั้น Logon เข้ามา
  • คำสั่งของ Process ในปัจจุบันที่ User กำลังใช้งานอยู่
  • JCPU และ PCUP

บรรทัดที่ 1 ที่เป็น Output ของคำสั่ง w จะเห็นว่ามีความคล้ายคลึงกับ uptime โดยมีการแสดง

ข้อมูลดังต่อไปนี้

  • เวลาปัจจุบัน
  • นานเท่าใดที่ระบบเปิดทำงาน
  • จำนวนของ User ทั้งหมดที่กำลัง logon เข้ามาในระบบ
  • ปริมาณ load ในช่วงเวลา 1  5 และ 15 นาทีที่ผ่านมา

หากท่านต้องการแสดงข้อมูลเกี่ยวกับ Uptime เท่านั้น ใช้คำสั่ง uptime

$ uptime
 09:35:02 up 106 days, 28 min,  2 users,  load average: 0.08, 0.11, 0.05

โปรดสังเกตว่า ทั้งคำสั่ง w และ uptime จะได้รับข้อมูลข่าวสารมาจาก  /var/run/utmp  

18. /proc

               /proc เป็นระบบ Virtual File ตัวอย่างเช่น หากท่านใช้ ls-l /proc/stat ท่านจะเห็นว่า มีขนาด 0 ไบต์ แต่หาก ท่านใช้ “cat /proc/stat” ท่านจะเห็นเนื้อหาภายในแฟ้มข้อมูลนี้

               เมื่อท่านใช้คำสั่ง ls-l /proc ท่านจะเห็น Directory เป็นจำนวนมากเป็นตัวเลข เกี่ยวกับ process ID.

ภาพที่ 15 แสดงหน้าจอ จากคำสั่ง uptime

 

19. KDE System guard

               บางทีเราเรียกว่า KSysGuard บน Linux Desktop ที่รัน KDE ท่านสามารถใช้เครื่องมือนี้เพื่อเฝ้าดูทรัพยากรของระบบ นอกเหนือจากการเฝ้าดูระบบภายในแล้ว ยังสามารถดูระบบที่อยู่ไกลออกไปได้ด้วย

               ถ้าหากว่าท่านรัน KDE บน Desktop ท่านสามารถเรียกดูได้ดังนี้ ไปที่ Application - > system  Monitor - >  ท่านสามารถรัน kSysGuard ได้จากที่นี่ นอกจากนี้ท่านยังสามารถเรียกจาก Command line ก็ได้เช่นกัน

เครื่องมือนี้จะแสดงข่าวสารบน 2 Tab

  • Process table – แสดง Process ที่กำลังทำงานอยู่ โดยท่านสามารถจัดเรียง ดำเนินการ kill หรือเปลี่ยนลำดับความสำคัญ ของ Process จากที่นี่
  • System Load – สามารถแสดงผลการทำงานของ CPU หน่วยความจำ และปริมาณการใช้งานของระบบเครือข่าย ในรูปแบบของกราฟ โดยท่านสามารถปรับแต่งคุณลักาณะของกราฟ โดยการ คลิ๊กขวาบนกราฟ

ภาพที่ 16 แสดงลักษณะหน้าจอของ KDE System Guard

 

20.  GNOME System Monitor

               บน Linux ที่รัน GNOME ท่านสามารถใช้เครื่องมือนี้เพื่อ Monitor หรือเฝ้าดูการทำงานของ Process รวมทั้งทรัพยากรของระบบ ตลอดจนระบบ Files ต่างๆได้ โดยนอกเหนือจากการเฝ้ามองแล้ว ท่านยังสามารถใช้ Tool นี้เพื่อ Kill Process รวมทั้งเปลี่ยนลำดับความสำคัญของ Process ได้อีกด้วย

               หากท่านกำลังรันอยู่บน GNOME ท่านสามารถเรียกโปรแกรมได้ดังนี้  ไปที่ System - > Administration - > System Monitor ซึ่งจะทำให้มีการเรียกโปรแกรมนี้ออกมาได้ นอกจากนี้ท่านยังสามารถใช้คำสั่ง gnome-system-monitor จาก Command Line ได้

ภาพที่ 17 แสดงลักษณะหน้าจอของ Conky

 

21. Conky

               Conky เป็นเครื่องมือที่ใช้เพื่อเฝ้าดูการทำงานของระบบ หรือ X. โดย Conky สามารถแสดงข้อมูลข่าวสารในรูปแบบ User Interface โดยใช้วิธีที่เราเรียกว่า Objects ซึ่งโดยดีฟอลด์ มี Object อยู่ 250 Object ซึ่งมากับ Conky โดยจะมีการแสดงข้อมูลข่าวสารมากมาย เกี่ยวกับ CPU หน่วยความจำ  ระบบเครือข่าย ระบบ Disk เป็นต้น โปรแกรมนี้สนับสนุน IMAP  POP3 และ เครื่องเล่น Audio ต่างๆ หลายรายการ

               ท่านยังสามารถเฝ้าดูและแสดงผลเกี่ยวกับ Application ที่อยู่ภายนอกได้โดยการสร้าง Scripts สำหรับ Object และข่าวสารที่แสดงออกมาโดย Conky มีรูปแบบหลายอย่าง เช่น Text หรือ Graphics หรือ Progress bar เป็นต้น  

22. Cacti

               Cacti เป็น User Interface Front –End ทำงานบนพื้นฐานของ PHP ออกแบบมาสำหรับ RRDTool โดย Cacti สามารถจัดเก็บข้อมูล ที่ต้องการเพื่อสร้างกราฟในฐานข้อมูล MySQL

               ต่อไปนี้เป็นคุณลักษณะการทำงานของ Cacti

  • สามารถรวบรวมข้อมูลข่าวสารและจัดเก็บเข้าไปในฐานข้อมูล SQL
  • มีขีดความสามารถในการแสดงกราฟที่หลากหลาย
  • สามารถรวบรวมข่าวสารจากระบบภายใน และระบบที่อยู่ห่างไกลออกไป
  • ผู้ใช้งานสามารถกำหนด Scripts ได้ด้วยตัวท่านเอง
  • สนับสนุน SNMP เพื่อรวบรวมข่าวสารการทำงานของอุปกรณ์และระบบ
  • มีกราฟ Template ที่มีความยืดหยุ่นสูง
  • สามารถสร้างผู้มีสิทธิ์เข้าไปใช้ Front End ได้

ภาพที่ 18 แสดงลักษณะหน้าจอของ Cacti

 

23. Vnstat

               เป็น Utility ที่ทำงานบน Command line โดยสามารถแสดงและจัดเก็บ Traffic ของเครือข่าย ของ Interface บนระบบของท่าน ซึ่งขึ้นอยู่กับข้อมูลสถิติของเครือข่ายที่ Kernel เป็นผู้จัดให้ ดังนั้น Vnstat ไม่จำเป็นต้องเพิ่มภาระการทำงานให้กับระบบของท่านขณะที่กำลังเฝ้าดูการทำงานของระบบ

               หากท่านใช้คำสั่ง vnstat โดยไม่ใส่ Argument เข้าไป จะทำให้มีการแสดงข่าวสารแบบสรุปผล ดังนี้

  • ช่วงเวลาสุดท้ายที่ ฐานข้อมูล vnstat อยู่ใน /var/lib/vnstat/ ได้รับการ update
  • จากที่เริ่มรวบรวมและจัดเก็บสถิติการทำงานของ Interface
  • ข้อมูลสถิติการทำงานของระบบเครือข่าย (จำนวนของไบต์ที่จัดส่ง จำนวนของไบต์ที่ได้รับเข้ามา) ในช่วงเวลา 2 เดือน หรือ 2 วันที่ผ่านมา

# vnstat
Database updated: Sat Oct 15 11:54:00 2011
 
   eth0 since 10/01/11
 
          rx:  12.89 MiB      tx:  6.94 MiB      total:  19.82 MiB
 
   monthly
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
       Sep '11     12.90 MiB |    6.90 MiB |   19.81 MiB |    0.14 kbit/s
       Oct '11     12.89 MiB |    6.94 MiB |   19.82 MiB |    0.15 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated        29 MiB |      14 MiB |      43 MiB |
 
   daily
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
     yesterday      4.30 MiB |    2.42 MiB |    6.72 MiB |    0.64 kbit/s
         today      2.03 MiB |    1.07 MiB |    3.10 MiB |    0.59 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated         4 MiB |       2 MiB |       6 MiB |

ใช้  “vnstat -t” หรือ “vnstat –top10 เพื่อแสดงผล traffic ในรอบ 10 วัน

$ vnstat --top10
 
 eth0  /  top 10
 
    #      day          rx      |     tx      |    total    |   avg. rate
   -----------------------------+-------------+-------------+---------------
    1   10/12/11       4.30 MiB |    2.42 MiB |    6.72 MiB |    0.64 kbit/s
    2   10/11/11       4.07 MiB |    2.17 MiB |    6.24 MiB |    0.59 kbit/s
    3   10/10/11       2.48 MiB |    1.28 MiB |    3.76 MiB |    0.36 kbit/s
    ....
   -----------------------------+-------------+-------------+---------------

24.   Socket Statistics – SS

               Ss มาจากคำว่า socket statistics โดยจะมีการแสดงข้อมูลข่าวสารที่คล้ายคลึงกับคำสั่ง netstat เพื่อที่จะแสดง Sockets ที่เปิดรับฟังอยู่ (เปิดรับการร้องขอเข้ามาใช้บริการ) สามารถใช้คำสั่ง ss –l ดังนี้

$ ss -l
Recv-Q Send-Q   Local Address:Port     Peer Address:Port
0      100      :::8009                :::*
0      128      :::sunrpc              :::*
0      100      :::webcache            :::*
0      128      :::ssh                 :::*
0      64       :::nrpe                :::*

ต่อไปนี้เป็นคำสั่งที่ใช้แสดงการเชื่อมต่อที่มีการจัดตั้ง (Established) เรียบร้อยแล้ว

$ ss -o state established
Recv-Q Send-Q   Local Address:Port   Peer Address:Port
0      52       192.168.1.10:ssh   192.168.2.11:55969    timer:(on,414ms,0)

ต่อไปนี้ เป็นการแสดงสถิติการทำงานในลักษณะ สรุป โดยมีการแสดงผลรวมทั้งหมดของ Socket ในลักษณะของชนิดต่างๆ  

$ ss -s
Total: 688 (kernel 721)
TCP:   16 (estab 1, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 11
 
Transport Total     IP        IPv6
*              721       -         -
RAW          0         0         0
UDP          13        10        3
TCP           16        7         9
INET          29       17       12
FRAG         0         0         0

Linux เป็นระบบปฏิบัติการที่มีเครื่องมือตรวจสอบการทำงานของระบบไม่แพ้ Windows แต่มีความเสถียรมาก เหมาะสำหรับท่านที่ต้องการตรวจสอบประสิทธิภาพการทำงานของระบบ

Read 13767 times Last modified on วันศุกร์, 21 เมษายน 2560 08:36
ChalermPun

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nos exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum.

Leave a comment

Make sure you enter all the required information, indicated by an asterisk (*). HTML code is not allowed.