LINUX教程,linux系統基礎性能工具

 2023-10-06 阅读 30 评论 0

摘要:文章目錄介紹uptime---簡單查看基本時間和負載top---實時系統進程狀態監控ps---查看當前系統進程信息快照free---簡單顯示系統內存使用情況vmstat---查看虛擬內存系統狀態iostat---監視系統磁盤活動輸入輸出netstat---顯示網絡連接、路由表和網絡接口信息sar---對系統活動信息

文章目錄

        • 介紹
        • uptime---簡單查看基本時間和負載
        • top---實時系統進程狀態監控
        • ps---查看當前系統進程信息快照
        • free---簡單顯示系統內存使用情況
        • vmstat---查看虛擬內存系統狀態
        • iostat---監視系統磁盤活動輸入輸出
        • netstat---顯示網絡連接、路由表和網絡接口信息
        • sar---對系統活動信息進行全面 收集/報告/保存
        • /proc(待更新)

介紹

uptime—簡單查看基本時間和負載

uptime 通過一行信息顯示:當前的時間,系統啟動執行時長,有幾個用戶登錄,系統(1、5、15分鐘內)平均負載。

LINUX教程、系統負載是處于可運行runnable或不可中斷uninterruptable狀態的進程的平均數。可運行狀態的進程要么正在使用 CPU 要么在等待使用 CPU。 不可中斷狀態的進程則正在等待某些 I/O 訪問,例如等待磁盤 IO。負載均值的意義根據系統中 CPU 的數量不同而不同,負載為 1 對于一個只有單 CPU 的系統來說意味著負載滿了,而對于一個擁有 4 CPU 的系統來說則意味著 75% 的時間里都是空閑的。

root@ubuntu:~# uptime08:58:46 up 8 days,  1:05,  4 users,  load average: 0.01, 0.02, 0.00

top—實時系統進程狀態監控

它顯示出 CPU 的使用、內存的使用、交換內存、緩存大小、緩沖區大小、過程控制、用戶和更多命令。它也會顯示內存和 CPU 使用率過高的正在運行的進程,含義說明如下:

//    當前時間      系統已經運行時間  當前用戶數量   平均負載(類似timeup,相應最近5、10和15分鐘內的平均負載)
top - 02:06:23 up 7 days, 16:29,  4 users,  load average: 0.00, 0.00, 0.00
//     總任務數量     運行任務數量   休眠任務數量    停止任務數量   僵尸進程數量
Tasks: 238 total,   1 running, 237 sleeping,   0 stopped,   0 zombie
// CPU占比 用戶空間  內核空間    nice進程  idle空閑  io等待   硬件中斷  軟件中斷  
%Cpu(s):  5.4 us,  3.0 sy,  0.0 ni, 91.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
// 內存使用率   物理內存總量    使用中的內存總量   空閑內存總     緩存的內存量       
KiB Mem:   2029920 total,  1678308 used,   351612 free,    82656 buffers
// swap交換分區 交換區總量      使用的交換區總量  空閑交換區總量   緩沖的交換區總量
KiB Swap:  1023996 total,    11152 used,  1012844 free.   841576 cached Mem
// 各進程狀態
// PID 用戶名 調度優先級 nice值 虛擬內存 駐留內存 共享內存 進程的狀態 CPU占比 內存占比 全部CPU時間 命令       PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                         2327 wwyy      20   0 1151116  97384  45476 S  6.0  4.8   5:18.25 compiz      1118 root      20   0  389644  65580  27148 S  2.3  3.2   2:21.71 Xorg        2546 wwyy      20   0  662264  34004  23120 S  1.0  1.7   0:58.32 gnome-terminal       1 root      20   0   33920   4144   2676 S  0.0  0.2   0:01.38 init           2 root      20   0       0      0      0 S  0.0  0.0   0:00.01 kthreadd        3 root      20   0       0      0      0 S  0.0  0.0   0:01.03 ksoftirqd/0      5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H    7 root      20   0       0      0      0 S  0.0  0.0   0:04.98 rcu_sched      8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh     

常用選項參數:
‘d’ - Delay time 3.0 seconds // 指定刷新間隔時間
‘p’ - PID monitoring Off (show all processes) // 指定pid進程信息
‘i’ - Idle tasks On (show all tasks) // 顯示僵尸進程
‘c’ - Command line Off (name, not cmdlin // 顯示命令行而非命令名稱

ps—查看當前系統進程信息快照

ps用于顯示一段進程的信息瞬間快照,ps命令時,如果不采用任何的可選項,則其顯示的信息是非常有限的,而且往往只顯示當前用戶所運行的程序。支持多種命令選項:UNIX、BSD、CNU方式;
可用選項: -u 指定用戶 -a 全部用戶 -p 指定pid

linux測試io性能、常見的用方法舉例如下:
查看系統上全部進程信息 ps aux

root@ubuntu:~# ps axu // a 顯示中端下包括其他用戶全部程序 x 不以終端機來區分 u 以用戶為主格式顯示程序狀態
//用戶名     PID cpu合內存占用 虛存size 實際內存 終端 進程的狀態 進程啟動時間和日期 命令
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.2  33920  4144 ?        Ss   Aug15   0:01 /sbin/init
root          2  0.0  0.0      0     0 ?        S    Aug15   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    Aug15   0:01 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   Aug15   0:00 [kworker/0:0H]
root          7  0.0  0.0      0     0 ?        S    Aug15   0:06 [rcu_sched]
root          8  0.0  0.0      0     0 ?        S    Aug15   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        S    Aug15   0:00 [migration/0]
root         10  0.0  0.0      0     0 ?        S    Aug15   0:00 [watchdog/0]
root         11  0.0  0.0      0     0 ?        S    Aug15   0:00 [kdevtmpfs]
root         12  0.0  0.0      0     0 ?        S<   Aug15   0:00 [netns]
root         13  0.0  0.0      0     0 ?        S<   Aug15   0:00 [perf]
root         14  0.0  0.0      0     0 ?        S    Aug15   0:00 [khungtaskd]
root         15  0.0  0.0      0     0 ?        S<   Aug15   0:00 [writeback]
root         16  0.0  0.0      0     0 ?        SN   Aug15   0:00 [ksmd]
root         17  0.0  0.0      0     0 ?        SN   Aug15   0:00 [khugepaged]

free—簡單顯示系統內存使用情況

free 命令顯示系統內存的使用情況,包括物理內存、交換內存(swap)和內核緩沖區內存。

root@ubuntu:~# freetotal       used       free     shared    buffers     cached
Mem:       2029920    1698952     330968      19472      85432     844572
-/+ buffers/cache:     768948    1260972
Swap:      1023996      11152    1012844
// Mem 行是內存的使用情況。
// -/+ buffers/cache :表示物理內存的緩存統計
// Swap 行是swap空間的使用情況。
// total 列顯示系統總的可用物理內存 和 交換空間大小。
// used 列顯示已經被分配的物理內存(包含buffers與cach使用的數量,其中可能部分緩存并未實際使用)和交換空間。
// free 列顯示還有多少物理內存和交換空間未分配。
// shared 列顯示被共享使用的物理內存大小。
// buff/cache 列顯示被 buffer 和 cache 使用的物理內存大小,-表示真實使用,+表示可用。
// available 列顯示還可以被應用程序使用的物理內存大小。

buffer/cached是為了提高系統IO read的性能用作緩存的空間,當程序使用內存時,buffer/cached會很快地被使用。估算空閑的物理內存時可參考-/+ buffers/cache的free的值,但實際的可用內存要小于這個值,因為不能所有的buffers和cached都釋放。
常用選項:-h 更友好的顯示 -s [n]間隔幾秒輸出一次

root@ubuntu:~# free -htotal       used       free     shared    buffers     cached
Mem:          1.9G       1.6G       321M        19M        83M       824M
-/+ buffers/cache:       752M       1.2G
Swap:         999M        10M       989M

vmstat—查看虛擬內存系統狀態

vmstat查看虛擬內存系統,獲得有關進程、虛存、頁面交換空間及 CPU活動的信息。

root@ubuntu:~# vmstat
// procs r運行隊列中進程數量 b等待IO的進程數量
// memory  swpd使用虛擬內存大小 free可用內存 buff已使用 cache緩存
// swap si每秒寫入交換區 so每秒交換區寫磁盤 
// io bi每秒讀取塊 bo每秒寫塊
// system in每秒中斷數 cs每秒上下文切換
// cpu us用戶空間耗時 sy內核(系統)耗時 id 掛起時間  wa等io時間 st 虛擬系統耗時
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st3  0  11152 349200  84060 842768    0    0    18    17   44  127  1  0 98  0  0

什么是LINUX?其他常用選項:

vmstat [-a] [-n] [-S unit] [delay [ count]]
vmstat [-s] [-n] [-S unit]
vmstat [-m] [-n] [delay [ count]]
vmstat [-d] [-n] [delay [ count]]
vmstat [-p disk partition] [-n] [delay [ count]]
vmstat [-f]
vmstat [-V]
-a:顯示活躍和非活躍內存
-f:顯示從系統啟動至今的fork數量 。
-m:顯示slabinfo
-n:只在開始時顯示一次各字段名稱。
-s:顯示內存相關統計信息及多種系統活動數量。
delay:刷新時間間隔。如果不指定,只顯示一條結果。
count:刷新次數。如果不指定刷新次數,但指定了刷新時間間隔,這時刷新次數為無窮。
-d:顯示磁盤相關統計信息。
-p:顯示指定磁盤分區統計信息
-S:使用指定單位顯示。參數有 k 、K 、m 、M。默認單位為K

iostat—監視系統磁盤活動輸入輸出

iostat是I/O statistics(輸入/輸出統計)的縮寫,iostat工具將對系統的磁盤操作活動進行監視。它的特點是匯報磁盤活動統計情況,同時也會匯報出CPU使用情況。

root@ubuntu:~# iostat
Linux 4.4.0-148-generic (ubuntu) 	08/24/2020 	_x86_64_	(1 CPU)
// cpu使用 用戶占用 NICE值用戶占比 系統內核占比 io等待占比 空閑占比
avg-cpu:  %user   %nice %system %iowait  %steal   %idle1.25    0.02    0.49    0.02    0.00   98.22
//設備傳輸     每秒的傳輸次數  每秒設備讀取 每秒設備寫入   讀取總數據量  寫入總數據量     
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
fd0               0.00         0.00         0.00          8          0
sda               1.37        17.66        15.32    1525555    1323388

其他常用選項:
-c 只輸出CPU -d 只輸出設備信息 -x 顯示詳細擴展信息
iostat interval [count] // interval 采樣間隔 count 采樣次數

root@ubuntu:~# iostat -x -d 3 2
Linux 4.4.0-148-generic (ubuntu) 	08/24/2020 	_x86_64_	(1 CPU)
Device:   rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
fd0     0.00     0.00    0.00    0.00     0.00     0.00     8.00     0.00   42.00   42.00    0.00  42.00   0.00
sda     0.02     0.77    1.08    0.28    17.45    15.16    47.97     0.00    1.48    0.89    3.74   0.26   0.04
Device:   rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
fd0     0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sda     0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
// rrqm/s: 每秒對該設備的讀請求被合并次數,文件系統會對讀取同塊(block)的請求進行合并
// wrqm/s: 每秒對該設備的寫請求被合并次數
// r/s: 每秒完成的讀次數
// w/s: 每秒完成的寫次數
// rkB/s: 每秒讀數據量(kB為單位)
// wkB/s: 每秒寫數據量(kB為單位)
// avgrq-sz:平均每次IO操作的數據量(扇區數為單位)
// avgqu-sz: 平均等待處理的IO請求隊列長度
// await: 平均每次IO請求等待時間(包括等待時間和處理時間,毫秒為單位)
// svctm: 平均每次IO請求的處理時間(毫秒為單位)
// %util: 采用周期內用于IO操作的時間比率,即IO隊列非空的時間比率

netstat—顯示網絡連接、路由表和網絡接口信息

netstat命令的功能是顯示網絡連接、路由表和網絡接口信息,可以讓用戶得知有哪些網絡連接正在運作。
netstat的輸出結果可以分為兩個部分:1、Active Internet connections 有源TCP連接,其中"Recv-Q"和"Send-Q"指接收隊列和發送隊列。這些數字一般都應該是0。如果不是則表示軟件包正在隊列中堆積。這種情況只能在非常少的情況見到。2、Active UNIX domain sockets 有源Unix域套接口(和網絡套接字一樣,但是只能用于本機通信,性能可以提高一倍)。

root@ubuntu:~# netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp6       1      0 ip6-localhost:36918     ip6-localhost:ipp       CLOSE_WAIT 
tcp6       1      0 ip6-localhost:36884     ip6-localhost:ipp       CLOSE_WAIT 
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  24     [ ]         DGRAM                    10457    /dev/log
unix  2      [ ]         DGRAM                    15683    
unix  3      [ ]         STREAM     CONNECTED     14247    
unix  3      [ ]         STREAM     CONNECTED     15406    
unix  3      [ ]         STREAM     CONNECTED     14489    
unix  3      [ ]         STREAM     CONNECTED     14273    @/tmp/dbus-vEQpM97tju
unix  3      [ ]         STREAM     CONNECTED     14217    @/com/ubuntu/upstart-session/1000/1902
unix  3      [ ]         STREAM     CONNECTED     38414    @/tmp/dbus-o5oOWEwf
unix  3      [ ]         STREAM     CONNECTED     14702    /var/run/dbus/system_bus_socket
// Proto:顯示連接使用的協議。
// RefCnt:表示連接到本套接口上的進程號。
// Types:顯示套接口的類型。
// State:顯示套接口當前的狀態。
// Path:表示連接到套接口的其它進程使用的路徑名。

centos性能優化。其他常用選項:
-a (all) 顯示所有選項,默認不顯示LISTEN相關。 -t 僅顯示tcp相關選項。 -u 僅顯示udp相關選項。-l 僅列在 Listen的服務狀態。
-n 拒絕顯示別名,能顯示數字的全部轉化成數字。 -p 顯示建立相關鏈接的程序名。 -r 顯示路由信息,路由表
-e 顯示擴展信息,例如uid等
-s 按各個協議進行統計
-c 每隔一個固定時間,執行該netstat命令。

sar—對系統活動信息進行全面 收集/報告/保存

sar:System Activity Reporter系統活動情況報告,是目前Linux上最為全面的系統性能分析工具之一,可以從多方面對系統的活動進行報告,包括:文件的讀寫情況、系統調用的使用情況、磁盤I/O、CPU效率、內存使用狀況、進程活動及IPC有關的活動等,內容非常多。

sar [options] [-A] [-o file] [t [n]]
t為采樣間隔,n為采樣次數(默認值是1),-o file表示將命令結果以二進制格式存放在文件file中。常用選項
-A:所有報告的總和。相當于:-bBdFHqrRSuvwWy -I SUM -I XALL -m ALL -n ALL -u ALL -P ALL
-u:CPU利用率
-v:進程、I節點、文件和鎖表狀態。
-d:硬盤使用報告。
-r:沒有使用的內存頁面和硬盤塊。
-g:串口I/O的情況。
-b:緩沖區使用情況。
-a:文件讀寫情況。
-c:系統調用情況。
-R:進程的活動情況。
-y:終端設備活動情況。
-w:系統交換活動

舉例:

root@ubuntu:~# sar -u
Linux 4.4.0-148-generic (ubuntu) 	08/24/2020 	_x86_64_	(1 CPU)
//  all表示全部cpu平均值  用戶占比 用戶nice占比 內核系統  io等待占比 虛擬系統占比  //空閑占比
09:38:48 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
09:39:11 AM     all      1.75      0.00      1.40      0.00      0.00     96.85
09:39:27 AM     all      1.50      0.00      1.24      0.00      0.00     97.26
Average:        all      1.65      0.00      1.34      0.00      0.00     97.01
root@ubuntu:~# sar -r
Linux 4.4.0-148-generic (ubuntu) 	08/24/2020 	_x86_64_	(1 CPU)
09:38:48 AM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
09:39:11 AM    361580   1668340     82.19     85224    844108   2507888     82.12    667492    592340        76
09:39:27 AM    360960   1668960     82.22     85240    844132   2507888     82.12    667508    592356        52
Average:       361270   1668650     82.20     85232    844120   2507888     82.12    667500    592348        64
oot@ubuntu:~# sar -d
Linux 4.4.0-148-generic (ubuntu) 	08/24/2020 	_x86_64_	(1 CPU)
09:38:48 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
09:39:11 AM    dev2-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:39:11 AM    dev8-0      0.09      0.00      4.90     56.00      0.00      0.00      0.00      0.00
09:39:11 AM    dev8-1      0.09      0.00      4.90     56.00      0.00      0.00      0.00      0.00
09:39:11 AM    dev8-2      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:39:11 AM    dev8-5      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:39:27 AM    dev2-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:39:27 AM    dev8-0      0.33      0.00     11.49     35.20      0.00      0.00      0.00      0.00
09:39:27 AM    dev8-1      0.33      0.00     11.49     35.20      0.00      0.00      0.00      0.00
09:39:27 AM    dev8-2      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:39:27 AM    dev8-5      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:       dev2-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:       dev8-0      0.18      0.00      7.55     41.14      0.00      0.00      0.00      0.00
Average:       dev8-1      0.18      0.00      7.55     41.14      0.00      0.00      0.00      0.00
Average:       dev8-2      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:       dev8-5      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

/proc(待更新)

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/126282.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息