《App后台开发运维与架构实践》第4章 Linux系统
2019獨角獸企業重金招聘Python工程師標準>>>
4.2 常用的命令
4.2.1?全面了解系統資源情況——top
top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源占用情況。
輸入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利用率的統計信息。
| 信息欄 | 含義 |
| 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的交換區是硬盤上的一塊空間。在內存不足的情況下,操作系統先把內存中暫時不用的數據存到硬盤的交換區,騰出內存來讓別的程序運行。
阿里云服務器上的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,管道命令“|”和grep就能把輸出中匹配進程名的行檢索出來。
4.2.3?查看網絡相關信息——netstat
查看服務器的網絡連接情況,比如
- 查看某個端口是否開啟。
- 查看某個端口是由哪個程序開啟。
- 查看某個端口的連接數。
netstat命令的常用參數如下。
- -l:listen,監聽的端口。
- -a:顯示所有的Socket,包括正在監聽。
- -n:顯示數字格式的地址。
- -t:監聽TCP的端口。
- -u:監聽UDP的端口。
- -p:顯示建立相關鏈接的程序名。
4.2.4?查看某個進程打開的所有文件——lsof
lsof(list open files)是一個列出當前系統打開文件的工具。常用的參數如下。
- -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。
轉載于:https://my.oschina.net/lienson/blog/3035433
總結
以上是生活随笔為你收集整理的《App后台开发运维与架构实践》第4章 Linux系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端跨域问题解决方案汇总
- 下一篇: linux 其他常用命令