day26:系統運維命令2
1、iostat/iotop命令
預設這個命令沒有安裝,需要安裝sysstat命令(同sar命令一起安裝)
iostat這個命令用於檢視系統的輸入輸出裝置及cpu的使用情況,其特點是顯示磁碟的讀寫情況及cpu的使用情況,同vmstat一樣,iostat也有一個弱點,不能針對某個程式進行深入分析,只能系統的檢視:
常用選項: -x
1
2
3
4
5
6
|
[root@localhost ~] # iostat -x /dev/sda
Linux 3.10.0-693.el7.x86_64 (localhost.localdomain) 2018年01月23日 _x86_64_ (1 CPU) avg-cpu: %user % nice %system %iowait %steal %idle
0.05 0.00 0.15 0.05 0.00 99.76
Device: rrqm /s wrqm /s r /s w /s rkB /s wkB /s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 0.01 0.10 0.05 3.89 3.42 99.74 0.01 48.01 21.97 100.13 8.00 0.12 |
我們主要重點關注%util這一項,表示被I/O消耗的cpu百分比(I/O有多長時間在佔用CPU的),如果這個值特別大,說明磁碟i/0很差(很忙碌),則需要檢查是那些程式在頻繁的讀寫:
這個時候,我們需要用到iotop命令:
安裝: yum install -y iotop
[root@localhost ~]# iotop #動態排序顯示
Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s
Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % syst~ze 21
2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd]
3 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kso~qd/0]
在iotop的執行結果中,可以很直觀顯示那些程式在對磁碟進行讀寫,並且會動態的排序:
可以使用快捷鍵“o”來顯示只有I/O輸出的程式:
2. free命令
free命令可以顯示當前系統未使用的和已使用的記憶體數目,還可以顯示被核心使用的記憶體緩衝區。
常用選項 -h
Python
[root@localhost ~]# free -h total used free shared buffers cached Mem: 979M 533M 446M 6.6M 9.8M 228M -/+ buffers/cache: 295M 684M Swap: 2.0G 0B 2.0G
1 2 3 4 5 |
[root@localhost ~]# free -h total used free shared buffers cached Mem: 979M 533M 446M 6.6M 9.8M 228M –/+ buffers/cache: 295M 684M Swap: 2.0G 0B 2.0G |
可以很直觀的顯示各項資料的大小
公式:total=used + free + buffers + cache
total:記憶體總數;
used:已經使用的記憶體數;
free:空閒的記憶體數;
shared:當前已經廢棄不用;
buffers:快取記憶體數;
cached:快取記憶體數。
在CentOS 7.2+版本,free -h的結果如下:
Python
[root@chengzi ~]# free -h total used free shared buff/cache available Mem: 994M 369M 153M 50M 470M 407M Swap: 999M 304M 695M
1 2 3 4 |
[root@chengzi ~]# free -h total used free shared buff/cache available Mem: 994M 369M 153M 50M 470M 407M Swap: 999M 304M 695M |
我們只需要關注available的值,它包含free和buffer/cache剩餘部分,即就是真實的剩餘實體記憶體。
3. ps命令
ps命令是Process Status的縮寫。ps命令用來列出系統中當前執行的那些程式。ps命令列出的是當前那些程式的快照,就是執行ps命令的那個時刻的那些程式,如果想要動態的顯示程式資訊,就可以使用top命令。
linux上程式有5種狀態:
1. R 執行 runnable (on run queue)(正在執行或在執行佇列中等待)
2. S 中斷 sleeping (休眠中, 受阻, 在等待某個條件的形成或接受到訊號)
3. D 不可中斷 uninterruptible sleep (usually IO) (收到訊號不喚醒和不可執行, 程式必須等待直到有中斷髮生)
D狀態的程式很少見,但也可以人為設定,這類程式非常佔用系統CPU資源,會使得CPU的load average 變高,而CPU的使用率卻體現不高。
4. Z 僵死a defunct (”zombie”) process (程式已終止, 但程式描述符存在, 直到父程式呼叫wait4()系統呼叫後釋放)
5. T 停止 traced or stopped(程式收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU訊號後停止執行執行)
T 狀態的程式也可以人為操作,如vmstat
Python
[root@chengzi ~]# vmstat 2 procs ———–memory———- —swap– —–io—- -system– ——cpu—– r b swpd free buff cache si so bi bo in cs us sy id wa st 8 0 312100 139868 0 490508 0 0 1 1 0 1 1 0 99 0 0 0 0 312100 139868 0 490508 0 0 0 0 123 124 0 0 100 0 0 0 0 312100 139868 0 490508 0 0 0 0 117 105 0 0 100 0 0 ^Z [1]+ Stopped vmstat 2 #使用Ctrl+Z暫停程式,可以檢視vmstat的狀態為T [root@chengzi ~]# ps aux |grep vmstat root 12893 0.0 0.1 148308 1352 pts/1 T 09:48 0:00 vmstat 2 root 12895 0.0 0.0 112648 952 pts/1 S+ 09:48 0:00 grep –color=auto vmstat
1 2 3 4 5 6 7 8 9 10 11 |
[root@chengzi ~]# vmstat 2 procs —————–memory————— —–swap— ——–io—— –system— ———cpu——– r b swpd free buff cache si so bi bo in cs us sy id wa st 8 0 312100 139868 0 490508 0 0 1 1 0 1 1 0 99 0 0 0 0 312100 139868 0 490508 0 0 0 0 123 124 0 0 100 0 0 0 0 312100 139868 0 490508 0 0 0 0 117 105 0 0 100 0 0 ^Z [1]+ Stopped vmstat 2 #使用Ctrl+Z暫停程式,可以檢視vmstat的狀態為T [root@chengzi ~]# ps aux |grep vmstat root 12893 0.0 0.1 148308 1352 pts/1 T 09:48 0:00 vmstat 2 root 12895 0.0 0.0 112648 952 pts/1 S+ 09:48 0:00 grep —color=auto vmstat |
(測試完後,可以用fg命令將vmstat恢復到前臺顯示)
常用引數:-aux 顯示所有包含其他使用者的行程
Python
# 檢視php的程式 [root@chengzi ~]# ps aux |grep `php` USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND nginx 1075 0.0 1.1 308456 11832 ? S Nov04 0:18 php-fpm: pool blog nginx 1076 0.0 2.1 318824 22088 ? S Nov04 0:19 php-fpm: pool blog nginx 1077 0.0 1.9 316356 19720 ? S Nov04 0:16 php-fpm: pool blog nginx 1078 0.0 1.1 308516 11932 ? S Nov04 0:18 php-fpm: pool blog nginx 1079 0.0 2.3 320960 24240 ? S Nov04 0:19 php-fpm: pool blog nginx 1080 0.0 1.1 308056 11480 ? S Nov04 0:15 php-fpm: pool blog nginx 1081 0.0 2.5 322920 26184 ? S Nov04 0:17 php-fpm: pool blog nginx 1083 0.0 1.9 316672 19836 ? S Nov04 0:16 php-fpm: pool blog root 12885 0.0 0.0 112648 952 pts/1 R+ 09:40 0:00 grep –color=auto php root 20922 0.0 0.1 225668 1092 ? Ss Mar06 84:30 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# 檢視php的程式 [root@chengzi ~]# ps aux |grep `php` USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND nginx 1075 0.0 1.1 308456 11832 ? S Nov04 0:18 php–fpm: pool blog nginx 1076 0.0 2.1 318824 22088 ? S Nov04 0:19 php–fpm: pool blog nginx 1077 0.0 1.9 316356 19720 ? S Nov04 0:16 php–fpm: pool blog nginx 1078 0.0 1.1 308516 11932 ? S Nov04 0:18 php–fpm: pool blog nginx 1079 0.0 2.3 320960 24240 ? S Nov04 0:19 php–fpm: pool blog nginx 1080 0.0 1.1 308056 11480 ? S Nov04 0:15 php–fpm: pool blog nginx 1081 0.0 2.5 322920 26184 ? S Nov04 0:17 php–fpm: pool blog nginx 1083 0.0 1.9 316672 19836 ? S Nov04 0:16 php–fpm: pool blog root 12885 0.0 0.0 112648 952 pts/1 R+ 09:40 0:00 grep —color=auto php root 20922 0.0 0.1 225668 1092 ? Ss Mar06 84:30 php–fpm: master process (/usr/local/php/etc/php–fpm.conf) |
其中STAT項一些符號的含義:
+ 前臺程式
< 高優先順序程式
N 低優先順序程式
L 記憶體中被鎖了記憶體分頁(極少出現)
s 主程式
相關文章
- uname命令顯示系統資訊?linux系統運維命令Linux運維
- Linux(六):系統運維常用命令Linux運維
- Liunx運維(十二)-Liunx系統常用內建命令運維
- 運維初級實踐——Linux系統命令教程運維Linux
- 運維審計系統運維
- IT管理運維工單系統如何賦能新運維運維
- 【命令】運維常用命令運維
- docker 快速運維命令Docker運維
- Windows 10系統運維之OpenSSHWindows運維
- 運維工單系統哪家好?運維
- Linux運維命令重要嗎?運維入門Linux運維
- uname命令顯示系統資訊?學習linux運維怎麼樣Linux運維
- 立足信創國產化運維,打造安全可控IT運維管理系統運維
- Linux 系統日常運維 9 大技能,搞定 90% 日常運維Linux運維
- Linux運維筆記-日常操作命令總結(2)Linux運維筆記
- SUN系統維護命令大全(轉)
- 總部系統內控統一運維日誌系統運維
- dble運維命令彙總運維
- Oracle 常用運維命令整理Oracle運維
- ogg日常運維命令運維
- 運維文件:網站監控系統運維網站
- 【運維必看】Linux命令之lsblk命令運維Linux
- Kafka 0.10 常用運維命令Kafka運維
- 運維的常用命令運維
- Linux日常運維管理命令Linux運維
- 運維自動化之賬單系統運維
- 運維文件:伺服器監控系統運維伺服器
- 運維文件:系統監控及告警配置運維
- 資訊系統安全運維整改參考運維
- linux 運維 命令 + 運維需要掌握些什麼東西Linux運維
- Linux系統運維面試題,Linux運維經典面試題講解Linux運維面試題
- chattr命令如何使用?Linux運維核心命令Linux運維
- 暢聊Linux系統運維的未來Linux運維
- Django搭建CMDB系統完整[14](運維記錄)Django運維
- 智慧充電樁遠端運維管理系統運維
- D版CentOS作業系統運維筆記CentOS作業系統運維筆記
- BUG管理系統運維記錄(bugfree)運維
- 系統批量運維管理器Fabric詳解運維