Linux性能檢測常用的10個基本命令

本文通過(良許Linux)微信公眾號轉(zhuǎn)載而來欣喧,僅供參考!

1. uptime

$ uptime 23:51:26 up 21:31, 1 user, load average: 30.02, 26.43, 19.0212

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

2. dmesg | tail

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

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

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

3. vmstat 1

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

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

vmstat的格式如下

> vmstat [options] [delay [count]]

vmstat第一次輸出表示從開機到vmstat運行時的平均值胖替;剩余輸出的都是在指定的時間間隔內(nèi)的平均值研儒,上述例子中delay的值設置為1,除第一次以外独令,剩余的都是1秒統(tǒng)計一次端朵,count未設置,將會一直循環(huán)打印记焊。

$ vmstat 10 3procs -----------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 2527112 1086888 13720228    0    0     1    14    2    1  1  1 99  0  0 0  0      0 2527156 1086888 13719856    0    0     0   104 3003 4901  0  0 99  0  0 0  0      0 2526412 1086888 13719904    0    0     0    10 3345 4870  0  1 99  0  0123456

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

需要檢查的列

  • r:表示正在運行或者等待CPU調(diào)度的進程數(shù)。因為該列數(shù)據(jù)不包含I/O的統(tǒng)計信息瓢颅,因此可以用來檢測CPU是否飽和恩尾。若r列中的數(shù)字大于CPU的核數(shù),表示CPU已經(jīng)處于飽和狀態(tài)挽懦。
  • free:當前剩余的內(nèi)存翰意;
  • si, so:交換分區(qū)換入和換出的個數(shù),若換入換出個數(shù)大于0信柿,表示內(nèi)存不足冀偶;
  • us, sy, id, wa:CPU的統(tǒng)計信息,分別表示user time渔嚷、system time(kernel)进鸠、idle、wait I/O形病。I/O處理所用的時間包含在system time中客年,因此若system time超過20%,則I/O可能存在瓶頸或異常漠吻;

4. mpstat -P ALL 1

$ mpstat -P ALLLinux 3.10.0-229.el7.x86_64 (localhost.localdomain)     05/30/2018  _x86_64_    (16 CPU)04:03:55 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle04:03:55 PM  all    3.67    0.00    0.61    0.71    0.00    0.00    0.00    0.00    0.00   95.0204:03:55 PM    0    3.52    0.00    0.57    0.76    0.00    0.00    0.00    0.00    0.00   95.1504:03:55 PM    1    3.83    0.00    0.61    0.71    0.00    0.00    0.00    0.00    0.00   94.8504:03:55 PM    2    3.80    0.00    0.61    0.60    0.00    0.00    0.00    0.00    0.00   94.9904:03:55 PM    3    3.68    0.00    0.58    0.60    0.00    0.00    0.00    0.00    0.00   95.1304:03:55 PM    4    3.54    0.00    0.57    0.60    0.00    0.00    0.00    0.00    0.00   95.30[...]1234567891011

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

5. pidstat 1

$ pidstat 1Linux 3.13.0-49-generic (titanclusters-xxxxx)  07/14/2015    _x86_64_    (32 CPU)07:41:02 PM   UID       PID    %usr %system  %guest    %CPU   CPU  Command07:41:03 PM     0         9    0.00    0.94    0.00    0.94     1  rcuos/007:41:03 PM     0      4214    5.66    5.66    0.00   11.32    15  mesos-slave07:41:03 PM     0      4354    0.94    0.94    0.00    1.89     8  java07:41:03 PM     0      6521 1596.23    1.89    0.00 1598.11    27  java07:41:03 PM     0      6564 1571.70    7.55    0.00 1579.25    28  java07:41:03 PM 60004     60154    0.94    4.72    0.00    5.66     9  pidstat07:41:03 PM   UID       PID    %usr %system  %guest    %CPU   CPU  Command07:41:04 PM     0      4214    6.00    2.00    0.00    8.00    15  mesos-slave07:41:04 PM     0      6521 1590.00    1.00    0.00 1591.00    27  java07:41:04 PM     0      6564 1573.00   10.00    0.00 1583.00    28  java07:41:04 PM   108      6718    1.00    0.00    0.00    1.00     0  snmp-pass07:41:04 PM 60004     60154    1.00    4.00    0.00    5.00     9  pidstat^C123456789101112131415161718

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

上述例子中,%CPU中兩個java進程的cpu利用率分別達到了1590%和1573%划提,表示java進程占用了16顆CPU枫弟。

6. iostat -xz 1

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

$ iostat -xz 1Linux 3.13.0-49-generic (titanclusters-xxxxx)  07/14/2015  _x86_64_ (32 CPU)avg-cpu:  %user   %nice %system %iowait  %steal   %idle          73.96    0.00    3.73    0.03    0.06   22.21Device:   rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %utilxvda        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.09xvdb        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.25xvdc        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.26dm-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.04dm-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.00dm-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[...]^C123456789101112131415

檢查列

  • r/s, w/s, rkB/s, wkB/s淡诗,表示每秒向I/O設備發(fā)出的reads、writes伊履、read Kbytes韩容、write Kbytes的數(shù)量。
  • await唐瀑,表示應用程序排隊等待和被服務的平均I/O時間群凶,該值若大于預期的時間,這表示I/O設備處于飽和狀態(tài)或者異常哄辣。
  • avgqu-sz请梢,表示請求被發(fā)送給I/O設備的平均時間赠尾,若該值大于1,則表示I/O設備可能已經(jīng)飽和毅弧;
  • %util气嫁,每秒設備的利用率;若該利用率超過60%够坐,則表示設備出現(xiàn)性能異常寸宵;

7. free -m

$ free -m             total       used       free     shared    buffers     cachedMem:        245998      24545     221453         83         59        541-/+ buffers/cache:      23944     222053Swap:            0          0          012345

檢查的列:

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

若buffers和cached接近0,說明I/O的使用率過高元咙,系統(tǒng)存在性能問題梯影。
Linux中會用free內(nèi)存作為cache,若應用程序需要分配內(nèi)存庶香,系統(tǒng)能夠快速的將cache占用的內(nèi)存回收甲棍,因此free的內(nèi)存包含cache占用的部分。

8. sar -n DEV 1

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

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

-n DEV 1, 每秒統(tǒng)計一次網(wǎng)絡的使用情況;
-n EDEV 1呈驶,每秒統(tǒng)計一次錯誤的網(wǎng)絡信息拷泽;

$ sar -n DEV 1Linux 3.10.0-229.el7.x86_64 (localhost.localdomain)     05/31/2018  _x86_64_    (16 CPU)03:54:57 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s03:54:58 PM     ens32   3286.00   7207.00    283.34  18333.90      0.00      0.00      0.0003:54:58 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.0003:54:58 PM vethe915e51      0.00      0.00      0.00      0.00      0.00      0.00      0.0003:54:58 PM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.0003:54:58 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s03:54:59 PM     ens32   3304.00   7362.00    276.89  18898.51      0.00      0.00      0.0003:54:59 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.0003:54:59 PM vethe915e51      0.00      0.00      0.00      0.00      0.00      0.00      0.0003:54:59 PM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00^C123456789101112131415
  • IFACE ,網(wǎng)絡接口名稱袖瞻;
  • rxpck/s 司致,每秒接收到包數(shù);
  • txpck/s 聋迎,每秒傳輸?shù)膱髷?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)絡的吞吐量,如發(fā)起的網(wǎng)絡連接數(shù)量和接收的網(wǎng)絡連接數(shù)量斧抱;

  • TCP, 報告關(guān)于TCPv4網(wǎng)絡流量的統(tǒng)計信息;
  • ETCP, 報告有關(guān)TCPv4網(wǎng)絡錯誤的統(tǒng)計信息;
$ sar -n TCP,ETCP 1Linux 3.10.0-514.26.2.el7.x86_64 (aushop)   05/31/2018  _x86_64_    (2 CPU)04:16:27 PM  active/s passive/s    iseg/s    oseg/s04:16:44 PM      0.00      2.00     15.00     13.0004:16:45 PM      0.00      3.00    126.00    203.0004:16:46 PM      0.00      0.00     99.00     99.0004:16:47 PM      0.00      0.00     18.00      9.0004:16:48 PM      0.00      0.00      5.00      6.0004:16:49 PM      0.00      0.00      1.00      1.0004:16:50 PM      0.00      1.00      4.00      4.0004:16:51 PM      0.00      3.00    171.00    243.00^C12345678910111213

檢測的列:

  • active/s: Number of locally-initiated TCP connections per second (e.g., via connect())常拓,發(fā)起的網(wǎng)絡連接數(shù)量;
  • passive/s: Number of remotely-initiated TCP connections per second (e.g., via accept())夺姑,接收的網(wǎng)絡連接數(shù)量墩邀;
  • retrans/s: Number of TCP retransmits per second掌猛,重傳的數(shù)量盏浙;

10. top

top命令包含更多的指標統(tǒng)計,相當于一個綜合命令荔茬。

$ toptop - 00:15:40 up 21:56,  1 user,  load average: 31.09, 29.87, 29.92Tasks: 871 total,   1 running, 868 sleeping,   0 stopped,   2 zombie%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 stKiB Mem:  25190241+total, 24921688 used, 22698073+free,    60448 buffersKiB Swap:        0 total,        0 used,        0 free.   554208 cached Mem   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND 20248 root      20   0  0.227t 0.012t  18748 S  3090  5.2  29812:58 java  4213 root      20   0 2722544  64640  44232 S  23.5  0.0 233:35.37 mesos-slave 66128 titancl+  20   0   24344   2332   1172 R   1.0  0.0   0:00.07 top  5235 root      20   0 38.227g 547004  49996 S   0.7  0.2   2:02.74 java  4299 root      20   0 20.015g 2.682g  16836 S   0.3  1.1  33:14.42 java     1 root      20   0   33620   2920   1496 S   0.0  0.0   0:03.82 init     2 root      20   0       0      0      0 S   0.0  0.0   0:00.02 kthreadd     3 root      20   0       0      0      0 S   0.0  0.0   0:05.35 ksoftirqd/0     5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H     6 root      20   0       0      0      0 S   0.0  0.0   0:06.94 kworker/u256:0     8 root      20   0       0      0      0 S   0.0  0.0   2:38.05 rcu_sched12345678910111213141516171819

11. 總結(jié)

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

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市坏瞄,隨后出現(xiàn)的幾起案子桂对,更是在濱河造成了極大的恐慌,老刑警劉巖鸠匀,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蕉斜,死亡現(xiàn)場離奇詭異,居然都是意外死亡缀棍,警方通過查閱死者的電腦和手機宅此,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來爬范,“玉大人父腕,你說我怎么就攤上這事∏嗥伲” “怎么了璧亮?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長狱窘。 經(jīng)常有香客問我杜顺,道長,這世上最難降的妖魔是什么蘸炸? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任躬络,我火速辦了婚禮,結(jié)果婚禮上搭儒,老公的妹妹穿的比我還像新娘穷当。我一直安慰自己提茁,他們只是感情好,可當我...
    茶點故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布馁菜。 她就那樣靜靜地躺著茴扁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪汪疮。 梳的紋絲不亂的頭發(fā)上峭火,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天,我揣著相機與錄音智嚷,去河邊找鬼卖丸。 笑死,一個胖子當著我的面吹牛盏道,可吹牛的內(nèi)容都是我干的稍浆。 我是一名探鬼主播,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼猜嘱,長吁一口氣:“原來是場噩夢啊……” “哼衅枫!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起朗伶,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤弦撩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后腕让,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體孤钦,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年纯丸,在試婚紗的時候發(fā)現(xiàn)自己被綠了偏形。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,747評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡觉鼻,死狀恐怖俊扭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情坠陈,我是刑警寧澤萨惑,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站仇矾,受9級特大地震影響庸蔼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜贮匕,卻給世界環(huán)境...
    茶點故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一姐仅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦掏膏、人聲如沸劳翰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽佳簸。三九已至,卻和暖如春颖变,著一層夾襖步出監(jiān)牢的瞬間生均,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工悼做, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留疯特,地道東北人。 一個月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓肛走,卻偏偏與公主長得像,于是被迫代替她去往敵國和親录别。 傳聞我的和親對象是個殘疾皇子朽色,可洞房花燭夜當晚...
    茶點故事閱讀 43,658評論 2 350

推薦閱讀更多精彩內(nèi)容

  • 本文的內(nèi)容主要來自對Netflix的一篇技術(shù)博客( Linux Performance Analysis in 6...
    georgeguo閱讀 3,760評論 0 8
  • Linux中常用的監(jiān)控命令 在以前使用windows系統(tǒng)的時候,常常會遇到系統(tǒng)變卡组题,然后我們就會使用快捷鍵 ctr...
    _AlphaBaby_閱讀 1,881評論 0 3
  • linux是當前在服務器領(lǐng)域最成功操作系統(tǒng)葫男,不僅性能卓越,安全性高崔列,更重要的是提供了一套完善的監(jiān)控機制梢褐,來檢測系統(tǒng)...
    劉建會閱讀 1,488評論 0 2
  • 如果你想知道你的服務器正在做干什么,你就需要了解一些基本的命令赵讯,一旦你精通了這些命令盈咳,那你就是一個專業(yè)的 Linu...
    七寸知架構(gòu)閱讀 10,836評論 1 71
  • 怎么才能找到自己的方向,太茫然所以總被影響边翼,在24歲生日要來的時候還是沒有找到自己活著的意義鱼响,被拉扯著向前走著,毫...
    帥氣的火火閱讀 155評論 0 0