1. 程式人生 > >Linux-系統管理-常用命令(上)

Linux-系統管理-常用命令(上)

以下介紹常用的幾個系統分析的命令以及常用方法:

vmstat

vmstat 是Virtual Meomory Statistics(虛擬記憶體統計)的縮寫,很多Linux發行版本都預設安裝了此命令工具。當然,不止對虛擬記憶體有統計,還可以利用vmstat命令可以對程序狀態、CPU活動等進行監視,不足就是不能對某個程序跟蹤分析。

vmstat 命令語法:
vmstat [-V] [-n] [delay [count]]

-V,顯示當前版本
-n,表示迴圈輸出資訊時,頭部資訊只出現一次。
delay,兩次輸出之間的時間間隔
count,表示按照“delay”指定的時間間隔統計的次數,預設為1
[[email protected].com ~]# 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
        1  0   0      4852724 465532 19557332    0    0   3   33     0
0 3 0 97 0 0 0 0 0 4853232 465532 19557340 0 0 0 176 10946 11871 6 0 94 0 0 1 0 0 4852520 465532 19557824 0 0 0 0 11010 10857 6 1 93 0 0 1 0 0 4853360 465532 19557672 0 0 0 5112 11034 9379 9 1 90 0 0 3 0 0 4851908 465532
19558160 0 0 0 0 10934 9371 3 1 96 0 0
下面解釋一下:
proce
    r 表示執行和等待的cpu時間片的程序數,這個值如果長期大於系統cpu執行緒數,說明CPU不足。
    b 表示等待資源的程序數,比如正在等待I/O或者記憶體交換等

memory
    swpd 表示切換到記憶體交換區的記憶體大小(單位KB),實際分析是,以si、so為準。
    free 當前空閒的記憶體數量
    buff 表示buffers cache 的記憶體數量,一般對塊裝置的讀寫才需要緩衝。
    cache page cached 的記憶體數量,一般作為檔案系統進行快取,,頻繁訪問的檔案都會被快取。如果cache值較大,說明快取的檔案數量較多,
如果此時io中的bi比較小,說明檔案系統效率比較好。
swap
    si 表示由磁碟調入記憶體。
    so 表示有記憶體調入磁碟。
一般情況下,這兩個值都為零

io 
    bi 從塊裝置讀入資料的總量,既讀磁碟,(KB/s)
    bo 寫入快裝置的資料量,既寫磁碟,(KB/s))
這裡bi+bo 參考值為1000,如果超過1000,而且wa值比較大,則表示系統磁碟I/o有問題,考慮提升磁碟讀寫
system
    in 某一時間間隔內,觀測到的每秒裝置中斷數。
    cs 列表表示每秒產生的上下文切換數。
上面這兩個值越大,由核心消耗的CPU時間越多。
cpu 
    us顯示使用者程序消耗的cpu時間百分比。如果長期高於50%,需要考慮優化業務程式了。
    sy顯示核心程序消耗的cpu時間百分比。
us+sy 大於70% 說明cpu資源有些緊張了。
    id顯示cpu處於空閒的時間百分比。
    wa顯示io等待所佔用cpu時間的百分比,wa參考值為20%,超過20%說明io等待已經很嚴重了。因此等待的
    原因可能是磁碟大量隨機讀寫,也可能是磁碟或者磁碟控制器的頻寬瓶頸(主要是塊級操作。)
    綜述可見,對cpu評估中,重點注意procs中r列,cpu中的us、sy、id列。

sar

sar是分析系統性能的重要工具,用法如下:
sar [option] [-o filename] [interval] [count] ]

option(常用),
-A ,顯示系統所有資源裝置(記憶體,cpu,磁碟)的執行狀況。
-u , 顯示cpu在取樣時間內的系統負載。
-P ,指定對機器的哪一個cpu進行取樣。
-d ,顯示系統硬碟在取樣時間內的執行資訊。
-r ,顯示系統記憶體在取樣時間內的使用狀況。
-b ,顯示緩衝區在取樣時間內的使用情況。
-v ,顯示程序、檔案、節點和鎖表狀態。
-n ,顯示網路執行狀態,引數後面可跟DEV(顯示網路介面資訊)、EDEV(顯示網路錯誤的統計資料)、SOCK(顯示套接字資訊)、和FULL(顯示前三引數的所有資訊)。
-q ,顯示執行佇列的大小,它與系統當時的平均浮在相同。
-R ,顯示程序在取樣時間內的活動情況。
-y , 顯示終端裝置在取樣時間內的活動情況。
-w ,顯示系統交換在取樣時間內的活動情況。
-o filename 表示將輸出結果以二進位制形式輸出到某個檔案中。
interval ,表示取樣間隔。
count , 表示取樣次數,預設為1.
[@example.com ~]# sar -P 2 1 5 
Linux 2.6.18-128.el5 (example.com)     2016年09月18213824秒       CPU     %user     %nice   %system   %iowait    %steal     %idle
2138252      0.00      0.00      0.00      0.00      0.00    100.00
2138262      0.00      0.00      0.00      0.00      0.00    100.00
2138272      0.00      0.00      0.00      0.00      0.00    100.00
2138282      0.00      0.00      0.00      0.00      0.00    100.00
2138292      0.00      0.00      0.00      1.00      0.00     99.00
Average:            2      0.00      0.00      0.00      0.20      0.00     99.80
%user:使用者程序消耗的cpu時間比例。
%nice:列顯示執行正常程序所消耗cpu的時間比例。
%system:顯示系統程序消耗的cpu時間比例。
%iowait:列顯示了io等待所消耗的cpu時間。
%steal:表示在記憶體相對緊張的情況下,pagein強制對不同頁面進行的steal處理。
%idle:列顯示了cpu在空閒狀態下的時間百分比。
最後一行的average是對上面內容求的平均值。

如上,可以指定某一個cpu,對其負載監控,這樣可以結果有的程式做成了單執行緒,這樣雖然cpu整體消耗不高,但是單執行緒就不行了

檢視機器歷史性能資訊
sar -b -s 10:00:00 -e  16:00:00 -f /var/log/sa/sa10
-b 磁碟快取的使用情況,
-s 開始時間, 
-e結束時間,起始時間的格式都是:hh:mm:ss   
-f 指定sar的歷史日誌,預設位置在/var/log/sa/目錄下
[@example.com ~]# sar -b -s 10:00:00 -e  10:50:00 -f /var/log/sa/sa10  
Linux 2.6.18-128.el5 (example.com)     20160910100001秒       tps      rtps      wtps   bread/s   bwrtn/s
10100113.83      0.12     13.71      1.63   1344.93
102001272.92    250.34     22.58   2011.54   1650.26
10300111.25      0.02     11.23      0.13   1118.80
10400111.87      0.01     11.86      0.11   1143.23
Average:        77.50     62.65     14.84    503.59   1314.32

iostat

iostat是i/o statistic的縮寫,主要功能是對系統的磁碟io操作進行監視。不是linux預設安裝的,需要安裝一個開源的工具包sysstat,安裝完畢會多出iostat、sar、mpstat三個命令。

iostat語法如下
iostat [-c|-d] [-k] [-t] [-x [device]] [interval[count] ]

-c 顯示cpu的使用情況,顯示的含義和sar的基本一致,不在用例說明。
-d 顯示磁碟的使用情況
-k 每秒按照kb為單位顯示
-t 打印出統計資訊開始執行的時間。
-x device 指定要統計的磁碟裝置,預設為所有磁碟裝置。
interval,指定兩次統計間隔的時間。
count,按照interval指定的時間間隔進行統計的次數。
[@example.com ~]# iostat -d  1 2            
Linux 2.6.18-128.el5 (example.com)     20160918日

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               8.65        34.40       569.09  886282530 14664213986
sda1              0.00         0.00         0.00       5991       2637
sda2              0.67         1.23        15.77   31779879  406401849
sda3              1.53         2.64        60.98   67940779 1571254746
sda4              0.00         0.00         0.00          6          0
sda5              1.40         1.48       277.72   38223426 7156219000
sda6              0.00         0.01         0.02     289718     555488
sda7              0.00         0.01         0.02     322742     530104
sda8              0.00         0.01         0.02     321038     530080
sda9              0.00         0.01         0.02     308854     532080
sda10             5.05        28.99       214.54  747089393 5528188002
sdb               1.33        46.39       588.21 1195318411 15156936736
sdb1              1.33        46.39       588.21 1195317483 15156936736

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               0.00         0.00         0.00          0          0
sda1              0.00         0.00         0.00          0          0
sda2              0.00         0.00         0.00          0          0
sda3              0.00         0.00         0.00          0          0
sda4              0.00         0.00         0.00          0          0
sda5              0.00         0.00         0.00          0          0
sda6              0.00         0.00         0.00          0          0
sda7              0.00         0.00         0.00          0          0
sda8              0.00         0.00         0.00          0          0
sda9              0.00         0.00         0.00          0          0
sda10             0.00         0.00         0.00          0          0
sdb               0.00         0.00         0.00          0          0
sdb1              0.00         0.00         0.00          0          0

Blk_read/s 表示每秒讀取的資料塊數
Blk_wrtn/s 表示每秒寫的資料塊數
Blk_read 表示讀取的所有塊數
Blk_wrtn 表示寫入的所有塊數

需要說明的,第一次輸出的是系統自啟動開始到統計時的所有傳輸資訊,第二次輸出的資料才代表在監測的時間段內系統的傳輸值。
可以通過Blk_read/s Blk_wrtn/s的數值表現做一下簡要分析,比如Blk_read/s 長期居高不下,說明磁碟的讀操作頻繁,可以考慮將讀取的資料放到記憶體中進行操作;
如果Blk_wrtn/s長期居高不下,說明磁碟寫操作頻繁,可以考慮優化磁碟(提升轉速,使用raid等),或者優化程式(簡化寫的次數,優化寫的資訊的格式化等)。

[@example.com ~]# iostat -x /dev/sda2 2 3
Linux 2.6.18-128.el5 (example.com)     2016年09月19日

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.94    0.00    1.78    0.32    0.00   95.96

Device:         rrqm/s   wrqm/s   r/s   w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda2              0.01     1.38  0.08  0.59     1.23    15.77    25.23     0.04   63.08  11.63   0.78

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    0.12    0.00    0.00   99.88

Device:         rrqm/s   wrqm/s   r/s   w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda2              0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    0.06    0.00    0.00   99.94

Device:         rrqm/s   wrqm/s   r/s   w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda2              0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

iostat -x 跟sar -u 和 -d 的內容基本一致
主要說一下:
rrqm/s 表示每秒進行合併的讀運算元量
wrqm/s 表示每秒進行合併的寫運算元量
r/s 每秒完成度i/o裝置的次數
w/s 每秒完成寫i/o裝置的次數
rsec/s 每秒讀取的扇區數
wsec/s 每秒寫入的扇區數

free

[root@NJ-37-212 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:         31994      27240       4753          0        441      17816
-/+ buffers/cache:       8983      23010
Swap:        16499          0      16499

大概解釋一下:
total 系統識別的記憶體總數
used 系統當前已經使用的記憶體數
free 系統空閒的記憶體數
shared 多個程序共享的記憶體總額
buffers Buffer Cache和cached Page Cache 磁碟快取的大小
-buffers/cache 的記憶體數:used - buffers - cached
+buffers/cache 的記憶體數:free + buffers + cached

這裡需要說明,可用的memory=free memory+buffers+cached

free -s ,使用 -s引數,可以實現以指定時間間隔對記憶體進行不間斷監控

[[email protected]37-212 ~]# free -m -s 5
             total       used       free     shared    buffers     cached
Mem:         31994      27254       4739          0        441      17829
-/+ buffers/cache:       8984      23009
Swap:        16499          0      16499

             total       used       free     shared    buffers     cached
Mem:         31994      27255       4738          0        441      17830
-/+ buffers/cache:       8984      23009
Swap:        16499          0      16499

uptime

uptime輸出資訊:系統現在的時間,系統自上次開機到現在的執行時間,系統目前有多少使用者登入,系統分別在1、5、15min的平均負載情況

[@example.com ~]# uptime
 00:42:11 up 298 days,  6:31, 16 users,  load average: 0.27, 0.67, 1.14

這裡需要注意load average,這裡的負載資訊跟sar -q的記錄的當前系統的任務佇列長度的值一樣,表示在取樣時間內等待被處理的任務數,
通常情況下,這三個數不能大於系統的cpu邏輯核數,如果長期大於cpu邏輯核數,則會較嚴重影響系統性能。

相關推薦

Linux-系統管理-常用命令

以下介紹常用的幾個系統分析的命令以及常用方法: vmstat vmstat 是Virtual Meomory Statistics(虛擬記憶體統計)的縮寫,很多Linux發行版本都預設安裝了此命令工具。當然,不止對虛擬記憶體有統計,還可以利用vmst

linux文件與目錄管理相關命令

文件時間 額外 print num sys direct base -- 文件的時間 學習一下linux文件與目錄管理相關命令 pwd,cd,ls,touch,stat,basename,dirname,cp,mv,rm,tree,mkdir,rmdir,ln,file p

DAY-8 Linux基礎及常用命令4

打開 ip地址 grep 軟件包 linux基礎 tro mks 官網 vim 一、制作swap分區(命令) swapon –s 查看當前激活狀態的swap分區 free –m 以m為單位查看分區 swapoff關閉分區 swapon打開分區 添加swap分區——mks

DAY-9 Linux基礎及常用命令5

mod conf 自己的路 linux操作 解包 二進制安裝 netstat iptables usr 一、Samba(類似共享網盤) 1、功能:Linux操作系統給win用戶共享文件用 2、如何部署 》》準備環境:iptables –F(清除防火墻)、systemctl

linux系統管理工具sar

sed 監控內存 用戶態 打開 沒有 3.6 block 1.5 3.4 linux系統管理工具sar 監控網卡流量 #sar -n DEV 1 1 (1秒內取1次) Linux 3.10.0-123.9.3.el7.x86_64 (iZ25wvw5wozZ)

Linux運維常用命令 轉載

1  刪除0位元組檔案find-type f -size 0 -exec rm -rf {} \; 2  檢視程序 按記憶體從大到小排列 ps -e  -o "%C  : %p : %z : %a"|sort -k5 -nr 3  按cpu利用率從大到小排列 ps -e  -o "%C  : %p : %z

docker-3-常用命令

命令 mage help inf dock fff idt 單個 info 幫助命令: docker version docker info docker --help 鏡像命令: docker images: 列出本地主機上的鏡像 各個選項說明:

安裝Linux系統與常見命令

啟動服務 emc img shel init命令 活動 c89 -h 進一步 安裝Linux系統:重置root管理員密碼 RPM軟件包管理器:通過將安裝規則與源代碼打包到一起,降低軟件安裝難度。 Yum軟件倉庫:通過將大量常用的RPM軟件包存放到一起,解決軟件包之間的依賴關

Linux的一些常用命令

linux 快捷鍵1、ls 列出本地址上檔案,  -a 列出所有(包括隱藏檔案)  -l 按照列表方式顯示  -t 按照時間方式排序 2、touch 建立檔案 3、  echo 'abc' > 檔名 寫入檔案內容(覆蓋之前的內容)  echo 'cdc' >> 檔名 在檔案後面新增

Linux常用命令程序的安裝與管理

rpm 編譯安裝 侯良金 linux 安裝軟件 Linux常用命令(四)程序的安裝與管理一、Linux應用程序基礎1、Linux應用程序的組成■普通的可執行程序文件。一般保存在“/usr/bin”目錄中,普通用戶即可執行。■服務器程序、管理程序文件。一般保存在“/usr/sbin”

Linux常用命令賬號和組管理

linux 用戶 組 常用命令 侯良金 Linux常用命令(五)賬號和組管理 一、管理用戶賬號 1、用戶賬號的分類■超級用戶:root用戶是Linux系統中默認的超級用戶賬號,對本主機擁有最大的權限,類似於Windows 系統中的Administrator用戶。■普通用戶:

Linux常用命令LVM邏輯卷管理

侯良金 linux lvm 邏輯卷 動態擴容 Linux常用命令(八)LVM邏輯卷管理一、LVM概述 LVM是Linux系統中對磁盤分區進行管理的一種邏輯機制,它是建立在硬盤和分區之上,文件系統之下的一個邏輯層,在建立文件系統時屏蔽了下層的磁盤分區布局,能夠在保持現有數據不變

linux系統常用命令

shu 解析 txt 相關 name roc upd less 位置 管理 在UNIX/linux系統中,一切皆為文件;若非文件,則為進程。首先認識文件系統: linux文件系統 /var - 經常變化的(variable)文件,諸如日誌或數據庫等 /usr - 包含絕大部

Linux系統》之"皮毛系列" Linux系統常用命令

通過前兩篇文章的介紹,我們知道Linux系統的理念是:一切皆檔案。而檔案,就要涉及到命名規範,如下所示: 1)除了/之外,所有字元都合法 2)有些字元最好不要用,如空格符、製表符、字元@#$&()-等 3)避免使用.作為普通檔名的第一個字元。 4)大小寫敏感 今天我們來

linux常用命令程序管理

一、程序檢視 (一)top工具 1.top  實時得檢視程序的狀態,以及系統的一些資訊(如 CPU、記憶體資訊等) 第一行資料: 內容 解釋 top 當前程式名稱 11:05:18 當前的系統的時間 up 8 days,17:12 該機器已經啟動了多長時間 1 user 當

linux常用命令檔案作業系統與磁碟管理

1.df -h  檢視磁碟容量 2.du -h  檢視目錄容量 3.du -h -d  檢視目錄深度 du -h -d 0 ~  檢視一級目錄資訊 du -h -d 1 ~檢視二級目錄資訊 4.du

Linux系統下的20個常用命令

2. lsblk命令 "lsblk"就是列出塊裝置。除了RAM外,以標準的樹狀輸出格式,整齊地顯示塊裝置。 root@tecmint:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 232.9G 0 dis

Linux基礎系列:常用命令2

用戶和組 查看 -- tdi 作業二 其他 配置文件 解鎖 gid 1 作業一: 2 1) 新建用戶natasha,uid為1000,gid為555,備註信息為“master” 3 groupadd -g 555 natasha 4 useradd -u

Linux基礎系列:常用命令5_nfs服務與nginx服務

ash .com access emctl 磁盤 keepalive roo inux iptable 介紹:   NFS 是Network File System的縮寫,即網絡文件系統。一種使用於分散式文件系統的協定,由Sun公司開發,於1984年向外公布。功能是通過

004-Linux下操作目錄常用命令mkdir

刪除目錄 note 當前 目錄 name ges 否則 技術分享 mdi 1,mkdir 創建目錄 當前目錄下創建一個目錄 mkdir dir 創建含有子目錄的方式 mkdir -p dir/t11/t1