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
它顯示出 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命令時,如果不采用任何的可選項,則其顯示的信息是非常有限的,而且往往只顯示當前用戶所運行的程序。支持多種命令選項: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 命令顯示系統內存的使用情況,包括物理內存、交換內存(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查看虛擬內存系統,獲得有關進程、虛存、頁面交換空間及 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是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的輸出結果可以分為兩個部分: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: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
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态