天天看點

linux調優工具使用

系統調優概述 系統調優

1. 系統的運作狀況:   CPU->   MEM   ->DISK*->   NETWORK -> 應用程式調優

2. 分析是否有瓶頸(依據目前應用需求)

3. 調優(把錯誤的調正确)

性能優化就是找到系統進行中的瓶頸以及去除這些的過程。 性能優化其實是對 OS 各子系統達到一種平衡的定義,這些子系統包括了:

CPU Memory IO Network

這些子系統之間關系是互相彼此依賴的,任何一個高負載都會導緻其他子系統出現問題.

例如: 大量的網頁調入請求導緻記憶體隊列的擁塞; 網卡的大吞吏量可能導緻更多的 CPU 開銷; 大量來自記憶體的磁盤寫請求可能導緻更多的 CPU 以及 IO 問題;

是以要對一個系統進行優化,查找瓶頸來自哪個方面是關鍵,雖然看似是某一個子系統出現問題,其實有 可能是别的子系統導緻的.

調優就像醫生看病,是以需要你對伺服器所有地方都了解清楚。

1、檢視 CPU 負載相關工具 uptime 指令: 

[root@silence80 ~]# uptime

13:22:30 up 8 min, 4 users, load average: 0.14, 0.38, 0.25

其内容如下:

12:38:33目前時間

up 50days系統運作時間 ,說明此伺服器連續運作 50 天了

1 user目前登入使用者數

load average: 0.06, 0.60, 0.48

系統負載,即任務隊列的平均長度。 

三個數值分别為 1 分鐘、5 分鐘、15 分鐘前到現在的平均值。

注: 負載的數字記得跟你的處理器有關。

舉例:

如果伺服器的 CPU 為 1 核心,則 load average 中的數字   >=3   負載過高,如果伺服器的 CPU 為 4 核 心,則 load average 中的數字   >=12   負載過高。

隊列數為 3 時,如圖:

linux調優工具使用

例:

15:13:31 up   6:19,   2 users,   load average: 0.15,   0.08,   0.01

1,5,15 系統平均負載

1 分鐘 5 分鐘 15 分鐘

1 分鐘的系統負載,指的是 1 分鐘系統中持續運作的程序個數 理論上:單核心,1 分鐘的系統平均負載不要超過 3

2、通過/proc 目錄下的檔案了解系統實時運作狀态 

[root@silence80 ~]# cat /proc/cpuinfo processor: 0

vendor_id: GenuineIntel 

cpu family: 6

model: 42

model name  : Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz 

stepping : 7

cpu MHz: 2195.039 

cache size: 6144 KB 

physical id: 0

siblings  : 4

core id           : 0 

cpu cores       : 4 

apicid             : 0 

initial apicid  : 0 

fpu         : yes

fpu_exception: yes 

cpuid level: 13

wp: yes

flags               : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic popcnt aes xsave avx hypervisor lahf_lm ida arat epb xsaveopt pln pts dts

bogomips: 4390.07 

clflush size: 64 

cache_alignment  : 64

address sizes : 40 bits physical, 48 bits virtual 

power management:

processor: 1

。。。

processor: 2

processor: 3#說明本機器支援 4 個 CPU

擷取核心的指令行參數

[root@silence80 ~]#   cat /proc/cmdline

roroot=UUID=ba5875b0-6c75-4c2f-a312-eb12e2a733a8rd_NO_LUKSrd_NO_LVM

LANG=en_US.UTF-8rd_NO_MDquietSYSFONT=latarcyrheb-sun16rhgb

KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM

注:/proc/cmdline 中的内容和 vim /etc/grub.conf   中的内容一樣

這個檔案列出字元和塊裝置的主裝置号,以及配置設定到這些裝置号的裝置名稱。

[root@silence80 ~]# cat /proc/diskstats

[root@silence80 ~]# cat /proc/diskstats相當于 (fdisk -l)

80 sda 9057 6029 579268 117444 2193 4811 56026 715330 0 66476 832739

81 sda1 584 244 4634 911 3 0 18 109 0 1000 1019

82 sda2 7967 5753 570330 114747 2190 4811 56008 715221 0 65749 829935

83 sda3 332 31 2904 745 0 0 0 0 0 744 744

檢視目前系統中可以支援的檔案系統類型 這個檔案列出可供使用的檔案系統類型,一種類型一行。雖然它們通常是編入核心的檔案系統類型,但該 檔案還可以包含可加載的核心子產品加入的其它檔案系統類型。

[root@silence80 ~]# cat /proc/filesystems   (nodev 表示支援但不存在,沒使用)

nodevramfs nodevhugetlbfs

iso9660#已經在使用

nodevpstore nodevmqueue

ext4#已經在使用

nodevrpc_pipefs nodevautofs

檢視 raid 裝置資訊

#這個檔案包含了由 md 裝置驅動程式控制的 RAID 裝置資訊。

[root@silence80 ~]# cat /proc/mdstat

Personalities (個性):

unused devices: <none>

cat /proc/modules(   lsmod 就是從這裡讀取資料的 )

檢視目前核心加載了哪些動态子產品:

lsmod ----> /proc/modules(lsmod)

[root@silence80 ~]# cat /proc/mounts

這個檔案以/etc/mtab 檔案的格式給出目前系統所安裝的檔案系統資訊。這個檔案也能反映出任何手工安 裝進而在/etc/mtab 檔案中沒有包含的檔案系統。

cat /proc/partitions#檢視分區表資訊

[root@silence80 ~]# cat /proc/partitions major minor   #blocks   name

8020971520 sda

81204800 sda1

8210240000 sda2

831024000 sda3

#檢視每個程序的資訊

ls /proc 程序 ID 号

[root@silence80 ~]# ls /proc/

11867230265031105acpimodules

101923612653314750asoundmounts

111907   2366   2654   3251buddyinfompt

11019132426623352busmtd

11231932240726643453cgroupsmtrr

[root@silence80 ~]# ll /proc/1/exe   #檢視 1 号程序運作的絕對路徑

lrwxrwxrwx 1 root root 0 Nov   7   2014 /proc/1/exe -> /sbin/init

程序清單:

ps 指令:隻對具體程序進行觀測

ps -axu

5 個主要程序狀态:

S   -->睡眠

R   -->正在運作或準備運作

Z--> 僵屍程序

D   -->不可中斷的睡眠程序

L   -->(記憶體鎖,防止交換--解決 swap 資訊洩漏,鎖住記憶體,防止交換)

s   -->   session   header   父子/父子----> 父程序,引導程序

+   -->前台程序組   表示是一組程序,而不是一個程序

l   -->程序,線程

<   -->高優先級程序

N   -->   低優先級程序 

實戰:按照實際使用記憶體從大到小排序顯示程序清單

[root@silence80 ~]# ps -aux --sort -rss | more 記憶體降序排序(去掉減号就是升序)

或:

[root@silence80 ~]# ps -aux --sort -rss > a.log

[root@silence80 ~]# ps -aux --sort rss | more 記憶體升序排序

[root@silence80 ~]# ps -aux --sort -pcpu | more#按 cpu 降序排序

檢視 -pcpu 幫助:

[root@silence80 ~]# man ps   #然後搜尋 pcpu   ,找到下面内容

pcpucpu utilization# cpu 使用率

找出占用 CPU 時間比較多的程序=

使用 top 檢視程序

top 指令:(這個指令本身就徆消耗 CPU 時間的) 

[root@silence80 ~]# top

op - 21:39:26 up   1:18,   3 users,   load average: 0.00, 0.07, 0.12

Tasks: 193 total,1 running, 192 sleeping,0 stopped,0 zombie

Cpu(s):   3.2%us,   1.4%sy,   0.0%ni, 95.4%id,   0.0%wa,   0.0%hi,   0.0%si,   0.0%st 

Mem:1164636k total,804456k used,360180k free,68964k buffers 

Swap:   1023992k total,0k used,   1023992k free,420716k cached

CPU 相關參數:

Cpu(s):

95.8%us,使用者态

1.1%sy,核心态

2.6%ni,優先級切換

0.0%id,CPU 空閑***

0.0%wa,等待,IO 輸入輸出等待

0.0%hi,硬中斷

0.5%si,軟中斷

0.0%stCPU 偷竊時間。   如開啟虛拟機會出現這種情況

排序方法: M 記憶體排序 P CPU 排序

<前後翻頁,檢視程序

>

動态檢視某兩個程序狀态:

[root@silence80 ~]#ps -axu | grep find#找到程序 id

[root@silence80 ~]#vim a.txt

[root@silence80 ~]#ps -axu | grep a.txt#找到程序 id

[root@silence80 ~]# top -p 3987,15872

CPU 與用的 mpstat

mpstat ---> CPU 運作情況

[root@silence80 ~]# rpm -qf `which mpstat `

sysstat-9.0.4-18.el6.x86_64  #此軟體包,包括徆多檢視系統狀态的軟體包

[root@silence80 ~]# mpstat

linux調優工具使用

[root@silence80 ~]# mpstat -P ALL   #檢視所有 CPU 運作狀态

linux調優工具使用

top然後數字鍵 1

[root@silence80 ~]# mpstat -P ALL 1 100#一秒鐘重新整理一次 連續重新整理 100 次

3、檢視 Memory 運作狀态相關工具

[root@silence80 ~]# free -m

totalusedfreesharedbufferscached

Mem:1137785352067410

-/+ buffers/cache:306830

Swap:9990999

buffers #記憶體從磁盤讀出的内容

cached #記憶體需要寫入磁盤的内容 當實體記憶體不夠用的時候,核心會把非活躍的資料清空。

通過/proc 檔案夾,檢視非活躍的記憶體:

/proc 檔案系統下的多種檔案提供的系統資訊不是針對某個特定程序的,而是能夠在整個系統範圍的上下 文中使用。可以使用的檔案随系統配置的變化而變化。

[root@silence80~]# cat /proc/meminfo MemTotal:1720320 kB MemFree:909000 kB Buffers:41500 kB

Cached:385016 kB SwapCached:0 kB

Active:347340 kB   活躍記憶體,指程序一直讀寫的記憶體空間

Inactive:346992 kB 非活躍記憶體

注:當記憶體不夠用時,kernel 總是把不活躍的記憶體交換到 swap 空間。如果 inactive 記憶體多時,加 swap

空間可以解決問題,而 active 多,則考慮加記憶體。

HighTotal:         981512 kB HighFree:           318568 kB LowTotal:           738808 kB

檢視記憶體及系統整體運作狀态:

vmstat  :指令是最常見的 Linux/Unix 監控工具,可以展現給定時間間隔的伺服器的狀态值,包括服務

器的 CPU 使用率,MEM 記憶體使用,VMSwap 虛拟記憶體交換情況,IO 讀寫情況。

使用 vmstat 可以看到整個機器的 CPU,記憶體,IO 的使用情況,而不是單單看到各個程序的 CPU 使用率

和記憶體使用率。   比 top 指令節省資源。

注:當機器運作比較慢時,建議大家使用 vmstat 檢視運作狀态,不需要使用 top,因 top 使用資源比較

多。

[root@silence80 ~]# vmstat

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----

r   bswpdfreebuff   cachesisobiboincs us sy id wa st

0   00 361292   69344 420744002134042   0   1 98   1   0

如圖:

linux調優工具使用

每一列參數作用:

r 運作狀态的程序個數 。展示了正在執行和等待 cpu 資源的任務個數。當這個值超過了 cpu 個數,就會 出現 cpu 瓶頸。

b 不可中斷睡眠 正在進行 i/o 等待--阻塞狀态的程序個數   程序讀取外設上的資料,等待時

free剩餘記憶體,機關是 KB buffers #記憶體從磁盤讀出的内容 cached #記憶體需要寫入磁盤的内容

si   swapinswap 換入到記憶體

so swapout   記憶體換出到 swap換出的越多,記憶體越不夠用

bi   blockin 從硬碟往記憶體讀。 機關是塊。把磁盤中的資料讀入記憶體 

bo blockout   從記憶體拿出到硬碟   (周期性的有值)   寫到硬碟 注:#判斷是讀多還是寫多,是否有 i/o 瓶頸

in 系統的中斷次數,cpu 排程的次數多

cs 每秒的上下文切換速度

注:如果這個資料比較大,說明有大并發的程序或線程在運作。 這種情況下,一般會用大理網絡通路請求。

更多記憶體參以一下表格:   vmstat 每個字段含義說明

類别       項目       含義                                                   說明

Procs(程序)  r   等待執行的任務數                                   展示了正在執行和等待 cpu 資源的任務個數。當這 個值超過了 cpu 個數,就會出現 cpu 瓶頸。

  B   等待 IO 的程序數量

Memory(記憶體)  swpd   正在使用虛拟的記憶體大小,機關 k

 free   空閑記憶體大小

 buff   已用的 buff 大小,對塊裝置 的讀寫進行緩沖

              cache   已用的 cache 大小,檔案系統 的 cache

              inact非活躍記憶體大小,即被标明可回收的記憶體,差別于 free 和active     具體含義見:概念補充(當使用-a 選項時顯示) 

 active活躍的記憶體大小具體含義見:概念補充(當使用-a 選項時顯示)

Swap       si    每秒從交換區寫入記憶體的大小(機關:kb/s)

  so    每秒從記憶體寫到交換區的大小

IO           bi    每秒讀取的塊數(讀磁盤)                                現在的 Linux 版本塊的大小為 1024bytes 

               bo    每秒寫入的塊數(寫磁盤)

system       in    每秒中斷數,包括時鐘中斷                       這兩個值越大,會看到由核心消耗的 cpu 時間會越多

               cs     每秒上下文切換數

CPU(以百分比表示) Us  使用者程序執行消耗 cpu 時間(user time)              us 的值比較高時,說明使用者程序消耗的 cpu 時間多,但是如果長期超過 50%的使用,那麼我們就該 考慮優化程式算法或其他措施了

               Sy    系統程序消耗  cpu  時間(system time)                            sys 的值過高時,說明系統核心消耗的 cpu 資源多,這個不是良性的表現,我們應該檢查原因。

               Id    空閑時間(包括 IO 等待時間)

               wa     等待 IO 時間                         Wa 過高時,說明 io 等待比較嚴重,這可能是由于 磁盤大量随機通路造成的,也有可能是磁盤的帶寬 出現瓶頸。

4、I/O 調優相關檢視工具

檢視系統塊大小

[root@silence80 ~]# tune2fs -l /dev/sda1 | grep size

Filesystem features:has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize

Block size:1024   #   為 1 個位元組 。 一個扇區 512 位元組。

通過 iostat 指令檢視 IO 是否存大瓶頸?

iostat 可以顯示 CPU 和 I/O 系統的負載情況及每個磁盤分區的讀寫狀态資訊.

進而知道我們系統 IO 是否存在問題。

安裝 iostat:

[root@silence80 ~]# rpm -qf `which iostat `

sysstat-9.0.4-18.el6.x86_64

[root@silence80 ~]# rpm -ivh /mnt/Packages/sysstat-9.0.4-18.el6.x86_64.rpm

直接執行 iostat 可以顯示下面内容: [root@silence80 ~]# iostat

Linux 2.6.32-220.el6.x86_64 (silence80.cn)08/04/2015_x86_64_ (4 CPU)

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

0.790.001.502.030.0095.68

Device: tpsBlk_read/sBlk_wrtn/sBlk_readBlk_wrtn 

scd0     0.77    4.40    0.0019040 

sda        13.69956.8548.8141390621114 

注釋:

avg-cpu 段:

%user: 在使用者級别運作所使用的 CPU 的百分比.

%nice: nice 操作所使用的 CPU 的百分比.

%sys: 在系統級别(kernel)運作所使用 CPU 的百分比.

%iowait: CPU 等待硬體 I/O 時,所占用 CPU 百分比.

%idle: CPU 空閑時間的百分比. Device 段:

tps: 每秒鐘發送到的 I/O 請求數.

Blk_read /s: 每秒讀取的 block 數,這裡的 block,指的是扇區數,一個扇區大小:512B Blk_wrtn/s: 每秒寫入的 block 數. 這裡的 block,指的是扇區數,一個扇區大小:512B Blk_read:讀入的 block 總數. 這裡的 block,指的是扇區數,一個扇區大小:512B Blk_wrtn:   寫入的 block 總數. 這裡的 block,指的是扇區數,一個扇區大小:512B

iostat 各個參數說明:

-c 僅顯示 CPU 統計資訊.不-d 選項互斥.

-d 僅顯示磁盤統計資訊.不-c 選項互斥.

例:[root@silence80 ~]# iostat -d

Device:tps  Blk_read/sBlk_wrtn/sBlk_readBlk_wrtn

scd00.532.99       0.00      1904       0

sda    9.31649.44       33.29413906     21218

-k 以 K 為機關顯示每秒的磁盤請求數,預設機關塊.

-p device | ALL 不-x 選項互斥,用于顯示塊裝置及系統分區的統計資訊.

例:顯示每個分區讀寫速度

[root@silence80 ~]# iostat -p sda -dk

Device: tps kB_read/s kB_wrtn/s  kB_read   kB_wrtn 

sda     7.25  252.33   12.99    20695310657 

sda1 0.63  2.43   0.01    1996  9 

sda2 5.99  247.27   12.98    20280510648 

sda3 0.43  1.77   0.00    1452  0 

注:

每列含意:

kB_read/s 每秒從驅動器讀入的資料量,機關為 K. kB_wrtn/s每秒吐驅動器寫入的資料量,機關為 K. kB_read讀入的資料總量,機關為 K.

kB_wrtn寫入的資料總量,機關為 K.

-x輸出擴充資訊 顯示輸出擴充資訊

[root@silence80 ~]# iostat -x -d -k

Device: rrqm/s    wrqm/sr/sw/s    rkB/swkB/s   avgrq-sz  avgqu-sz    await   svctm   %util 

scd0  0.10    0.000.310.000.890.00  5.68   0.00      2.21    2.21    0.07

sda      5.68    1.744.800.79    193.6010.11  72.87    0.35      63.34   5.67     3.17

linux調優工具使用

rrqm/s将讀入請求合并後,每秒發送到裝置的讀入請求數. 

wrqm/s将寫入請求合并後,每秒發送到裝置的寫入請求數.

r/s每秒發送到裝置的讀入請求數.

w/s每秒發送到裝置的寫入請求數. rsec/s 每秒從裝置讀入的扇區數. wsec/s 每秒吐裝置寫入的扇區數.

rkB/s每秒從裝置讀入的資料量,機關為 K. wkB/s每秒吐裝置寫入的資料量,機關為 K.

avgrq-sz   發送到裝置的請求的平均大小,機關是扇區. avgqu-sz   發送到裝置的請求的平均隊列長度.

awaitI/O 請求平均執行時間.包括發送請求和執行的時間.機關是毫秒. svctm發送到裝置的 I/O 請求的平均執行時間.機關是毫秒.

%util在 I/O 請求發送到裝置期間,占用 CPU 時間的百分比.用于顯示裝置的帶寬使用率.

當這個值接近 100%時,表示裝置帶寬已經占滿.   I/O 不夠使用。

%util 含意如圖:

linux調優工具使用

檢視 iostat 其它用法:

# iostat -d -k 2

每隔 2 秒,顯示一次裝置統計資訊. 以 k 為機關

# iostat -d 2 6

每隔 2 秒,顯示一次裝置統計資訊.總共輸出 6 次.

# iostat -x hda hdb 2 6

每隔 2 秒顯示一次 hda,hdb 兩個裝置的擴充統計資訊,共輸出 6 次.

# iostat -p sda 2 6

每隔 2 秒顯示一次 sda 及上面所有分區的統計資訊,共輸出 6 次.

問題:檢視哪個程序使用磁盤讀寫最多? iotop 指令,檢視哪個程序使用磁盤讀寫最多 執行個體:檢視系統中使用 io 最多的程序

參數:

-o, –only 隻顯示在讀寫硬碟的程式

-d SEC, –delay=SEC  設定顯示時間間隔

退出,按 q 或 ctrl+C

[root@silence80 ~]# iotop -o -d 1#顯示正在使用磁盤的程序

例 1:

[root@silence80 ~]# iotop#不加參數,動态檢視所有程序使用磁盤的狀态

Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s

TID   PRIO   USERDISK READ   DISK WRITE   SWAPINIO>COMMAND

2560 be/4 root0.00 B/s0.00 B/s   0.00 %   0.00 % gconfd-2

1 be/4 root0.00 B/s0.00 B/s0.00 %0.00 % init

2 be/4 root0.00 B/s0.00 B/s0.00 %0.00 % [kthreadd]

3 rt/4 root0.00 B/s0.00 B/s0.00 %0.00 % [migration/0]

4 be/4 root0.00 B/s0.00 B/s0.00 %0.00 % [ksoftirqd/0]

5 rt/4 root0.00 B/s0.00 B/s0.00 %0.00 % [migration/0]

例 2:

Total DISK READ: 1458.61 K/s | Total DISK WRITE: 0.00 B/s

2654 be/4 root1458.61 K/s0.00 B/s   0.00 % 60.62 % find /

1 be/4 root0.00 B/s0.00 B/s   0.00 %   0.00 % init

在另一個終端執行: 

[root@silence80 ~]# find / 

檢視結果:

linux調優工具使用

檢視 Network 運作狀态相關工具

[root@silence80 ~]# netstat -antup 

使用 sar 指令記錄系統一段時間的運作狀态

sysstat 工具包------可以把檢查到的資訊儲存下來!存在/var/log/sa 目錄下,檔案名為 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#每 1 秒統計一次磁盤資訊,統計 100 次。

-c 每秒建立程序的個數

-i 1 10 指定時間間隔

-P 檢視 cpu

-r 檢視記憶體

-w 每秒上下文切換次數

-o /cpu.sar 儲存并顯示

-f cpu.sar 讀取

例一:使用指令行 sar -u t n

例如,每 2 秒采樣一次,連續采樣 5 次,觀察 CPU 的使用情況,并将采樣結果以二進制形式存入目前目 錄下的檔案 cpu.sar 中,需鍵入如下指令:

[root@silence80 ~]# sar -u 2 5 -o cpu.sar   #螢幕顯示以一下内容,同時内容也會寫到 cpu.sar 中

10:44:45 PMCPU%user%nice%system%iowait%steal%idle

10:44:47 PMall0.140.002.340.140.0097.39

10:44:49 PMall1.080.001.330.360.0097.23

10:44:51 PMall2.540.002.160.000.0095.29

10:44:53 PMall0.250.001.520.130.0098.10

10:44:55 PMall1.520.001.650.280.0096.56

Average:all1.110.001.790.180.0096.92

在顯示内容包括:

%usr:CPU 處在使用者模式下的時間百分比。

%sys:CPU 處在系統模式下的時間百分比。

%wio:CPU 等待輸入輸出完成時間的百分比。

%idle:CPU 空閑時間百分比。

在所有的顯示中,我們應主要注意%wio 和%idle,%wio 的值過高,表示硬碟存在 I/O 瓶頸,%idle 值 高,表示 CPU 較空閑,如果%idle 值高但系統響應慢時,有可能是 CPU 等待配置設定記憶體,此時應加大記憶體 容量。%idle 值如果持續低于 10,那麼系統的 CPU 處理能力相對較低,表明系統中最需要解決的資源是 CPU。

執行個體 2:檢視二進制檔案 cpu.sar 中的内容

[root@silence80 ~]# sar -u -f cpu.sar

Linux 2.6.32-220.el6.x86_64 (silence80.cn)      08/04/2015   _x86_64_ (4 CPU)

08:21:43 PMCPU%user%nice%system%iowait%steal%idle

08:21:45 PMall0.000.000.722.030.0097.25

08:21:47 PMall0.000.000.600.000.0099.40

08:21:49 PMall0.130.000.750.000.0099.12

08:21:51 PMall0.000.000.750.000.0099.25

08:21:53 PMall0.120.000.750.000.0099.13

注:sar 指令即可以實時采樣,又可以對以往的采樣結果進行查詢。

檢視 sar 的計劃任務:

[root@silence80 ~]#vim   /etc/cron.d/sysstat

# Run system activity accounting tool every 10 minutes

*/10 * * * * root /usr/lib64/sa/sa1 -S DISK 1 1   #關于磁盤

# 0 * * * * root /usr/lib64/sa/sa1 -S DISK 600 6 &

# Generate a daily summary of process accounting at 23:53

53 23 * * * root /usr/lib64/sa/sa2 -A# -A:所有報告的總和。 生成的日志位置:

# ls /var/log/sa

讀取日志:

[root@silence80 ~]# ls /var/log/sa#隻要安裝 sar 後就會定期收集系統資訊

sa04   sa07   sa18

[root@silence80 ~]# sar -n DEV -f   /var/log/sa/sa04   #檢視網絡資訊

linux調優工具使用
linux調優工具使用

擴充:

# sar -r -f /var/log/sa/sa27

# sar -b -f /var/log/sa/sa27

# sar -f /var/log/sa/sa27

動态檢視:

sar 1#預設顯示 CPU 狀态,1 秒顯示一次

sar 1 10

sar -P   0   1   10

sar 最大特點是可以監控所有狀态

sar -r 1 檢視記憶體

sar -n ALL 檢視所有

sar -b 1 10 sar -I irq#

sar -I ALL 1 0

sar -r -f /tmp/file-n-r-b-m sar -s 15:00:00 -e 15:30:00

繼續閱讀