#命令預覽
1.top
2.ps
3.nice
4.kill
5.IOStat
6.mpstat
7.vmstat
8.df
9.du
10.netstat
11.ss
#首先我們先來了解一下什么是進程
#進程:是linux用來表示正在運行的程序的一種抽象概念,Linux系統上所有運行的東西都可以稱為進程
1.top命令:動態查看進程相關信息
#提示:前五行是系統整體的統計信息
#詳解相關命令意思
#第一行:任務隊列信息,和uptime命令的執行結果相同
[root@ctos1 ~]# uptime
10:29:45 up 9:11, 2 users, load average: 0.00, 0.01, 0.05
#內容詳解
10:29:45 #顯示的是當前時間
up 9:11 #系統運行時間,格式為時:分
2 users #當前登錄用戶數
load average:0.00,0.01,0.5 #系統負載,三個數值分別為1分鐘、5分鐘、15分鐘前到現在的平均值
#第二行:進程信息
Tasks: 121 total, 2 running, 119 sleeping, 0 stopped, 0 zombie
#內容詳解
Tasks:
121 total #進程總數
2 running #正在運行的進程數
119 sleeping #睡眠的進程數
0 stopped #停止的進程數
0 zombie #僵尸進程數
#第三行:cpu信息
%Cpu(s): 0.0 us, 0.2 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.2 si, 0.0 st
#內容詳解
0.0 us #系統用戶進程使用CPU百分比
0.2 sy #內核空間占用CPU百分比
0.0 ni #用戶進程空間內改變優先級的進程占用cpu百分比
99.7 id #空前的CPU百分比
0.0% wa # IO等待占用CPU的百分比
0.0% hi #硬中斷(Hardware IRQ)占用CPU的百分比
0.2% si # 軟中斷(Software Interrupts)占用CPU的百分比
#第四五行:內存信息,和free -m命令的執行結果一樣
#內容詳解
Mem:1865308 total #物理內存總大小
125604 free #空閑的內存
520128 used #使用的物理內存總大小
1219576 buff/cache #用作內核緩存的內存量
swap:209714 total #交換分區總量
0 used #使用的交換分區大小
2097149 free #空閑的
#進程狀態
#內容詳解
PID #進程ID
USER #進程所有者的用戶名
PR #進程的調度的優先級
NI #NICE值,負值表示高優先級,正值表示低優先級
VIRT #進程使用的虛擬內存
RES #進程使用的虛擬內存總量,單位KB
SHR #進程使用的共享內存,單位為kb S #進程狀態,有五種狀態,D:不可中斷的睡眠狀態,R:運行,S:睡眠,T:停止,Z:僵尸進程
%CPU #上次更新到現在的cpu時間占用百分比
%MEM #使用的物理內存百分比
TIME+ #使用的CPU時間總計,單位1/100秒
COMMAND #命令行/命令名
#top常用的快捷鍵
默認3s刷新一次
空格:立即刷新
q:退出
M:按內存大小排序
P:按CPU大小排序
N:按PID來排序
<>:翻頁
2.ps查看系統進程狀態
#內容詳解
USER:進程擁有者
PID :進程的ID號
%CPU :CPU占用百分比
%MEM :占用內存的百分比
VSZ: 占用虛擬內存的大小,單位KB
RSS: 占用物理內存的大小,單位KB
TTY: 當前進程執行的終端號
STAT: 進程的狀態
START:進程開始時間
TIME :進程實際使用CPU時間
COMMAND:實際命令
#擴展:查看進程的其他常用命令
pstree #是以進程樹的形式顯示
pgrep #是以進程名字或屬性來顯示查找進程的PID
3.nice進程控制
Linux系統中每一個進程都有一個優先級PR(priotity),PR值越小,優先級越高,就會被優先執行,NICE值可以自己設定,NI的正負影響到PR值,可以通過設定NI來提升或降低進程的優先級
#例子:以nice值為-20運行top命令
[root@ctos1 ~]# nice -n -20 top
#修改進程的優先級 #
例如:將PID為33192的進程的NICE值修改為10
[root@ctos1 ~]# renice 10 33192
4.kill終止進程
kill命令是發送一個信號給進程,默認是發送15(TERM)終止
#語法格式:kill PID
#例子:將PID為32813的進程終止
#可以先使用ps aux查看進程
[root@ctos1 ~]# kill 32813
#加-9:強制中斷
[root@ctos1 ~]# kill -9 32813
#使用pkill結束http所有進程
#可以使用pidof查看http相關的進程PID號
[root@ctos1 ~]# pidof httpd
34505 34504 34503 34502 34501 34500
#結束httpd的所有進程
[root@ctos1 ~]# pkill -9 httpd
#收集系統運行狀態信息
#先來安裝一個后面命令需要使用的包
[root@ctos1 ~]# yum install sysstat -y
5.iostat:查看設備或分區的io相關統計
#主要用戶監控系統設備的io負載情況 #語法和相關參數
#使用
#輸出命令解釋
Device:設備名
tps:該設備每秒的傳輸次數
KB_read/s:每秒從設備讀取的數據量
KB_wrtn/s:每秒向設備寫入的數據量
KB_read:讀取的總數據量
KB_wrtn:寫入的總數據量
#使用-d參數:顯示磁盤的使用狀態
#-x參數:顯示和io相關的擴展數據
6.mpstat:查看處理器(CPU)相關的統計
#mpstat----report processors related statistics(處理器相關的報告統計)
#mpstat,全稱為Multiprocessor Statistics。是實時系統監控工具
#查看幫助:man mpstat
#命令執行格式
#使用
#輸出命令解釋
CPU: 處理器編號,all表示統計信息計算為所有處理器之間的平均值
%usr: 用戶下,CPU利用率百分比。
%nice: 具有nice優先級的用戶下,CPU利用率百分比。
%sys: 系統級(內核)執行時發生的CPU利用率百分比
%Iowait: 顯示系統具有未完成磁盤I/O請求時,CPU或CPU空閑的時間百分比。
%irq: 系統服務于硬中斷的時間開銷的百分比
%soft: 系統服務于軟中斷開銷的時間開銷百分比
%steal: 虛擬機管理程序服務另一個虛擬處理器時虛擬CPU或CPU無意中等待的時間百分比。 %guest: CPU運行虛擬處理器所花費的時間百分比。
%idle: CPU空閑的百分比
7.vmstat:查看虛擬內存相關的統計
#vmstat --- report virtual memory statistics(報告虛擬內存的統計信息)
#語法:vmstat [options] [delay [count]]
#查看幫助:man vmstat
#使用
#輸出命令解釋
r:等待執行的任務數
b:表示阻塞的進程
swap:虛擬內存已使用的大小
free:空閑的物理內存的大小
buff:已用的緩沖大小
cache:已用的緩存大小
si:每秒從磁盤讀入虛擬內存的大小
so:每秒虛擬內存寫入磁盤的大小
bi:塊設備每秒接收的塊數量
bo:塊設備每秒發送的塊數量
in:每秒CPU的中斷次數
cs:每秒上下文切換次數
us:用戶CPU時間
sy:系統CPU時間
id:空閑CPU時間
wa:等待io時間
8.df命令:查看磁盤使用情況
#常用的參數
-a 全部文件系統列表
-h 方便閱讀方式顯示
-i 顯示inode信息
#使用-i參數查看inode的使用情況
#使用-h查看磁盤的使用情況
9.du命令:顯示文件或目錄的大小
語法格式:
du [OPTION]... [FILE]...
du [OPTION]... --files0-from=F
#常用參數
-s或--summarize 僅顯示總計。
-h或--human-readable 以K,M,G為單位,提高信息的可讀性。
#使用
#查看/test目錄的總大小,和/test目錄下各個文件的大小
[root@game ~]# du -sh /test/
8.0K /test/
[root@game ~]# du -sh /test/*
4.0K /test/1.txt
4.0K /test/2.txt
10.netstat:提供有關路由和網絡連接的信息
#首先需要安裝net-tools包才有netstat命令
[root@ctos1 ~]# yum install net-tools -y
#常用的參數
-a (all) 顯示所有選項,默認不顯示LISTEN相關。
-t (tcp) 顯示tcp連接。
-u (udp) 顯示udp連接。
-n 拒絕顯示別名,能顯示數字的全部轉化成數字。
-l 列出有在 Listen (監聽) 的服務狀態。
-p 顯示建立相關鏈接的程序名
-r 顯示路由信息,路由表
#使用man netstat可以獲取更多的幫助信息
#使用
11.ss
#概述:ss是Socket Statistics的縮寫,用來獲取socket統計信息,它可以顯示和netstat類似的內容。
#優點:ss的優勢在于它能夠顯示更多更詳細的有關TCP和連接狀態的信息,比netstat更快速更高效,當服務器的socket連接數量變得非常大時,優勢就顯而易見了。
#常用的參數
格式: ss [options] [ FILTER ]
-a (all)顯示所有 -l 顯示本地打開的所有端口
-p 顯示每個進程具體打開的socket
-t 顯示tcp socket
-u 顯示udp socket
-n 不解析服務名
-s 列出當前socket詳細信息
#使用man ss可以獲取更多的幫助信息
#使用
#使用-s參數列出當前socket詳細信息
12.其他相關查看信息
#查看CPU信息
lscpu 或cat /proc/cpuinfo
#查看內存信息
[root@ctos1 ~]# cat /proc/meminfo
#查看虛擬內存的使用觸發值
[root@ctos1 ~]# cat /proc/sys/vm/swAppiness 30
#查看系統上使用的模塊
[root@ctos1 ~]# cat /proc/modules
#查看系統分區信息
[root@ctos1 ~]# cat /proc/partitions
major minor #blocks name
8 0 20971520 sda
8 1 1048576 sda1
8 2 19921920 sda2
11 0 9177088 sr0
253 0 17821696 dm-0
253 1 2097152 dm-1