12個 Linux 性能監控和調試工具

      網友投稿 1578 2025-04-01

      我編譯了 12 個性能監控和調試工具,里面一定有適合您特定調試和監視場景的工具。

      1.?SAR

      使用 sar 實用程序可以做兩件事:1) 監控系統實時性能(CPU、內存、I/O 等) 2) 持續在后臺收集性能數據并分析歷史數據以識別瓶頸。

      Sar 是 sysstat 包的一部分。以下是您可以使用 sar 實用程序執行的一些操作。

      集體 CPU 使用率

      單個 CPU 統計信息

      已使用和可用的內存

      已使用和可用的交換空間

      系統的整體 I/O 活動

      單個設備 I/O 活動

      上下文切換統計

      運行隊列并加載平均數據

      網絡統計

      報告特定時間的sar數據

      以下 sar 命令將顯示系統 CPU 統計信息 3 次(間隔 1 秒)。

      以下“sar -b”命令報告 I/O 統計信息。“1 3”表示每1秒執行一次sar -b,共執行3次。

      $ 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 是一個網絡數據包分析器。使用 tcpdump 您可以捕獲數據包并分析它是否存在任何性能瓶頸。

      以下 tcpdump 命令示例以 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,您可以根據幾個自定義條件捕獲數據包。例如,捕獲流經特定端口的數據包,捕獲兩個特定主機之間的 tcp 通信,捕獲屬于特定協議類型的數據包等。

      3.?Nagios

      Nagios 是一個開源監控解決方案,可以監控 IT 基礎架構中的幾乎所有內容。例如,當服務器宕機時,它可以向您的系統管理員團隊發送通知,當數據庫宕機時,它可以尋呼您的 DBA 團隊,當 Web 服務器宕機時,它可以通知相應的團隊。

      您還可以為各種服務設置警告和嚴重閾值級別,以幫助您主動解決問題。例如,當磁盤分區已滿 80% 時,它可以通知系統管理員團隊,這將為系統管理員團隊提供足夠的時間在問題變得嚴重之前添加更多空間。

      12個 Linux 性能監控和調試工具

      Nagios 還具有非常好的用戶界面,您可以從中監控整個 IT 基礎架構的運行狀況。

      以下是您可以使用 Nagios 監控的一些內容:

      任何硬件(服務器、交換機、路由器等)

      Linux 服務器和 Windows 服務器

      數據庫(Oracle、MySQL、PostgreSQL 等)

      在您的操作系統上運行的各種服務(sendmail、nis、nfs、ldap 等)

      網絡服務器

      您的自定義應用程序

      等等

      4.Iostat

      iostat 報告 CPU、磁盤 I/O 和 NFS 統計信息。以下是一些 iostat 命令示例。

      不帶任何參數的 Iostat 顯示有關 CPU 使用率的信息,以及有關系統上所有分區的 I/O 統計信息,如下所示。

      $ 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 數據。要查看特定設備(例如 /dev/sda)的統計信息,請使用選項 -p,如下所示。

      $ 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

      5.mpstat

      mpstat 報告處理器統計信息。以下是一些 mpstat 命令示例。

      選項-A,顯示mpstat命令可以顯示的所有信息,如下圖。這實際上等同于“mpstat -I ALL -u -P ALL”命令。

      $ mpstat -A Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 _x86_64_ (4 CPU) 10:26:34 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 10:26:34 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.99 10:26:34 PM 0 0.01 0.00 0.01 0.01 0.00 0.00 0.00 0.00 99.98 10:26:34 PM 1 0.00 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.98 10:26:34 PM 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 10:26:34 PM 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 10:26:34 PM CPU intr/s 10:26:34 PM all 36.51 10:26:34 PM 0 0.00 10:26:34 PM 1 0.00 10:26:34 PM 2 0.04 10:26:34 PM 3 0.00 10:26:34 PM CPU 0/s 1/s 8/s 9/s 12/s 14/s 15/s 16/s 19/s 20/s 21/s 33/s NMI/s LOC/s SPU/s PMI/s PND/s RES/s CAL/s TLB/s TRM/s THR/s MCE/s MCP/s ERR/s MIS/s 10:26:34 PM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 7.47 0.00 0.00 0.00 0.00 0.02 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:26:34 PM 1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 4.90 0.00 0.00 0.00 0.00 0.03 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:26:34 PM 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.04 0.00 0.00 0.00 0.00 0.00 3.32 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:26:34 PM 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.

      mpstat 選項 -P ALL,顯示所有單個 CPU(或核心)及其統計信息,如下所示。

      $ 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 報告虛擬內存統計信息。以下是一些 vmstat 命令示例。

      vmstat 默認會顯示內存使用情況(包括交換),如下所示。

      $ 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 To execute vmstat every 2 seconds for 10 times, do the following. After executing 10 times, it will stop automatically. $ 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 537004 182736 6789320 0 0 0 0 50 32 0 0 100 0 0

      iostat 和 vmstat 是 sar 實用程序的一部分。您應該安裝 sysstat 包以使 iostat 和 vmstat 正常工作。

      7. PS 命令

      進程是程序的運行實例。Linux 是一種多任務操作系統,這意味著可以同時激活多個進程。使用 ps 命令找出系統上正在運行的進程。

      ps 命令還為您提供有關正在運行的進程的許多附加信息,這將幫助您識別系統上的任何性能瓶頸。

      以下是幾個 ps 命令示例。

      使用 -u 選項顯示屬于特定用戶名的進程。如果您有多個用戶名,請使用逗號分隔它們。下面的示例顯示了用戶 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

      下面的示例以層次結構顯示進程 ID 和命令。–forest 是 ps 命令的一個參數,它顯示進程樹的 ASCII 藝術。從這棵樹中,我們可以識別出哪個是父進程,哪個是它以遞歸方式分叉的子進程。

      $ 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) 和交換內存的信息。

      在下面的示例中,此系統上的總物理內存為 1GB。下面顯示的值以 KB 為單位。

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

      以下示例將顯示系統上的總內存,包括 RAM 和交換。

      在以下命令中:

      選項 m 以 MB 為單位顯示值

      選項 t 顯示“Total”行,它是物理和交換內存值的總和

      選項 o 是從上面的示例中隱藏緩沖區/緩存行。

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

      9. top

      top 命令按某些列排序顯示系統中所有正在運行的進程。這會實時顯示信息。

      您可以在不從頂部退出的情況下終止進程。一旦你找到了一個需要被殺死的進程,按下“k”,它會詢問進程 ID,并發送信號。如果您有權殺死該特定 PID,它將被成功殺死。

      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 僅在 top 命令輸出中顯示特定用戶進程。

      $ top -u geek

      在運行 unix top 命令時,按 u 將詢問用戶名,如下所示。

      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

      10.?Pmap

      pmap 命令顯示給定進程的內存映射。您需要將 pid 作為參數傳遞給 pmap 命令。

      以下示例顯示當前 bash shell 的內存映射。在本例中,5732 是 bash shell 的 PID。

      $ 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 提供了一些關于內存映射的附加信息。

      $ 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 - - -

      要顯示進程映射的設備信息,請使用“pamp -d pid”。

      11.Netstat

      Netstat 命令顯示各種網絡相關信息,例如網絡連接、路由表、接口統計信息、偽裝連接、多播成員資格等,

      以下是一些 netstat 命令示例。

      使用 netstat -a 列出所有端口(監聽和非監聽),如下所示。

      # 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 命令找出程序在哪個端口上運行。

      # 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 命令找出哪個進程正在使用特定端口。

      # netstat -an | grep ':80'

      12.IPTraf

      IPTraf 是一個 IP 網絡監控軟件。以下是 IPTraf 的一些主要功能:

      它是一個基于控制臺(基于文本)的實用程序。

      這將顯示通過您的網絡的 IP 流量。這將顯示 TCP 標志、數據包和字節計數、ICMP、OSPF 數據包類型等。

      顯示擴展接口統計信息(包括 IP、TCP、UDP、ICMP、數據包大小和計數、校驗和錯誤等)

      LAN 模塊自動發現主機并顯示它們的活動

      協議顯示過濾器以查看選擇性協議流量

      高級日志記錄功能

      除了以太網接口,它還支持 FDDI、ISDN、SLIP、PPP 和環回

      您還可以在全屏模式下運行該實用程序。這也有一個基于文本的菜單。

      Linux 任務調度

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:現代通信網絡技術叢書 5G NR標準:下一代無線通信技術》—2.4 3GPP標準化
      下一篇:包含工廠mes系統生產管理的詞條
      相關文章
      亚洲欧洲日产国码无码久久99 | a级亚洲片精品久久久久久久| 亚洲午夜无码久久| 亚洲综合一区二区国产精品| 亚洲国产精品福利片在线观看 | 亚洲一区二区影视| 久久夜色精品国产噜噜噜亚洲AV | 亚洲精品理论电影在线观看| 亚洲色偷偷偷综合网| 亚洲娇小性色xxxx| 香蕉大伊亚洲人在线观看| 国产精品亚洲综合五月天| 国产亚洲精aa在线看| 亚洲熟妇无码一区二区三区| 亚洲欧美国产国产一区二区三区| 亚洲国产91在线| 亚洲日韩AV一区二区三区中文| 亚洲综合色丁香婷婷六月图片| 亚洲男同gay片| 在线观看亚洲网站| 亚洲精品天堂成人片?V在线播放| 亚洲日韩VA无码中文字幕| 日韩亚洲变态另类中文| 亚洲精品乱码久久久久久中文字幕| 亚洲欧洲美洲无码精品VA| 亚洲成AV人片在线观看无| 亚洲国产二区三区久久| 亚洲激情校园春色| 亚洲资源最新版在线观看| 亚洲伊人久久大香线蕉啊| 国产成人人综合亚洲欧美丁香花| 亚洲综合一区二区三区四区五区| 亚洲熟妇av午夜无码不卡| 小说专区亚洲春色校园| 久99精品视频在线观看婷亚洲片国产一区一级在线 | 亚洲动漫精品无码av天堂| 亚洲人成在线电影| 亚洲在成人网在线看| 亚洲欧美日韩自偷自拍| 亚洲国产高清在线一区二区三区 | 在线精品亚洲一区二区三区|