偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Linux性能檢測常用的10個(gè)基本命令

系統(tǒng) Linux
本文的內(nèi)容主要來自對Netflix的一篇技術(shù)博客( Linux Performance Analysis in 60,000 Milliseconds ,并添加了一些自己的理解,僅供參考。

本文的內(nèi)容主要來自對Netflix的一篇技術(shù)博客( Linux Performance Analysis in 60,000 Milliseconds (https://medium.com/netflix-techblog/linux-performance-analysis-in-60-000-milliseconds-accc10403c55),并添加了一些自己的理解,僅供參考。

1.   uptime

  1. $ uptime   
  2. 23:51:26 up 21:31, 1 userload average: 30.02, 26.43, 19.0212  

該命令可以大致的看出計(jì)算機(jī)的整體負(fù)載情況,load average后的數(shù)字分別表示計(jì)算機(jī)在1min、5min、15min內(nèi)的平均負(fù)載。

2. dmesg | tail 

  1. $ dmesg | tail  
  2. [1880957.563150] perl invoked oom-killer: gfp_mask=0x280da, order=0, oom_score_adj=0  
  3. [...]  
  4. [1880957.563400] Out of memory: Kill process 18694 (perl) score 246 or sacrifice child  
  5. [1880957.563408] Killed process 18694 (perl) total-vm:1972392kB, anon-rss:1953348kB, file-rss:0kB  
  6. [2320864.954447] TCP: Possible SYN flooding on port 7001. Dropping request.  Check SNMP counters.123456  

打印內(nèi)核環(huán)形緩存區(qū)中的內(nèi)容,可以用來查看一些錯誤;

上面的例子中,顯示進(jìn)程18694 因引內(nèi)存越界被kill掉以及TCP request被丟棄的錯誤。通過dmesg可以快速判斷是否有導(dǎo)致系統(tǒng)性能異常的問題。

3. vmstat 1 

  1. $ vmstat 1  
  2. procs ---------memory---------- ---swap-- -----io---- -system-- ------cpu-----  
  3.  r  b swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st  
  4. 34  0    0 200889792  73708 591828    0    0     0     5    6   10 96  1  3  0  0  
  5. 32  0    0 200889920  73708 591860    0    0     0   592 13284 4282 98  1  1  0  0  
  6. 32  0    0 200890112  73708 591860    0    0     0     0 9501 2154 99  1  0  0  0  
  7. 32  0    0 200889568  73712 591856    0    0     0    48 11900 2459 99  0  0  0  0  
  8. 32  0    0 200890208  73712 591860    0    0     0     0 15898 4840 98  1  1  0  0  
  9. ^C123456789  

打印進(jìn)程、內(nèi)存、交換分區(qū)、IO和CPU等的統(tǒng)計(jì)信息;

vmstat的格式如下 

  1. > vmstat [options] [delay [count]] 

vmstat***次輸出表示從開機(jī)到vmstat運(yùn)行時(shí)的平均值;剩余輸出的都是在指定的時(shí)間間隔內(nèi)的平均值,上述例子中delay的值設(shè)置為1,除***次以外,剩余的都是1秒統(tǒng)計(jì)一次,count未設(shè)置,將會一直循環(huán)打印。 

  1. $ vmstat 10 3  
  2. procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----  
  3.  r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st  
  4.  1  0      0 2527112 1086888 13720228    0    0     1    14    2    1  1  1 99  0  0  
  5.  0  0      0 2527156 1086888 13719856    0    0     0   104 3003 4901  0  0 99  0  0  
  6.  0  0      0 2526412 1086888 13719904    0    0     0    10 3345 4870  0  1 99  0  0123456  

上述的例子中delay設(shè)置為10,count設(shè)置為3,表示每行打印10秒內(nèi)的平均值,只打印3次。

需要檢查的列

  • r:表示正在運(yùn)行或者等待CPU調(diào)度的進(jìn)程數(shù)。因?yàn)樵摿袛?shù)據(jù)不包含I/O的統(tǒng)計(jì)信息,因此可以用來檢測CPU是否飽和。若r列中的數(shù)字大于CPU的核數(shù),表示CPU已經(jīng)處于飽和狀態(tài)。
  • free:當(dāng)前剩余的內(nèi)存;
  • si, so:交換分區(qū)換入和換出的個(gè)數(shù),若換入換出個(gè)數(shù)大于0,表示內(nèi)存不足;
  • us, sy, id, wa:CPU的統(tǒng)計(jì)信息,分別表示user time、system time(kernel)、idle、wait I/O。I/O處理所用的時(shí)間包含在system time中,因此若system time超過20%,則I/O可能存在瓶頸或異常;

4. mpstat -P ALL 1 

  1. $ mpstat -P ALL  
  2. Linux 3.10.0-229.el7.x86_64 (localhost.localdomain)     05/30/2018  _x86_64_    (16 CPU)  
  3. 04:03:55 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle  
  4. 04:03:55 PM  all    3.67    0.00    0.61    0.71    0.00    0.00    0.00    0.00    0.00   95.02  
  5. 04:03:55 PM    0    3.52    0.00    0.57    0.76    0.00    0.00    0.00    0.00    0.00   95.15  
  6. 04:03:55 PM    1    3.83    0.00    0.61    0.71    0.00    0.00    0.00    0.00    0.00   94.85  
  7. 04:03:55 PM    2    3.80    0.00    0.61    0.60    0.00    0.00    0.00    0.00    0.00   94.99  
  8. 04:03:55 PM    3    3.68    0.00    0.58    0.60    0.00    0.00    0.00    0.00    0.00   95.13  
  9. 04:03:55 PM    4    3.54    0.00    0.57    0.60    0.00    0.00    0.00    0.00    0.00   95.30  
  10. [...]1234567891011  

該命令用于每秒打印一次每個(gè)CPU的統(tǒng)計(jì)信息,可用于查看CPU的調(diào)度是否均勻。

5. pidstat 1 

  1. $ pidstat 1  
  2. Linux 3.13.0-49-generic (titanclusters-xxxxx)  07/14/2015    _x86_64_    (32 CPU)  
  3.  
  4. 07:41:02 PM   UID       PID    %usr %system  %guest    %CPU   CPU  Command  
  5. 07:41:03 PM     0         9    0.00    0.94    0.00    0.94     1  rcuos/0  
  6. 07:41:03 PM     0      4214    5.66    5.66    0.00   11.32    15  mesos-slave  
  7. 07:41:03 PM     0      4354    0.94    0.94    0.00    1.89     8  java  
  8. 07:41:03 PM     0      6521 1596.23    1.89    0.00 1598.11    27  java  
  9. 07:41:03 PM     0      6564 1571.70    7.55    0.00 1579.25    28  java  
  10. 07:41:03 PM 60004     60154    0.94    4.72    0.00    5.66     9  pidstat  
  11.  
  12. 07:41:03 PM   UID       PID    %usr %system  %guest    %CPU   CPU  Command  
  13. 07:41:04 PM     0      4214    6.00    2.00    0.00    8.00    15  mesos-slave  
  14. 07:41:04 PM     0      6521 1590.00    1.00    0.00 1591.00    27  java  
  15. 07:41:04 PM     0      6564 1573.00   10.00    0.00 1583.00    28  java  
  16. 07:41:04 PM   108      6718    1.00    0.00    0.00    1.00     0  snmp-pass  
  17. 07:41:04 PM 60004     60154    1.00    4.00    0.00    5.00     9  pidstat  
  18. ^C123456789101112131415161718  

該命令用于打印各個(gè)進(jìn)程對CPU的占用情況,類似top命令中顯示的內(nèi)容。pidstat的優(yōu)勢在于,可以滾動的打印進(jìn)程運(yùn)行情況,而不像top那樣會清屏。

上述例子中,%CPU中兩個(gè)java進(jìn)程的cpu利用率分別達(dá)到了1590%和1573%,表示java進(jìn)程占用了16顆CPU。

6. iostat -xz 1

類似vmstat,***次輸出的是從系統(tǒng)開機(jī)到統(tǒng)計(jì)這段時(shí)間的采樣數(shù)據(jù); 

  1. $ iostat -xz 1  
  2. Linux 3.13.0-49-generic (titanclusters-xxxxx)  07/14/2015  _x86_64_ (32 CPU)  
  3.  
  4. avg-cpu:  %user   %nice %system %iowait  %steal   %idle  
  5.           73.96    0.00    3.73    0.03    0.06   22.21  
  6.  
  7. Device:   rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util  
  8. xvda        0.00     0.23    0.21    0.18     4.52     2.08    34.37     0.00    9.98   13.80    5.42   2.44   0.09  
  9. xvdb        0.01     0.00    1.02    8.94   127.97   598.53   145.79     0.00    0.43    1.78    0.28   0.25   0.25  
  10. xvdc        0.01     0.00    1.02    8.86   127.79   595.94   146.50     0.00    0.45    1.82    0.30   0.27   0.26  
  11. dm-0        0.00     0.00    0.69    2.32    10.47    31.69    28.01     0.01    3.23    0.71    3.98   0.13   0.04  
  12. dm-1        0.00     0.00    0.00    0.94     0.01     3.78     8.00     0.33  345.84    0.04  346.81   0.01   0.00  
  13. dm-2        0.00     0.00    0.09    0.07     1.35     0.36    22.50     0.00    2.55    0.23    5.62   1.78   0.03  
  14. [...]  
  15. ^C123456789101112131415  

檢查列

  • r/s, w/s, rkB/s, wkB/s,表示每秒向I/O設(shè)備發(fā)出的reads、writes、read Kbytes、write Kbytes的數(shù)量。
  • await,表示應(yīng)用程序排隊(duì)等待和被服務(wù)的平均I/O時(shí)間,該值若大于預(yù)期的時(shí)間,這表示I/O設(shè)備處于飽和狀態(tài)或者異常。
  • avgqu-sz,表示請求被發(fā)送給I/O設(shè)備的平均時(shí)間,若該值大于1,則表示I/O設(shè)備可能已經(jīng)飽和;
  • %util,每秒設(shè)備的利用率;若該利用率超過60%,則表示設(shè)備出現(xiàn)性能異常;

7. free -m 

  1. free -m  
  2.              total       used       free     shared    buffers     cached  
  3. Mem:        245998      24545     221453         83         59        541  
  4. -/+ buffers/cache:      23944     222053  
  5. Swap:            0          0          012345  

檢查的列: 

  1. buffers: For the buffer cache, used for block device I/O.  
  2. cached: For the page cache, used by file systems.  

若buffers和cached接近0,說明I/O的使用率過高,系統(tǒng)存在性能問題。 

Linux中會用free內(nèi)存作為cache,若應(yīng)用程序需要分配內(nèi)存,系統(tǒng)能夠快速的將cache占用的內(nèi)存回收,因此free的內(nèi)存包含cache占用的部分。

8. sar -n DEV 1

sar是System Activity Reporter的縮寫,系統(tǒng)活動狀態(tài)報(bào)告。

-n { keyword [,…] | ALL },用于報(bào)告網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)。keyword可以是以下的一個(gè)或者多個(gè): DEV, EDEV, NFS, NFSD, SOCK, IP, EIP, ICMP, EICMP, TCP, ETCP, UDP, SOCK6, IP6, EIP6, ICMP6, EICMP6 和UDP6。

-n DEV 1, 每秒統(tǒng)計(jì)一次網(wǎng)絡(luò)的使用情況; 

-n EDEV 1,每秒統(tǒng)計(jì)一次錯誤的網(wǎng)絡(luò)信息; 

  1. $ sar -n DEV 1  
  2. Linux 3.10.0-229.el7.x86_64 (localhost.localdomain)     05/31/2018  _x86_64_    (16 CPU)  
  3.  
  4. 03:54:57 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s  
  5. 03:54:58 PM     ens32   3286.00   7207.00    283.34  18333.90      0.00      0.00      0.00  
  6. 03:54:58 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00  
  7. 03:54:58 PM vethe915e51      0.00      0.00      0.00      0.00      0.00      0.00      0.00  
  8. 03:54:58 PM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00  
  9.  
  10. 03:54:58 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s  
  11. 03:54:59 PM     ens32   3304.00   7362.00    276.89  18898.51      0.00      0.00      0.00  
  12. 03:54:59 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00  
  13. 03:54:59 PM vethe915e51      0.00      0.00      0.00      0.00      0.00      0.00      0.00  
  14. 03:54:59 PM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00  
  15. ^C123456789101112131415  
  • IFACE ,網(wǎng)絡(luò)接口名稱;
  • rxpck/s ,每秒接收到包數(shù);
  • txpck/s ,每秒傳輸?shù)膱?bào)數(shù);(transmit packages)
  • rxkB/s ,每秒接收的千字節(jié)數(shù);
  • txkB/s ,每秒發(fā)送的千字節(jié)數(shù);
  • rxcmp/s ,每秒接收的壓縮包的數(shù)量;
  • txcmp/s ,每秒發(fā)送的壓縮包的數(shù)量;
  • rxmcst/s,每秒接收的組數(shù)據(jù)包數(shù)量;

9. sar -n TCP,ETCP 1

該命令可以用于粗略的判斷網(wǎng)絡(luò)的吞吐量,如發(fā)起的網(wǎng)絡(luò)連接數(shù)量和接收的網(wǎng)絡(luò)連接數(shù)量;

  • TCP, 報(bào)告關(guān)于TCPv4網(wǎng)絡(luò)流量的統(tǒng)計(jì)信息;
  • ETCP, 報(bào)告有關(guān)TCPv4網(wǎng)絡(luò)錯誤的統(tǒng)計(jì)信息; 
  1. $ sar -n TCP,ETCP 1  
  2. Linux 3.10.0-514.26.2.el7.x86_64 (aushop)   05/31/2018  _x86_64_    (2 CPU)  
  3.  
  4. 04:16:27 PM  active/s passive/s    iseg/s    oseg/s  
  5. 04:16:44 PM      0.00      2.00     15.00     13.00  
  6. 04:16:45 PM      0.00      3.00    126.00    203.00  
  7. 04:16:46 PM      0.00      0.00     99.00     99.00  
  8. 04:16:47 PM      0.00      0.00     18.00      9.00  
  9. 04:16:48 PM      0.00      0.00      5.00      6.00  
  10. 04:16:49 PM      0.00      0.00      1.00      1.00  
  11. 04:16:50 PM      0.00      1.00      4.00      4.00  
  12. 04:16:51 PM      0.00      3.00    171.00    243.00  
  13. ^C12345678910111213  

檢測的列:

  • active/s: Number of locally-initiated TCP connections per second (e.g., via connect()),發(fā)起的網(wǎng)絡(luò)連接數(shù)量;
  • passive/s: Number of remotely-initiated TCP connections per second (e.g., via accept()),接收的網(wǎng)絡(luò)連接數(shù)量;
  • retrans/s: Number of TCP retransmits per second,重傳的數(shù)量;

10. top

top命令包含更多的指標(biāo)統(tǒng)計(jì),相當(dāng)于一個(gè)綜合命令。 

  1. top  
  2. top - 00:15:40 up 21:56,  1 user,  load average: 31.09, 29.87, 29.92  
  3. Tasks: 871 total,   1 running, 868 sleeping,   0 stopped,   2 zombie  
  4. %Cpu(s): 96.8 us,  0.4 sy,  0.0 ni,  2.7 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st  
  5. KiB Mem:  25190241+total, 24921688 used, 22698073+free,    60448 buffers  
  6. KiB Swap:        0 total,        0 used,        0 free.   554208 cached Mem  
  7.  
  8.    PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND  
  9.  20248 root      20   0  0.227t 0.012t  18748 S  3090  5.2  29812:58 java  
  10.   4213 root      20   0 2722544  64640  44232 S  23.5  0.0 233:35.37 mesos-slave  
  11.  66128 titancl+  20   0   24344   2332   1172 R   1.0  0.0   0:00.07 top  
  12.   5235 root      20   0 38.227g 547004  49996 S   0.7  0.2   2:02.74 java  
  13.   4299 root      20   0 20.015g 2.682g  16836 S   0.3  1.1  33:14.42 java  
  14.      1 root      20   0   33620   2920   1496 S   0.0  0.0   0:03.82 init  
  15.      2 root      20   0       0      0      0 S   0.0  0.0   0:00.02 kthreadd  
  16.      3 root      20   0       0      0      0 S   0.0  0.0   0:05.35 ksoftirqd/0  
  17.      5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H  
  18.      6 root      20   0       0      0      0 S   0.0  0.0   0:06.94 kworker/u256:0  
  19.      8 root      20   0       0      0      0 S   0.0  0.0   2:38.05 rcu_sched12345678910111213141516171819 

11. 總結(jié)

下面的圖片很好的展示了各個(gè)命令的主要作用,如使用vmstat查看系統(tǒng)的整體性能,mpstat用于查看cpu的性能,pidstat用于查看進(jìn)程的狀態(tài),iostat用于查看io的狀態(tài),free用于產(chǎn)看內(nèi)存的狀態(tài),sar用于產(chǎn)看網(wǎng)絡(luò)的狀態(tài)等。

 

Linux性能檢測常用的10個(gè)基本命令

image.png

Linux常用性能工具一覽

 

Linux性能檢測常用的10個(gè)基本命令

Linux Performance Tools

參考

  • 性能不好怎么辦?對著清單擼一遍
  • Linux Performance Analysis in 60,000 Milliseconds
  • Netflix常用性能測試工具視頻教程 
責(zé)任編輯:龐桂玉 來源: 馬哥Linux運(yùn)維
相關(guān)推薦

2010-08-31 14:57:30

2014-08-05 11:38:57

linux

2022-09-28 08:40:04

殺死一個(gè)終端進(jìn)程

2011-02-16 09:26:49

2009-07-31 16:14:27

linux cd命令Linux基本命令

2009-08-28 10:55:59

linux操作系統(tǒng)linux學(xué)習(xí)基本命令

2010-03-03 14:36:01

Linux bridg

2009-08-11 10:30:00

linux中du命令參linux命令行參數(shù)linux命令行

2013-12-06 17:39:49

Linuxps命令

2017-06-15 12:42:07

Linux常用性能分析命令

2010-09-02 13:25:41

Linux命令行

2016-06-22 09:30:58

Linux命令新手

2023-11-20 09:48:13

Linux性能指標(biāo)命令

2021-02-22 07:58:52

Linux壓縮解壓

2021-02-19 08:05:38

Linux命令系統(tǒng)

2020-05-22 11:20:56

Linux命令文件

2010-06-04 10:30:15

Linux 性能檢測

2022-07-26 10:28:00

Linux監(jiān)控命令

2025-04-23 08:20:00

Linux性能監(jiān)測命令

2021-12-13 12:00:08

FreeDOSLinux
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號