一、使用nload監控總體帶寬使用情況
1.1安裝nload
[root@120 ~]# yum install epel-release -y
[root@120 ~]# yum install nload -y
二、開始監控
[root@120 ~]# nload #開始監控
然後另一個終端上運行ab,開始測試:
[root@120 ~]# ab -n 1000 -c 2 http://www.baidu.com/index.html #產生一些測試數據
三、使用nethogs找出使用帶寬最多的進程
3.1上傳到nethogs到linux上:
[root@120 ~]# yum install epel-release nethogs -y
[root@120 ~]# nethogs 就可以看到
3.2在另一個終端生成一些數據:下載個文件
四、 查看系統整體運行狀態
4.1 使用vmstat查看內存及系統整體運行狀態
vmstat :命令是最常見的Linux/Unix監控工具,可以展現給定時間間隔的服務器的狀態值,包括服務器的CPU使用率,MEM內存使用,VMSwap虛擬內存交換情況,IO讀寫情況。
使用vmstat可以看到整個機器的CPU,內存,IO的使用情況,而不是單單看到各個進程的CPU使用率和內存使用率。 比top命令節省資源。
注:當機器運行比較慢時,建議大家使用vmstat查看運行狀態,不需要使用top,因top使用資源比較多。
例:[root@120 ~]# vmstat
每一列參數作用:
r 運行狀態的進程個數 。展示了正在執行和等待cpu資源的任務個數。當這個值超過了cpu個數,就會出現cpu瓶頸。
b 不可中斷睡眠 正在進行i/o等待--阻塞狀態的進程個數 進程讀取外設上的數據,等待時
free 剩餘內存,單位是KB
buffers #內存從磁盤讀出的內容
cached #內存需要寫入磁盤的內容
si swapin swap換入到內存
so swapout 內存換出到swap 換出的越多,內存越不夠用
bi blockin 從硬盤往內存讀。 單位是塊。 把磁盤中的數據讀入內存
bo blockout 從內存拿出到硬盤 (週期性的有值) 寫到硬盤
#判斷是讀多還是寫多,是否有i/o瓶頸
in 系統的中斷次數,cpu調度的次數多
cs 每秒的上下文切換速度
CPU上下文切換--程序在運行的時候,CPU對每個程序切換的過程。
us 用戶CPU時間
sy 系統CPU時間,如果太高,表示系統調用時間長,例如是IO操作頻繁。
id 空閒 CPU時間,一般來說,id + us + sy = 100,一般我認爲id是空閒CPU使用率,us是用戶CPU使用率sy是系統CPU使用率。
wt 等待IO CPU時間。
st:Steal time 虛擬 CPU 等待實際 CPU 的時間的百分比
4.2 使用sar命令記錄系統一段時間的運行狀態
安裝sar命令
[root@120 ~]# yum -y install sysstat
sysstat 工具包可以把檢查到的信息保存下來,存在/var/log/sa目錄下。 sar 默認顯示每10分鐘統計一次狀態信息(從裝sysstat包開始)
sar 命令行的常用格式: sar [options] [-A] [-o file] t [n]
在命令行中,n 和t 兩個參數組合起來定義採樣間隔和次數,t爲採樣間隔,是必須有的參數,n爲採樣次數,是可選的,默認值是1,-o file表示將命令結果以二進制格式存放在文件中,file 在此處不是關鍵字,是文件名。options 爲命令行選項,sar命令的選項很多,
下面只列出常用選項:
-A:所有報告的總和。
-n:網絡接口的情況。
-u:CPU利用率
-v:進程、I節點、文件和鎖表狀態。
-d:硬盤使用報告。
-r:沒有使用的內存頁面和硬盤塊。
-g:串口I/O的情況。
-b:緩衝區使用情況。
-a:文件讀寫情況。
-c:系統調用情況。
-R:進程的活動情況。
-y:終端設備活動情況。
-w:系統交換活動。
-o 文件名:打印到屏幕並將採樣結果以二進制形式存入當前目錄下的文件中。
-f 文件名:查看之前保存的二進制文件。
-d 顯示磁盤
-d 1 100 必須得指定次數
-c 每秒創建進程的個數
-i 1 10 指定時間間隔
-P 查看cpu
-r 查看內存
-w 每秒上下文切換次數
-o /cpu.sar 保存並顯示
-f cpu.sar 讀取
例1:每2秒採樣一次,連續採樣5次,觀察CPU 的使用情況,並將採樣結果以二進制形式存入當前目錄下的文件cpu.sar中
[root@120 ~]# sar -u 2 5 -o cpu.sar #屏幕顯示以一下內容,同時內容也會寫到當前目錄的./cpu.sar中
[root@120 ~]# sar -u 2 5 -o cpu.sar
在顯示內容包括:
%usr:CPU處在用戶模式下的時間百分比。
%sys:CPU處在系統模式下的時間百分比。
%iow:CPU等待輸入輸出完成時間的百分比。
%idle:CPU空閒時間百分比。
在所有的顯示中,我們應主要注意%iow和%idle,%iow的值過高,表示硬盤存在I/O瓶頸,%idle值高,表示CPU較空閒,如果%idle值高但系統響應慢時,有可能是CPU等待分配內存,此時應加大內存容量。%idle值如果持續低於10,那麼系統的CPU處理能力相對較低,表明系統中最需要解決的資源是CPU。
例:查看二進制文件cpu.sar中的內容
[root@120 ~]# sar -u -f cpu.sar
注:sar命令即可以實時採樣,又可以對以往的採樣結果進行查詢。
4.3 查看sar 的計劃任務並讀取日誌:
1、查看sar 的計劃任務
[root@120 ~]# cat /etc/cron.d/sysstat
2、讀取日誌
[root@120 ~]# ls /var/log/sa #只要安裝sar後就會定期收集系統信息
sa15 sa19
使用參數-n查看網絡接口流量情況
[root@120 ~]# sar -n DEV -f /var/log/sa/sa04 #查看網絡相關信息
3、查看內存和硬盤
[root@120 ~]# sar -r -f /var/log/sa/sa15
-r 查看內存
[root@120 ~]# sar -d -f /var/log/sa/sa15
-d:硬盤使用報告。
4、sar最大特點是可以監控所有狀態,sar的其他使用方法如下:
sar -r 1 #查看內存
sar -n ALL #查看所有
sar -b 1 10 #緩衝區使用情況,每秒刷新一次,查看10次
sar -I ALL 1 10
sar -r -f /tmp/file -n -r -b -m
sar -s 15:00:00 -e 15:30:00 #查看某個時間段,系統運行情況
sar -s 15:00:00 -e 15:30:20 -f /var/log/sa/sa01
sar -r -s 15:00:00 -e 15:30:20 -f /var/log/sa/sa01
以上就是總結的linu調優思路和常用的調優工具。