国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Linux > 正文

linux包之procps之vmstat命令

2024-06-28 13:26:22
字體:
供稿:網(wǎng)友
linux包之PRocps之vmstat命令

概述

[root@localhost ~]# rpm -qf /usr/bin/vmstatprocps-3.2.8-25.el6.x86_64

vmstat是一個(gè)很全面的性能分析工具,可以觀察到系統(tǒng)的進(jìn)程狀態(tài)、內(nèi)存使用、虛擬內(nèi)存使用、磁盤的IO、中斷、上下文切換、CPU使用等。對(duì)于 Linux 的性能分析,100%理解 vmstat 輸出內(nèi)容的含義,并能靈活應(yīng)用,那對(duì)系統(tǒng)性能分析的能力就算是基本掌握了。vmstat命令是最常見的Linux/Unix監(jiān)控工具,可以展現(xiàn)給定時(shí)間間隔的服務(wù)器的狀態(tài)值,包括服務(wù)器的CPU使用率,內(nèi)存使用,虛擬內(nèi)存交換情況,IO讀寫情況。這個(gè)命令是我查看Linux/Unix最喜愛的命令,一個(gè)是Linux/Unix都支持,二是相比top,我可以看到整個(gè)機(jī)器的CPU,內(nèi)存,IO的使用情況,而不是單單看到各個(gè)進(jìn)程的CPU使用率和內(nèi)存使用率(使用場(chǎng)景不一樣)。

解釋

一般vmstat工具的使用是通過兩個(gè)數(shù)字參數(shù)來完成的,第一個(gè)參數(shù)是采樣的時(shí)間間隔數(shù),單位是秒,第二個(gè)參數(shù)是采樣的次數(shù),如:# vmstat 2 1vmstat的輸出分為以下幾種模式:(1)、VM MODE (普通選項(xiàng))(2)、DISK MODE(-d選項(xiàng))(3)、DISK PARTITION MODE(-p選項(xiàng))(4)、SLAB MODE (-m選項(xiàng))

對(duì)輸出解釋如下:  1)procs  a.r列表示運(yùn)行和等待CPU時(shí)間片的進(jìn)程數(shù),這個(gè)值如果長(zhǎng)期大于系統(tǒng)CPU個(gè)數(shù),就說明CPU資源不足,可以考慮增加CPU;  b.b列表示在等待資源的進(jìn)程數(shù),比如正在等待I/O或者內(nèi)存交換等。  2)memory  a、swpd列表示切換到內(nèi)存交換區(qū)的內(nèi)存數(shù)量(以KB為單位)。如果swpd的值不為0或者比較大,而且si、so的值長(zhǎng)期為0,那么這種情況一般不用擔(dān)心,不會(huì)影響系統(tǒng)性能;  b、free列表示當(dāng)前空閑的物理內(nèi)存數(shù)量(以KB為單位);  c、buff列表示buffers cache的內(nèi)存數(shù)量,一般對(duì)塊設(shè)備的讀寫才需要緩沖;作為buff 作為buffer cache的內(nèi)存數(shù)量,一般對(duì)塊設(shè)備的讀寫才需要緩沖。  d、cache列表示page cached的內(nèi)存數(shù)量,一般作文件系統(tǒng)的cached,頻繁訪問的文件都會(huì)被cached。如果cached值較大,就說明cached文件數(shù)較多。如果此時(shí)IO中的bi比較小,就說明文件系統(tǒng)效率比較好。作為page cache的內(nèi)存數(shù)量,一般作為文件系統(tǒng)的cache,如果cache較大,說明用到cache的文件較多,如果此時(shí)IO中bi比較小,說明文件系統(tǒng)效率比較好。  3)swap  a、si列表示由磁盤調(diào)入內(nèi)存,也就是內(nèi)存進(jìn)入內(nèi)存交換區(qū)的數(shù)量;  b、so列表示由內(nèi)存調(diào)入磁盤,也就是內(nèi)存交換區(qū)進(jìn)入內(nèi)存的數(shù)量  c、一般情況下,si、so的值都為0,如果si、so的值長(zhǎng)期不為0,則表示系統(tǒng)內(nèi)存不足,需要考慮是否增加系統(tǒng)內(nèi)存  4)IO  a、bi列表示從塊設(shè)備讀入的數(shù)據(jù)總量(即讀磁盤,單位KB/秒)  b、bo列表示寫入到塊設(shè)備的數(shù)據(jù)總量(即寫磁盤,單位KB/秒)  這里設(shè)置的bi+bo參考值為1000,如果超過1000,而且wa值比較大,則表示系統(tǒng)磁盤IO性能瓶頸。  5)system  a、in列表示在某一時(shí)間間隔中觀察到的每秒設(shè)備中斷數(shù);  b、cs列表示每秒產(chǎn)生的上下文切換次數(shù)。  上面這兩個(gè)值越大,會(huì)看到內(nèi)核消耗的CPU時(shí)間就越多。  6)CPU  a、us列顯示了用戶進(jìn)程消耗CPU的時(shí)間百分比。us的值比較高時(shí),說明用戶進(jìn)程消耗的CPU時(shí)間多,如果長(zhǎng)期大于50%,需要考慮優(yōu)化程序啥的。  b、sy列顯示了內(nèi)核進(jìn)程消耗CPU的時(shí)間百分比。sy的值比較高時(shí),就說明內(nèi)核消耗的CPU時(shí)間多;如果us+sy超過80%,就說明CPU的資源存在不足。  c、id列顯示了CPU處在空閑狀態(tài)的時(shí)間百分比;  d、wa列表示IO等待所占的CPU時(shí)間百分比。wa值越高,說明IO等待越嚴(yán)重。如果wa值超過20%,說明IO等待嚴(yán)重。  e、st列一般不關(guān)注,虛擬機(jī)占用的時(shí)間百分比。 (Linux 2.6.11)

r 表示運(yùn)行隊(duì)列(就是說多少個(gè)進(jìn)程真的分配到CPU),我測(cè)試的服務(wù)器目前CPU比較空閑,沒什么程序在跑,當(dāng)這個(gè)值超過了CPU數(shù)目,就會(huì)出現(xiàn)CPU瓶頸了。這個(gè)也和top的負(fù)載有關(guān)系,一般負(fù)載超過了3就比較高,超過了5就高,超過了10就不正常了,服務(wù)器的狀態(tài)很危險(xiǎn)。top的負(fù)載類似每秒的運(yùn)行隊(duì)列。如果運(yùn)行隊(duì)列過大,表示你的CPU很繁忙,一般會(huì)造成CPU使用率很高。b 表示阻塞的進(jìn)程,這個(gè)不多說,進(jìn)程阻塞,大家懂的。swpd 虛擬內(nèi)存已使用的大小,如果大于0,表示你的機(jī)器物理內(nèi)存不足了,如果不是程序內(nèi)存泄露的原因,那么你該升級(jí)內(nèi)存了或者把耗內(nèi)存的任務(wù)遷移到其他機(jī)器。free 空閑的物理內(nèi)存的大小,我的機(jī)器內(nèi)存總共8G,剩余3415M。buff Linux/Unix系統(tǒng)是用來存儲(chǔ),目錄里面有什么內(nèi)容,權(quán)限等的緩存,我本機(jī)大概占用300多Mcache cache直接用來記憶我們打開的文件,給文件做緩沖,我本機(jī)大概占用300多M(這里是Linux/Unix的聰明之處,把空閑的物理內(nèi)存的一部分拿來做文件和目錄的緩存,是為了提高 程序執(zhí)行的性能,當(dāng)程序使用內(nèi)存時(shí),buffer/cached會(huì)很快地被使用。)si 每秒從磁盤讀入虛擬內(nèi)存的大小,如果這個(gè)值大于0,表示物理內(nèi)存不夠用或者內(nèi)存泄露了,要查找耗內(nèi)存進(jìn)程解決掉。我的機(jī)器內(nèi)存充裕,一切正常。so 每秒虛擬內(nèi)存寫入磁盤的大小,如果這個(gè)值大于0,同上。bi 塊設(shè)備每秒接收的塊數(shù)量,這里的塊設(shè)備是指系統(tǒng)上所有的磁盤和其他塊設(shè)備,默認(rèn)塊大小是1024byte,我本機(jī)上沒什么IO操作,所以一直是0,但是我曾在處理拷貝大量數(shù)據(jù)(2-3T)的機(jī)器上看過可以達(dá)到140000/s,磁盤寫入速度差不多140M每秒bo 塊設(shè)備每秒發(fā)送的塊數(shù)量,例如我們讀取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO過于頻繁,需要調(diào)整。in 每秒CPU的中斷次數(shù),包括時(shí)間中斷cs 每秒上下文切換次數(shù),例如我們調(diào)用系統(tǒng)函數(shù),就要進(jìn)行上下文切換,線程的切換,也要進(jìn)程上下文切換,這個(gè)值要越小越好,太大了,要考慮調(diào)低線程或者進(jìn)程的數(shù)目,例如在apache和nginx這種web服務(wù)器中,我們一般做性能測(cè)試時(shí)會(huì)進(jìn)行幾千并發(fā)甚至幾萬并發(fā)的測(cè)試,選擇web服務(wù)器的進(jìn)程可以由進(jìn)程或者線程的峰值一直下調(diào),壓測(cè),直到cs到一個(gè)比較小的值,這個(gè)進(jìn)程和線程數(shù)就是比較合適的值了。系統(tǒng)調(diào)用也是,每次調(diào)用系統(tǒng)函數(shù),我們的代碼就會(huì)進(jìn)入內(nèi)核空間,導(dǎo)致上下文切換,這個(gè)是很耗資源,也要盡量避免頻繁調(diào)用系統(tǒng)函數(shù)。上下文切換次數(shù)過多表示你的CPU大部分浪費(fèi)在上下文切換,導(dǎo)致CPU干正經(jīng)事的時(shí)間少了,CPU沒有充分利用,是不可取的。us 用戶CPU時(shí)間,我曾經(jīng)在一個(gè)做加密解密很頻繁的服務(wù)器上,可以看到us接近100,r運(yùn)行隊(duì)列達(dá)到80(機(jī)器在做壓力測(cè)試,性能表現(xiàn)不佳)。sy 系統(tǒng)CPU時(shí)間,如果太高,表示系統(tǒng)調(diào)用時(shí)間長(zhǎng),例如是IO操作頻繁。id 空閑 CPU時(shí)間,一般來說,id + us + sy = 100,一般我認(rèn)為id是空閑CPU使用率,us是用戶CPU使用率,sy是系統(tǒng)CPU使用率。wt 等待IO CPU時(shí)間。

樣例:[root@localhost ~]# vmstat -f-f顯示自開機(jī)以來forks的總數(shù),包括fork、vfork和clone system calls,總數(shù)和tasks創(chuàng)建的數(shù)量是一致的。[root@localhost ~]# vmstat -a-a顯示 活動(dòng)(active)和 非活動(dòng)(inactive)的內(nèi)存。[root@rac01 ~]# vmstat -s-s顯示各種事件計(jì)數(shù)器表和內(nèi)存統(tǒng)計(jì)信息[root@rac01 ~]# vmstat -d-d顯示磁盤數(shù)據(jù)(disk statistics)[root@rac01 ~]# vmstat -D-D顯示磁盤統(tǒng)計(jì)表(disk table)[root@rac01 ~]# vmstat -p /dev/sda2 2-p 分區(qū)顯示磁盤分區(qū)數(shù)據(jù)[root@rac01 ~]# vmstat -S k 2-S 單位

[root@CentOS5 ~]#vmstat -m  與下面的命令類似Cache Num Total Size Pagessize-32 4018 4068 32 113[root@CentOS5 ~]#slabtop

[root@CentOS5 ~]# ll /proc/slabinfo

[root@CentOS5 ~]# vmstat -p /dev/sdb1 2 -n  不重復(fù)顯示標(biāo)題頭,只顯示一次sdb1 reads read sectors writes requested writes1129843 23753591 264152 374556721129844 23753599 264153 374556881129844 23753599 264157 374558001129845 23753607 264173 374561041129845 23753607 264175 37456136

案例

開發(fā)人員報(bào)告系統(tǒng)運(yùn)行緩慢,影響用戶訪問.流程與步驟登錄相關(guān)故障主機(jī)1.top查看看到負(fù)載較高top - 15:58:54 up 34 days, 35 min, 2 users, load average: 5.54, 5.35, 5.092.vmstat查看[root@CentOS5 ~]# vmstat 2procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 2 9 77580 52532 3512 1066464 0 0 6 57 6 3 1 0 99 0 0 0 11 77580 54268 3436 1064712 0 0 1324 5516 1158 498 49 6 0 46 0 0 8 77580 54264 3456 1064956 0 0 966 3176 1095 349 6 2 0 93 020 8 77580 54572 3372 1064492 0 0 682 7406 1148 596 59 7 0 35 0 1 10 77580 53736 3300 1064772 0 0 2190 11894 1268 1270 84 13 0 2 0 2 9 77580 54968 3172 1062376 0 0 852 12480 1116 361 88 11 0 2 0 0 6 77580 52228 3180 1065692 0 0 840 5994 1123 548 52 6 0 42 020 9 77580 54108 3200 1063668 0 0 940 5488 1112 487 54 7 0 40 0 4 10 77580 51588 3244 1066748 0 0 454 6752 1081 317 51 6 0 43 0 1 8 77580 54732 2840 1063384 0 0 944 12140 1130 582 77 12 0 11 0 0 10 77580 55488 2596 1057480 0 0 1044 33282 1082 201 3 4 0 94 0 1 8 77580 56696 2664 1058312 0 0 466 18 1223 415 2 1 0 97 0 0 9 77580 56736 2728 1062004 0 0 708 1540 1154 417 7 2 0 91 0 1 7 77580 53676 2780 1065040 0 0 1552 6840 1152 748 78 11 0 12 0 5 8 77580 52828 2768 1065776 0 0 3088 2958 1301 939 18 3 0 79 0 5 8 77580 54844 2808 1063516 0 0 1168 7900 1142 803 89 11 0 0 03.iostat查看[root@CentOS5 ~]# iostat 1avg-cpu: %user %nice %system %iowait %steal %idle 24.62 0.00 2.51 72.86 0.00 0.00

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtnsda 0.00 0.00 0.00 0 0sda1 0.00 0.00 0.00 0 0sda2 0.00 0.00 0.00 0 0sda3 0.00 0.00 0.00 0 0sdb 259.30 5953.77 3320.60 11848 6608sdb1 259.30 5953.77 3320.60 11848 6608dm-0 678.39 6082.41 3320.60 12104 66084.iostat查看[root@CentOS5 ~]# iostat -xN 1Linux 2.6.18-194.el5 (CentOS5) 2014年05月17日

avg-cpu: %user %nice %system %iowait %steal %idle 2.24 0.05 0.46 5.22 0.00 92.03

Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %utilsda 0.21 1.61 0.48 0.73 12.21 18.72 25.61 0.02 15.94 6.99 0.84sda1 0.01 0.00 0.00 0.00 0.03 0.00 30.51 0.00 15.86 12.73 0.00sda2 0.12 0.38 0.02 0.01 1.10 3.10 132.98 0.00 38.78 32.13 0.10sda3 0.08 1.23 0.45 0.72 11.07 15.62 22.72 0.02 15.33 6.57 0.77sdb 0.35 73.18 18.65 4.47 392.15 621.19 43.83 0.22 9.48 2.96 6.85sdb1 0.35 73.18 18.65 4.47 392.13 621.19 43.83 0.22 9.48 2.96 6.85datavg-Oracle 0.00 0.00 18.99 77.65 392.12 621.19 10.49 3.84 39.72 0.71 6.855.ps查看[root@CentOS5 ~]# ps aux|grep oracle[root@CentOS5 ~]# ps -ef|grep ora|wc -l127[root@CentOS5 ~]# ps aux|grep D

6.fuser查看[root@CentOS5 ~]# fuser -vm /oracle

USER PID access COMMAND/oracle: oracle 2859 F..e. tnslsnr oracle 2926 F.ce. oracle oracle 2928 F.ce. oracle oracle 2930 F.ce. oracle oracle 2932 F.ce. oracle oracle 2934 F.ce. oracle oracle 2936 F.ce. oracle oracle 2938 F.ce. oracle oracle 2940 F.ce. oracle oracle 2942 F.ce. oracle oracle 2944 F.ce. oracle


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 库尔勒市| 竹北市| 简阳市| 台南县| 南召县| 吉隆县| 安福县| 饶河县| 云安县| 宁国市| 昌江| 平顶山市| 防城港市| 高安市| 丰县| 阿合奇县| 呈贡县| 衡阳县| 吉首市| 麻栗坡县| 威海市| 德惠市| 田阳县| 台北市| 江阴市| 长顺县| 乌拉特后旗| 志丹县| 冕宁县| 禹州市| 潢川县| 平南县| 商城县| 铁力市| 江山市| 合川市| 司法| 海林市| 锡林浩特市| 蕲春县| 高雄市|