文檔目錄:
---------------------------------------分割線:正文--------------------------------------------------------
命令詳解:
lsof=list open files,列舉系統中已經被打開的文件,根據文件可以找到對應的進程,也可以根據進程找到打開的文件
1、顯示使用文件的進程
lsof /var/log/messages #顯示使用文件的進程
COMMAND:命令,即進程名
PID:進程號
USER:進程的所有者
FD:文件描述符,0-標准輸出,1-標准輸入,2-標准錯誤,u-文件被打開並處於讀取/寫入模式,r-表示該文件被打開並處於只讀模式,w-表示該文件被打開並處於寫入模式
TYPE:文件類型,REG(regular)為普通文件
DEVICE:磁盤的名稱
SIZE/OFF:文件的大小
NODE:索引節點
NAME:文件名稱
2、指定進程所打開的文件
lsof -c rsyslogd #指定進程所打開的文件
3、指定進程號所打開的文件
lsof -p 57238 #指定進程號所打開的文件
4、監聽指定的協議、端口和主機等信息,顯示符合條件的進程信息。
lsof -i #查看所有進程
lsof -i tcp #顯示所有tcp網絡連接的進程信息
lsof -i :22 #顯示端口為22的進程,常用
lsof -i tcp:22 #顯示同事滿足TCP和端口22的進程
5、顯示指定用戶使用的文件
lsof -u root #使用-u指定用戶使用的文件
6、顯示所有socket文件
lsof -U #使用-U顯示所有socket文件
命令詳解:
輸出當前的系統時間、系統開機到現在的運行時間、目前有多少用戶在線和系統平均負載等信息
1、uptime #顯示系統運行時間及負載信息
命令詳解:
free命令用於顯示系統內存狀態,具體包括系統物理內存、虛擬內存、共享內存和系統緩存等
total-代表內存總大小
used-表示使用的實際內存大小
free-剩余物理內存大小(未分配、純剩余)
share:共享內存大小、無需關注
buff/cache:緩沖(緩沖如:cpu到io硬盤,硬盤寫入速度慢 需要先將一部分數據緩存到內存)和緩存(如:io硬盤到cpu,從硬盤讀取 需要先把數據臨時放內存里面 大小
available:實際可使用的內存大小;(free+buff/cache只分配,但未使用的內存)
1、查看系統內存
free #默認顯示字節數
free -m #以MB為單位顯示內存使用情況
free -h #根據實際大小自動轉換成KB、GB、MB單位顯示
真實剩余內存=free+buff/cache=489M+317M=806M
換算關系:
total=used + free + buff/cache
available=free + buff/cache(分配但未使用的內存)
其中:used已使用內存,和buff/cache被占用的內存沒有關系;
2、定時查詢內存:
free -h -s 10 #使用-s選項定時刷新內存的使用情況,單位為秒
命令詳解:
iftop是一款實時流量監控工具,可用於監控TCP/IP連接等,必須用root用戶身份運行。
安裝方法參考:https://www.cnblogs.com/chaichuan/p/4442610.html
1、不接受任務參數啟動iftop命令監控流量
iftop #默認監聽第一塊網卡,-i可以指定網卡
界面上顯示的類似刻度尺的刻度范圍,是以標尺的形式顯示流程圖形的長條
中間的<=或>=兩個箭頭,表示的是流量的方向
TX:發送流量
RX:接收流量
TOTAL:總流量
Cum:運行iftop到目前時間的總流量
peak:流量峰值
rates:分別表示過去2s、10s、40s的平均流量
2、常用命令組合
iftop -nNBP #-n不進行DNS解析,-N數字形式端口號,-P顯示端口號,-B,以字節流為單位,默認為bit顯示流量
命令詳解:
vmstat=virtual memory statistics,使用vmstat可以對操作系統的內存信息、進程狀態和CPU活動等進行監視,但只能對系統的整體情況進行統計,無法對某個進程深入分析。
1、顯示虛擬內存的使用情況
vmstat #省略-間隔時間與次數參數,僅顯示一次報告后退出
vmstat 5 #表示每5秒更新一次輸出信息,循環輸出,ctrl+c退出
vmstat 5 6 #表示每5秒更新一次輸出信息,統計6次后停止輸出
第1列:procs
r-運行和等待CPU時間片的進程數,b-正在等待資源的進程數
第2列:memory
swpd:表示使用虛擬內存的大小
free:表示當前空閑的物理內存數量
buff:表示buffers的內存數量
cache:表示cache的內存數量
第3列:swap
si(swap in):列表示由磁盤調入內存,也就是內存進入內存交換區的數量
so(swap out):列表示由內存調入磁盤,也就是內存交換區進入內存的數量
第4列:I/O項顯示磁盤讀寫狀況
bi列表示從塊設備讀入數據的總量(即讀磁盤)(塊/s)
bo列表示寫入塊設備數據的總量(即讀磁盤)(塊/s)
第5列:system顯示采集間隔內發生的中斷數
in列表示在某一時間間隔中觀測到的每秒設備中斷數
cs列表示每秒產生的上下文切換次數
第6列:CPU項顯示了CPU的使用狀態
us列顯示了用戶進程消耗的CPU時間百分比
sy列顯示了系統(內核)進程消耗的cpu時間百分比
id列顯示了CPU處在空閑狀態的時間百分比
wa列顯示了I/O等待所占用的CPU時間百分比
st列顯示了虛擬機占用的CPU時間的百分比
2、顯示活躍和非活躍內存
vmstat -a 2 5 #-a內容增加了inact與active選項,分別代表非活躍與活躍內存
3、查看內存使用的詳細情況
vmstat -s
4、查看磁盤的讀/寫
vmstat -d
5、查看dev/sda1磁盤的讀寫
vmstat -p /dev/sda1
reads:來自該分區的讀的次數
reads sectors:來自於該分區的讀扇區的次數
writes:來自於該分區的寫的次數
requested writes:來自於該分區的寫請求的次數
命令詳解:
mpstat=multiprocessor statistics,一種實時監控工具,輸出cpu的統計信息,存放在/proc/stat,可查詢所有cpu平均信息, 也可以查特定的cpu信息
mpstat的最大特點:可以查看多核cpu中每個計算核心的統計數據,而vmstat只能查看系統整體的cpu情況
1、顯示cpu統計信息
mpstat #省略-間隔時間與次數參數,僅顯示一次報告后退出
mpstat 5 6 #表示每5秒更新一次輸出信息,統計6次后停止輸出
第一列:當前時間
CPU:all表示所有cpu,0表示第一個cpu
%user:用戶進程消耗的CPU時間(%)
%nice:nice值為負進程的CPU時間(%)
%sys 核心時間(%)
%iowait 硬盤IO等待時間(%)
%irq 硬中斷時間(%)
%soft 軟中斷時間(%)
%steal 顯示虛擬機管理器在服務另一個虛擬處理器時虛擬CPU處在非自願等待下花費時間的百分比
%guest 顯示運行虛擬處理器時CPU花費時間的百分比
%idle CPU除去等待磁盤IO操作外的因為任何原因而空閑的時間閑置時間(%)
2、顯示指定cpu信息的統計
mpstat -P 0 #顯示第一個cpu的信息
命令詳解:
iostat=I/O statistics,主要功能是對系統磁盤I/O操作進行監控,它的輸出主要是顯示磁盤讀寫操作的統計信息,同時也會給出CPU的使用情況,同vmstat命令一樣,不能對某個進程進行深入分析,僅對整體情況進行分析
1、iostat #省略-間隔時間與次數參數,僅顯示一次報告后退出
%user:CPU處在用戶模式下的時間百分比
%nice:CPU處在帶NICE值的用戶模式下的時間百分比
%system:CPU處在系統模式下的時間百分比
%iowait:CPU等待輸入輸出完成時間的百分比
%steal:管理程序維護另一個虛擬處理器時,虛擬CPU的無意識等待時間百分比
%idle:CPU空閑時間百分比
device:磁盤名稱
tps:每秒鍾發送到的I/O請求數
Blk_read/s:每秒讀取的block數
Blk_wrtn/s:每秒寫入的block數
Blk_read:讀入的block總數
Blk_wrtn:寫入的block總數
2、定時顯示所有信息
iostat 2 3 #每2秒更新一次信息,共顯示3次
3、只顯示磁盤統計信息
iostat -d
iostat -d -k #-k以KB為單位顯示數據
4、查看擴展信息
iostat -d -x -k #-x顯示擴展信息
rrqm/s: 每秒進行 merge 的讀操作數目。即 rmerge/s
wrqm/s: 每秒進行 merge 的寫操作數目。即 wmerge/s
r/s: 每秒完成的讀 I/O 設備次數。即 rio/s
w/s: 每秒完成的寫 I/O 設備次數。即 wio/s
rkB/s: 每秒讀K字節數。是 rsect/s 的一半,因為每扇區大小為512字節。
wkB/s: 每秒寫K字節數。是 wsect/s 的一半。
avgrq-sz: 平均每次設備I/O操作的數據大小 (扇區)。
avgqu-sz: 平均I/O隊列長度。
rsec/s: 每秒讀扇區數。即 rsect/s
wsec/s: 每秒寫扇區數。即 wsect/s
r_await:每個讀操作平均所需的時間
不僅包括硬盤設備讀操作的時間,還包括了在kernel隊列中等待的時間。
w_await:每個寫操作平均所需的時間
不僅包括硬盤設備寫操作的時間,還包括了在kernel隊列中等待的時間。
await: 平均每次設備I/O操作的等待時間 (毫秒)。
svctm: 平均每次設備I/O操作的服務時間 (毫秒)。
%util: 一秒中有百分之多少的時間用於 I/O 操作,即被io消耗的cpu百分比
備注:如果 %util 接近 100%,說明產生的I/O請求太多,I/O系統已經滿負荷,該磁盤可能存在瓶頸。如果 svctm 比較接近 await,說明 I/O 幾乎沒有等待時間;如果 await 遠大於 svctm,說明I/O 隊列太長,io響應太慢,則需要進行必要優化。如果avgqu-sz比較大,也表示有當量io在等待。
5、只查看cpu的信息
命令詳解:
iptop命令是一款實時監控磁盤I/O的工具,必須以root身份運行,使用iotop命令可以很方便地查看每個進程使用磁盤I/O的情況
1、不接任何參數啟動iotop命令
Total DISK READ:總磁盤讀取速度
Total DISK WRITE:總磁盤讀取速度
TID:進程pid值 PRIO:優先級
USER:用戶
DISK READ:磁盤讀取速度
DISK WRITE:磁盤寫入速度
SWAPIN:從swap分區讀取數據占用的百分比
I/O:I/O占用的百分比
COMMAND:消耗I/O的進程名
命令詳解:
通過sar命令,可以全面地獲取系統的CPU、運行隊列、磁盤I/O、分頁(交換區)、內存、CPU中斷和網絡等硬盤信息
1、sar -u 2 3 #-u顯示系統所有cpu的負載狀態,2,3代表每2秒統計一次,共統計3次
%user:CPU處在用戶模式下的時間百分比
%nice:CPU處在帶NICE值的用戶模式下的時間百分比
%system:CPU處在系統模式下的時間百分比
%iowait:CPU等待輸入輸出完成時間的百分比
%steal:管理程序維護另一個虛擬處理器時,虛擬CPU的無意識等待時間百分比
%idle:CPU空閑時間百分比
2、顯示運行隊列的大小
sar -q 2 3 #使用-q選項顯示運行隊列的大小
runq-sz 運行隊列的長度(等待運行的進程數,每核的CP不能超過3個)
plist-sz 進程列表中的進程(processes)和線程數(threads)的數量
ldavg-1 最后1分鍾的CPU平均負載,即將多核CPU過去一分鍾的負載相加再除以核心數得出的平均值,5分鍾和15分鍾以此類推
ldavg-5 最后5分鍾的CPU平均負載
ldavg-15 最后15分鍾的CPU平均負載
3、顯示系統內存的使用狀況
sar -r 2 3 #使用-r選項顯示系統內存在采樣時間內的使用情況
kbmemfree 空閑的物理內存大小
kbmemused 使用中的物理內存大小
%memused 物理內存使用率
kbbuffers 內核中作為緩沖區使用的物理內存大小,kbbuffers和kbcached:這兩個值就是free命令中的buffer和cache.
kbcached 緩存的文件大小
kbcommit 保證當前系統正常運行所需要的最小內存,即為了確保內存不溢出而需要的最少內存(物理內存+Swap分區)
commit 這個值是kbcommit與內存總量(物理內存+swap分區)的一個百分比的值
4、顯示緩沖區的使用情況
sar -b 2 3 #使用-b顯示緩沖區在采樣時間內的使用情況
tps 磁盤每秒鍾的IO總數,等於iostat中的tps
rtps 每秒鍾從磁盤讀取的IO總數
wtps 每秒鍾從寫入到磁盤的IO總數
bread/s 每秒鍾從磁盤讀取的塊總數
bwrtn/s 每秒鍾此寫入到磁盤的塊總數
5、顯示網絡的運行狀態
sar -n DEV 2 3 #使用-n DEV顯示網絡接口信息
#IFACE 本地網卡接口的名稱
#rxpck/s 每秒鍾接受的數據包
#txpck/s 每秒鍾發送的數據庫
#rxKB/S 每秒鍾接受的數據包大小,單位為KB
#txKB/S 每秒鍾發送的數據包大小,單位為KB
#rxcmp/s 每秒鍾接受的壓縮數據包
#txcmp/s 每秒鍾發送的壓縮包
#rxmcst/s 每秒鍾接收的多播數據包
sar -n EDEV 2 3 #-n EDEV顯示網絡錯誤的統計數據
IFACE 網卡名稱
rxerr/s 每秒鍾接收到的損壞的數據包
txerr/s 每秒鍾發送的數據包錯誤數
coll/s 當發送數據包時候,每秒鍾發生的沖撞(collisions)數,這個是在半雙工模式下才有
rxdrop/s 當由於緩沖區滿的時候,網卡設備接收端每秒鍾丟掉的網絡包的數目
txdrop/s 當由於緩沖區滿的時候,網絡設備發送端每秒鍾丟掉的網絡包的數目
txcarr/s 當發送數據包的時候,每秒鍾載波錯誤發生的次數
rxfram 在接收數據包的時候,每秒鍾發生的幀對其錯誤的次數
rxfifo 在接收數據包的時候,每秒鍾緩沖區溢出的錯誤發生的次數
txfifo 在發生數據包 的時候,每秒鍾緩沖區溢出的錯誤發生的次數
6、查看系統磁盤的讀寫性能
sar -d 2 3 #-d顯示系統所有硬盤設備在采樣時間內的使用情況
DEV 磁盤設備的名稱,如果不加-p,會顯示dev253-0類似的設備名稱,因此加上-p顯示的名稱更直接
tps:每秒I/O的傳輸總數
rd_sec/s 每秒讀取的扇區的總數
wr_sec/s 每秒寫入的扇區的總數
avgrq-sz 平均每次次磁盤I/O操作的數據大小(扇區)
avgqu-sz 磁盤請求隊列的平均長度
await 從請求磁盤操作到系統完成處理,每次請求的平均消耗時間,包括請求隊列等待時間,單位是毫秒(1秒等於1000毫秒),等於尋道時間+隊列時間+服務時間
svctm I/O的服務處理時間,即不包括請求隊列中的時間
%util I/O請求占用的CPU百分比,值越高,說明I/O越慢
命令詳解:
提供基於文本界面的菜單編輯操作方式,以設置不同運行級別下的系統啟動狀態
命令詳解:
一個基於文本界面的系統管理工具,集成了用戶認證管理、防火牆管理、網絡管理和系統管理。
1、安裝:yum -y install setuptool
2、進行set交互界面
1、查詢網卡的基礎參數
ethtool ens33
1、查看網絡接口狀態
mii-tool ens33 #不加參數,顯示精簡信息
mii-tool -v ens33 #-v顯示詳細信息
1、查看服務器型號
dmidecode -s system-product-name #查看服務器型號
2、dmidecode -s system-serial-number #查看序列號關鍵字
3、dmidecode -t memory|more #查看內存信息
1、顯示所有pci設備
lspci #顯示所有pci設備
2、顯示網卡設備信息
lspci -s 02:01.0 #從以上信息得到網卡設備編號
1、顯示進程間的通信狀態
ipcrm -s 0 #清除semid為0的信號集
命令詳解:
rpm=Red Hat Package Manager(Red Hat管理器),幾乎所有的Liunx發行版本都使用了這種形式的命令管理、安裝、更新和卸載軟件
rpm包含五種基礎命令:安裝、卸載、升級、查詢和驗證
1、查看rpm包信息
rpm -qpi 389-ds-base-snmp-1.3.10.2-6.el7.x86_64.rpm #顯示rpm包的版本,創建日期等信息
2、 查看rpm包內容
rpm -qpl 389-ds-base-snmp-1.3.10.2-6.el7.x86_64.rpm #顯示rpm包內的文件
3、查看rpm包的依賴
rpm -qpR 389-ds-base-snmp-1.3.10.2-6.el7.x86_64.rpm #查看安裝次rpm包需要依賴的文件
4、rpm -ivh 389-ds-base-snmp-1.3.10.2-6.el7.x86_64.rpm #-h查看安裝時的進度
5、查看系統是否安裝指定的rpm包
rpm -qa yum #接軟件名
6、卸載rmq包
rpm -e lsof #卸載軟件包
命令詳解:
yum=yellow dog updater modified,是多個Liunx發行版的軟件包管理,如Redhat、Centos、Fedora,yum主要用於自動安裝、升級rpm軟件包,它能自動查找並解決rpm包之前的依賴關系。
1、安裝lsof軟件包
yum -y install lsof
2、檢查安裝列表
yum list lsof