您好,登錄后才能下訂單哦!
[root@ceshi ~]# w
09:03:29 up 8:14, 1 user, load average: 0.10, 0.20, 0.30
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.134.1 09:02 0.00s 0.00s 0.00s w
主要分析紅色字體,表示CPU負載 0.10表示一分鐘cpu負載,該值一般不能大于cpu的核數,大于cpu核數,如一核表示cpu負載有點高,0.20表示五分鐘cpu負載,0.30表示十五分鐘cpu負載
查看CPU核數:紅色字體,0表示單核,1表示雙核
[root@ceshi ~]# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 69
model name : Intel(R) Core(TM) i5-4200U CPU @1.60GHz
和w命令差不多
[root@ceshi ~]# uptime
09:05:57 up 1 min, 1 user, load average: 0.21, 0.09, 0.03
當使用w命令,查看到cpu一分鐘負載有點高時,就要分析在哪個地方使用高了。就使用這個命令分析
[root@feiji ~]# 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 3516 69292 196588 513076 0 0 0 25 1 2 0 099 0 0
[root@feiji ~]# vmstat 1 5 #每秒鐘顯示一次,一共顯示五次
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 3516 68920 196588 513480 0 0 0 25 1 2 0 099 0 0
0 0 3516 68904 196588 513480 0 0 0 0 166 275 1 198 0 0
0 0 3516 68780 196588 513480 0 0 0 124 179 317 0 099 1 0
0 0 3516 68780 196588 513480 0 0 0 0 170 301 0 0100 0 0
0 0 3516 68780 196588 513484 0 0 0 0 184 293 2 197 0 0
[root@feiji ~]# vmstat 2 #一直監控,兩秒顯示一次
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 3516 67928 196592 514288 0 0 0 25 1 2 0 099 0 0
0 0 3516 67920 196592 514296 0 0 0 0 134 214 0 199 0 0
r(running、運行):表示運行和等待cpu時間片的進程數。如果長期大于服務器cpu個數,則說明cpu不夠用了;
b(block、阻塞):表示等待資源的進程數,
swpd:虛擬內存已使用的大小,如果大于0,表示你的機器物理內存不足了,如果不是程序內存泄露的原因,那么你該升級內存了或者把耗內存的任務遷移到其它機器
free:空閑的物理內存的大小
buff:Linux、unix系統是用來存儲目錄里面有什么內容,權限等得緩存
cache:cache直接用來記憶我們打開的文件,給文件做緩沖,把空閑的物理內存的一部分拿來做文件和目錄的緩存,是為了提高程序執行的性能,當程序使用內存時,buffer/cache會很快被使用
si :每秒從磁盤讀入虛擬內存的大小,如果這個大于0,表示物理內存不夠用或者內存泄露了,要查找內存進程解決掉,我的機器內存充裕,一切正常
so :每秒虛擬內存寫入磁盤的大小,如果這個值大于0,同上
bi :從塊設備讀取數據的量(讀磁盤);
bo:從塊設備寫入數據的量(寫磁盤);
bi:塊設備每秒接收的塊數量,這里的塊設備是指系統上所有的磁盤和其他塊設備,默認塊大小是1024byte,我本機上沒什么IO操作,所以一直是0,但是我曾在處理拷貝大量數據(2-3T)的機>器上看過可以達到140000/s,磁盤寫入速度差不多140M每秒
bo:塊設備每秒發送的塊數量,例如我們讀取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO過于頻繁,需要調整。
si:從交換分區到內存,so:從內存到交換分區;bi:從硬盤到內存,bo:從內存到硬盤;
這樣理解是否正確:si和so和swpd的值一直增加,說明內存不足,因為要把內存某些數據交換出去。而bi bo值大,說明讀寫硬盤頻繁,再大說明硬盤IO瓶頸。考慮陳列卡或固態硬盤、減少磁>盤IO操作
cs:每秒上下文切換次數,例如我們調用系統函數,就要進行上下文切換,線程的切換,也要進程上下文切換,這個值要越小越好,太大了,要考慮調低線程或者進程的數目,例如在apache和nginx這種web服務器中,我們一般做性能測試時會進行幾千并發甚至幾萬并發的測試,選擇web服務器的進程可以由進程或者線程的峰值一直下調,壓測,直到cs到一個比較小的值,這個進程和
線程數就是比較合適的值了。系統調用也是,每次調用系統函數,我們的代碼就會進入內核空間,導致上下文切換,這個是很耗資源,也要盡量避免頻繁調用系統函數。上下文切換次數過多表
示你的CPU大部分浪費在上下文切換,導致CPU干正經事的時間少了,CPU沒有充分利用,是不可取的。
us :cpu占用的百分比,這個大于50,就要找原因了,看哪個進程占用cpu
us:用戶CPU時間,我曾經在一個做加密解密很頻繁的服務器上,可以看到us接近100,r運行隊列達到80(機器在做壓力測試,性能表現不佳)。
sy:系統CPU時間,如果太高,表示系統調用時間長,例如是IO操作頻繁。
id:空閑 CPU時間,一般來說,id +us + sy = 100,一般我認為id是空閑CPU使用率,us是用戶CPU使用率,sy是系統CPU使用率。
wt:等待IO CPU時間。
當使用w或者vmstat命令的時候,查看系統負載情況,top可以分析哪個進程占用cpu高
每三秒顯示一次,按q退出
用法:top -bn1 #靜態顯示進程的負載,可以寫入腳本里
[root@feiji ~]# top
top - 19:01:55 up 170 days, 8:15, 1 user, load average: 0.00, 0.01,0.00
Tasks: 98 total, 2 running, 96 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3%us, 0.7%sy, 0.0%ni, 98.7%id, 0.3%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1030600k total, 980784kused, 49816k free, 196864k buffers
Swap: 2097148k total, 3516kused, 2093632k free, 530960k cached
PIDUSER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
15624 root 20 0 7056 5904 432 S 0.3 0.6 135:18.16 sap1002
15627 root 20 0 31464 12m 664 R 0.3 1.3 282:13.96 sap1005
1root 20 0 2900 936 796 S 0.0 0.1 0:10.05 init
2root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
4root 20 0 0 0 0 S 0.0 0.0 0:56.08 ksoftirqd/0
前面幾行可以看到cpu負載,內存的使用used,空閑內存free,和buffers,cached
下面的有PR(0--39),NI(-20--19)
VIRT:虛擬內存
RES:真實內存
SHR:共享內存
%CPU :占用cpu的百分比
%MEM:占領內存百分比
COMMAND:具體的進程
查看網卡流量
首先要先安裝
yum install -y sysstat
剛才是可能會顯示“無法打開 /var/log/sa/sa08: 沒有那個文件或目錄”,過10分鐘才能正常顯示
[root@feiji ~]# sar -n DEV
Linux 2.6.32-504.30.3.el6.i686 (feiji) 2016年11月08日 _i686_ (1 CPU)
20時20分01秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
20時30分01秒 lo 0.13 0.13 0.01 0.01 0.00 0.00 0.00
20時30分01秒 eth0 1.35 1.40 0.15 0.22 0.00 0.00 0.00
平均時間: lo 0.13 0.13 0.01 0.01 0.00 0.00 0.00
平均時間: eth0 1.35 1.40 0.15 0.22 0.00 0.00 0.00
其中主要看eth0(外網網口)的rxkB/s(進網口)、txkB/s(出網口)
rxkB/s(每秒收取的數據量)
txkB/s(每秒發送的數據量)
0.15kb/s / 1000 = 0.00015mb/s
帶寬等于0.00015mb/s * 8bi t= 0.0013m
須知道1byt = 8bit
常說的網線帶寬單位就是比特10m的帶寬都是已經乘于8
10 / 8 = 1.25 就是它的下載速度
比特是網卡上的進量單位
計算機單位有字節(byt),KB,MB,GB
sar –q #能夠查看歷史負載
sar –b #可以查看當前的磁盤狀態
sar –p #可以查看cpu的使用情況
[root@feiji ~]# free -m
total used free shared buffers cached
Mem: 1006 961 44 0 187 541
-/+ buffers/cache: 232 774
Swap: 2047 4 2043
Men 表示內存,total表示總數,used表示使用量,free表示剩余內存
真正的剩余內存看-/+ buffers/cache: free=744= 44+187+541
第二部分(-/+ buffers/cache):
(-buffers/cache) used內存數:232M (指的第一部分Mem行中的used – buffers – cached)
(+buffers/cache) free內存數: 774M (指的第一部分Mem行中的free +buffers + cached)
可見-buffers/cache反映的是被程序實實在在吃掉的內存,而+buffers/cache反映的是可以挪用的內存總數.
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。