1. 程式人生 > >3.20 10.6-10.10聽課筆記

3.20 10.6-10.10聽課筆記

free sar iostat stat

監控io性能

Iostat命令

sar命令屬於同一個包

[root@localhost sa]# iostat

Linux 3.10.0-693.el7.x86_64 (localhost.localdomain) 20180320 _x86_64_ (1 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle

0.24 0.00 0.34 0.01 0.00 99.42

硬盤

Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn

sda 1.62 61.44 17.95 376254 109931

sdb 0.04 0.58 0.00 3580 0

scd0 0.00 0.17 0.00 1028 0

dm-0 0.01 0.17 0.00 1036 0

[root@localhost sa]# iostat 1 5

[root@localhost sa]# iostat -x

Linux 3.10.0-693.el7.x86_64 (localhost.localdomain) 20180320 _x86_64_ (1 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle

0.23 0.00 0.33 0.01 0.00 99.44

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util

sda 0.00 0.04 1.09 0.45 58.34 17.06 97.76 0.00 0.93 0.62 1.69 0.31 0.05

sdb 0.00 0.00 0.04 0.00 0.56 0.00 28.99 0.00 0.12 0.12 0.00 0.08 0.00

scd0 0.00 0.00 0.00 0.00 0.16 0.00 114.22 0.00 0.61 0.61 0.00 0.44 0.00

dm-0 0.00 0.00 0.01 0.00 0.16 0.00 48.19 0.00 0.07 0.07 0.00 0.05 0.00

util參數顯示cpu有多少時間是在等待io讀寫數據(百分比顯示),如果值太高則說明io成為服務器瓶頸

[root@localhost sa]# iotop 將進程對io的使用情況排序顯示,顯示內容還包括磁盤的讀寫速度

Free命令

[root@localhost sa]# free 查看系統內存使用情況

total used free shared buff/cache available

Mem: 999696 121332 411320 6828 467044 690228

Swap: 2097148 0 2097148

後可跟-m-h-m表示內存大小以M為單位顯示,-h會根據目前大小選擇合適的單位顯示,shared表示共享

數據從磁盤被內存緩存下來,再從內存到cpu,用於緩存數據的內存叫cache

Cpu處理完數據,先將處理完的數據放入內存,再從內存寫入磁盤,用於這部分的內存叫buffer

*由於cpu與磁盤讀寫速度差距巨大,cpu不能停下等待磁盤讀寫數據,所以需要內存中的這兩塊區域,系統需要為cachebuffer分配內存空間

Available=free+buffer/cache(預分配,還未用完的)

Total=used+free+buffer/cache

Ps命令

靜態查看系統內進程運行情況

[root@localhost sa]# ps aux

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 1 0.0 0.6 128164 6816 ? Ss 18:53 0:01 /usr/li

root 2 0.0 0.0 0 0 ? S 18:53 0:00 [kthrea

root 3 0.0 0.0 0 0 ? S 18:53 0:00 [ksofti

root 5 0.0 0.0 0 0 ? S< 18:53 0:00 [kworke

root 6 0.0 0.0 0 0 ? S 18:53 0:00 [kworke

root 7 0.0 0.0 0 0 ? S 18:53 0:00 [migrat

root 8 0.0 0.0 0 0 ? S 18:53 0:00 [rcu_bh

root 9 0.0 0.0 0 0 ? R 18:53 0:00 [rcu_sc

[root@localhost sa]# ps aux|grep mysql 查看當前進程中有沒有mysql

root 1604 0.0 0.0 112676 984 pts/0 S+ 22:10 0:00 grep --color=auto mysql

stat表示進程狀態:D不能中斷的進程(如果中斷會對程序結果有影響,過多D狀態進程會使系統負載偏高);R正在運行的進程(在該一定時間段內在使用cpu);S運算完成後可能暫停休息,過後再使用cpu,如vmstatT暫停的進程(被執行了ctrl+z的進程,可以用fg調回運行);+表示進程為前臺進程;Z僵屍進程;<高優先級進程(可以優先使用cpu);N低優先級進程(對應高優先級進程);L內存中被鎖了內存分頁;s主進程(通常主進程可以啟動子進程在ps中分別顯示為master proccessworker proccess);l多線程進程(線程由一個大進程組成,一個進程中有多個線程;進程間內存不共享,但同一進程的線程使用了同一進程的內存區域)


3.20 10.6-10.10聽課筆記