《App後臺開發運維與架構實踐》第4章 Linux系統

4.2 經常使用的命令

4.2.1 全面瞭解系統資源狀況——top

top命令是Linux下經常使用的性能分析工具,可以實時顯示系統中各個進程的資源佔用狀況。shell

輸入top命令後,以下所示:緩存

top命令顯示的前5行是統計信息,第一行是基本信息。服務器

基本信息
信息欄 含義
11:25:21 up 19:29 當前時間和系統運行時間,格式爲時:分。這裏表示已經運行了19小時29分
2 users 當前登陸用戶數
load average:0.00,0.00,0.00 系統負載。三個數值分別爲1分鐘、5分鐘、15分鐘前到如今的平均值

第二行是任務的信息。網絡

任務信息
信息欄 含義
total 進程總數
running 正在運行的進程數
sleeping 睡眠的進程數
stopped 中止的進程數
zmobie 殭屍進程數

第三行是CPU利用率的統計信息。ssh

CPU利用率統計信息
信息欄 含義
us User Time,CPU執行用戶進程百分比,包括Nice Time
sy System Time,CPU在內核運行百分比,包括IRQ百分比
ni Nice Time,調整進程優先級所用百分比
id Idle Time,系統空閒百分比
wa Waiting Time,CPU等待I/O完成所用百分比
hi Hard IRQ Time,硬中斷佔用的CPU時間百分比
si Soft IRQ Time,軟中斷佔用的CPU時間百分比
st Steal Time,虛擬服務佔用的CPU時間百分比

第四行是內存的使用信息。工具

內存使用信息
信息欄 含義
total 總物理內存
used 已使用的物理內存
free 空閒的物理內存
buffers 緩衝的總量。存放準備寫入磁盤的數據
cached 緩存的總量。存放從磁盤中讀取出來的數據

第五行是交換區的使用信息。性能

交換區使用信息
信息欄 含義
total 交換區的總大小
used 已使用交換區的總大小
free 未使用交換區的總大小

什麼是交換區(Swap)?阿里雲

Linux的交換區是硬盤上的一塊空間。在內存不足的狀況下,操做系統先把內存中暫時不用的數據存到硬盤的交換區,騰出內存來讓別的程序運行。spa

阿里雲服務器上的Linux系統默認是沒有設置Swap。因爲開啓Swap分區會致使硬盤I/O性能降低,所以初始狀態未配置Swap,若是某些應用須要開啓Swap分區,也可經過相應的命令開啓。操作系統

top命令顯示的第6行開始是進程統計信息區。

進程統計信息
信息欄 含義
PID 進程id
USER 進程全部者的用戶名
PR 優先級
NI nice值。負值表示高優先級,正值表示低優先級
VIRI 進程使用的虛擬內存總量,單位KB
RES 進程使用的、未被換出的物理內存大小,單位KB
SHR 共享內存大小,單位KB
S 進程狀態(D=不可中斷的睡眠狀態,R=運行,S=睡眠,T=跟蹤/中止,Z=殭屍進程)
%CPU 上次更新到如今的CPU時間佔用百分比
%MEM 進程使用的物理內存百分比
TIME+ 進程使用的CPU時間總計,單位1/100秒
COMMAND 命令名/命令行

4.2.2 顯示進程狀態——ps

ps命令是顯示當前系統中進程的狀態,這個命令顯示的只是運行ps命令瞬間的狀態,若是須要顯示不斷更新的狀態,可使用「top -p 進程id」命令。

ps命令的經常使用參數以下。

  • a:按用戶名和啓動時間的順序來顯示進程。
  • u:顯示全部用戶的全部進程(包括其餘用戶)。
  • x:顯示無控制終端的進程。
# 顯示全部的進程
ps -aux
# 只顯示某個進程
ps axu|grep 進程名

 經過ps,管道命令「|」和grep就能把輸出中匹配進程名的行檢索出來。

4.2.3 查看網絡相關信息——netstat

查看服務器的網絡鏈接狀況,好比

  • 查看某個端口是否開啓。
  • 查看某個端口是由哪一個程序開啓。
  • 查看某個端口的鏈接數。

netstat命令的經常使用參數以下。

  • -l:listen,監聽的端口。
  • -a:顯示全部的Socket,包括正在監聽。
  • -n:顯示數字格式的地址。
  • -t:監聽TCP的端口。
  • -u:監聽UDP的端口。
  • -p:顯示創建相關連接的程序名。
# 查看系統中啓動的端口
netstat -lntup

# 查看系統中是否開啓80端口
netstat -lntup|grep 80

# 查看系統中80端口的鏈接狀況
netstat -ant|grep 80

4.2.4 查看某個進程打開的全部文件——lsof

lsof(list open files)是一個列出當前系統打開文件的工具。經常使用的參數以下。

  • -p:進程id。
# 查看進程id打開的文件
lsof -p 進程id

4.2.5 跟蹤數據到達主機所經路由——traceroute

4.2.6 文件下載/上傳工具——「ssh secure shell client」和「lrzsz」

  • 「ssh secure shell client」是一個在Windows下經過ssh鏈接服務器的軟件,其自帶了文件的上傳和下載功能。
  • lrzsz

lrzsz軟件包,在Linux裏可代替FTP上傳和下載。安裝lrzsz只要執行命令:

yum -y install lrzsz

往Linux服務器上傳文件,只需在目標文件夾下執行以下命令,而後ssh客戶端彈出窗口讓用戶選擇上傳的文件。

rz

把Linux服務器的文件下載到本地,可執行以下命令,在ssh客戶端彈出文件窗口讓用戶選擇下載文件的保存路徑。

sz 目標文件

4.2.7 查看程序的依賴庫——LD_DEBUG

4.2.8 進程管理利器——supervisor

  • 能自動啓動配置好的進程,並監控每一個進程的狀態。
  • 監控的進程若是由於各類緣由閃退,能自動重啓該進程。

安裝supervisor命令:

yum install supervisor

 其配置文件/etc/supervisord.conf。

爲了更好地管理進程監控腳本,把進程監控腳本放在/etc/supervisord/conf.d/下。例如,爲監控運行腳本/data/sendmail.sh,建立文件/etc/supervisord/conf.d/mail.conf。

相關文章
相關標籤/搜索