1. 程式人生 > >1.linux平均負載

1.linux平均負載

comm kthread 用戶登錄 nta 內容 使用 command str 安裝

這裏我說的不會很晦澀難懂,爭取用很容易理解的方式展示我學習後的理解

1.首先介紹下stress命令參數,下面我們會使用到

-?        顯示幫助信息
-v         顯示版本號
-q         不顯示運行信息
-n         顯示已完成的指令情況
-t         --timeout  N  指定運行 N 秒後停止
           --backoff  N  等待 N 微秒後開始運行
-c         產生 n 個進程,每個進程都反復不停的計算隨機數的平方根
-i         產生 n 個進程,每個進程反復調用 sync(), sync() 用於將內存上的內容寫到硬盤上
-m         --vm n 產生 n 個進程,每個進程不斷調用內存分配 malloc 和內存釋放 free 函數
           --vm-bytes B 指定 malloc 時內存的字節數 (默認 256MB)
           --vm-hang N 指定在 free 棧的秒數
-d         --hadd n 產生 n 個執行 write 和 unlink 函數的進程
           --hadd-bytes B 指定寫的字節數
           --hadd-noclean 不 unlink

2.初識平均負載

[[email protected] ~]# uptime
 14:38:11 up  2:10,  4 users,  load average: 0.00, 0.00, 0.00
14:38:11 up   //系統當前時間
up  2:10         //系統運行了多久
4 users          //這裏我是用root用戶登錄,打開了四個窗口
load average: 0.00, 0.00, 0.00  //分別是系統過去1分鐘,5分鐘,15分鐘的負載

平均負載是什麽?
平均負載是單位時間內,系統處於可運行狀態不可中斷狀態的平均進程數,即系統中單位時間內的活躍進程數

可運行狀態的進程:
正在使用CPU或正在等待CPU的進程。即ps命令中,stat處於R(Running|Runnable)的進程

不可中斷的進程:
例如在進行磁盤讀寫的進程,此時為了保證數據的完整性,會使進程的狀態設置為D,即不可被中斷,如果被中斷了,數據是不會被完整保存的。

"R狀態的演示查看"
在我的系統中,我使用yum安裝了一下zlib*,並且安裝了zabbix客戶端,但zabbix服務端並沒有啟動。
根據ps -aux查看到,zabbix客戶端是處於S狀態,並不是一個活躍的正在工作的進程。yum命令如果你仔細觀察,會發現,在install的過程,是處於R狀態,但這個狀態很短暫,任務完成,就處於S狀態了。
[[email protected] ~]# ps -aux
Warning: bad syntax, perhaps a bogus ‘-‘? See /usr/share/doc/procps-3.2.8/FAQ
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.1  0.0  19356  1532 ?        Ss   12:27   0:01 /sbin/init
root          2  0.0  0.0      0     0 ?        S    12:27   0:00 [kthreadd]

zabbix     1203  0.0  0.0  76836  1228 ?        S    12:27   0:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix     1205  0.0  0.0  76836  1328 ?        S    12:27   0:00 /usr/sbin/zabbix_agentd: collector [idle 1 sec]          
zabbix     1206  0.0  0.0  76836  1956 ?        S    12:27   0:00 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
zabbix     1207  0.0  0.0  76836  1956 ?        S    12:27   0:00 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
zabbix     1208  0.0  0.0  76836  1956 ?        S    12:27   0:00 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
zabbix     1209  0.0  0.1  76840  2120 ?        S    12:27   0:00 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]   
root       1402 21.1  4.1 387784 85264 pts/1    R+   12:45   0:08 /usr/bin/python /usr/bin/yum install -y zlib*
root       1426  0.0  0.0 110260  1156 pts/0    R+   12:46   0:00 ps -aux
"D狀態的演示查看"
在一個窗口執行
[[email protected] ~]# stress -d 1 -i 1 --hdd-bytes 3G
stress: info: [7112] dispatching hogs: 0 cpu, 1 io, 0 vm, 1 hdd
另一個窗口查看,可看到處於D狀態
[[email protected] ~]# ps -aux
Warning: bad syntax, perhaps a bogus ‘-‘? See /usr/share/doc/procps-3.2.8/FAQ
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.0  19356  1428 ?        Ss   12:27   0:01 /sbin/init
root          2  0.0  0.0      0     0 ?        S    12:27   0:00 [kthreadd]
root       7113  0.5  0.0   6524   112 pts/0    D+   14:52   0:00 stress -d 1 -i 1 --hdd-bytes 3G
root       7114 39.4  0.0   7472  1180 pts/0    D+   14:52   0:03 stress -d 1 -i 1 --hdd-bytes 3G

1.linux平均負載