《App后台开发运维与架构实践》第4章 Linux系统
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
4.2 常用的命令
4.2.1?全面了解系統(tǒng)資源情況——top
top命令是Linux下常用的性能分析工具,能夠?qū)崟r顯示系統(tǒng)中各個進程的資源占用情況。
輸入top命令后,如下所示:
top命令顯示的前5行是統(tǒng)計信息,第一行是基本信息。
| 信息欄 | 含義 |
| 11:25:21 up 19:29 | 當前時間和系統(tǒng)運行時間,格式為時:分。這里表示已經(jīng)運行了19小時29分 |
| 2 users | 當前登錄用戶數(shù) |
| load average:0.00,0.00,0.00 | 系統(tǒng)負載。三個數(shù)值分別為1分鐘、5分鐘、15分鐘前到現(xiàn)在的平均值 |
第二行是任務(wù)的信息。
| 信息欄 | 含義 |
| total | 進程總數(shù) |
| running | 正在運行的進程數(shù) |
| sleeping | 睡眠的進程數(shù) |
| stopped | 停止的進程數(shù) |
| zmobie | 僵尸進程數(shù) |
第三行是CPU利用率的統(tǒng)計信息。
| 信息欄 | 含義 |
| us | User Time,CPU執(zhí)行用戶進程百分比,包括Nice Time |
| sy | System Time,CPU在內(nèi)核運行百分比,包括IRQ百分比 |
| ni | Nice Time,調(diào)整進程優(yōu)先級所用百分比 |
| id | Idle Time,系統(tǒng)空閑百分比 |
| wa | Waiting Time,CPU等待I/O完成所用百分比 |
| hi | Hard?IRQ Time,硬中斷占用的CPU時間百分比 |
| si | Soft IRQ Time,軟中斷占用的CPU時間百分比 |
| st | Steal Time,虛擬服務(wù)占用的CPU時間百分比 |
第四行是內(nèi)存的使用信息。
| 信息欄 | 含義 |
| total | 總物理內(nèi)存 |
| used | 已使用的物理內(nèi)存 |
| free | 空閑的物理內(nèi)存 |
| buffers | 緩沖的總量。存放準備寫入磁盤的數(shù)據(jù) |
| cached | 緩存的總量。存放從磁盤中讀取出來的數(shù)據(jù) |
第五行是交換區(qū)的使用信息。
| 信息欄 | 含義 |
| total | 交換區(qū)的總大小 |
| used | 已使用交換區(qū)的總大小 |
| free | 未使用交換區(qū)的總大小 |
什么是交換區(qū)(Swap)?
Linux的交換區(qū)是硬盤上的一塊空間。在內(nèi)存不足的情況下,操作系統(tǒng)先把內(nèi)存中暫時不用的數(shù)據(jù)存到硬盤的交換區(qū),騰出內(nèi)存來讓別的程序運行。
阿里云服務(wù)器上的Linux系統(tǒng)默認是沒有設(shè)置Swap。由于開啟Swap分區(qū)會導致硬盤I/O性能下降,因此初始狀態(tài)未配置Swap,如果某些應(yīng)用需要開啟Swap分區(qū),也可通過相應(yīng)的命令開啟。
top命令顯示的第6行開始是進程統(tǒng)計信息區(qū)。
| 信息欄 | 含義 |
| PID | 進程id |
| USER | 進程所有者的用戶名 |
| PR | 優(yōu)先級 |
| NI | nice值。負值表示高優(yōu)先級,正值表示低優(yōu)先級 |
| VIRI | 進程使用的虛擬內(nèi)存總量,單位KB |
| RES | 進程使用的、未被換出的物理內(nèi)存大小,單位KB |
| SHR | 共享內(nèi)存大小,單位KB |
| S | 進程狀態(tài)(D=不可中斷的睡眠狀態(tài),R=運行,S=睡眠,T=跟蹤/停止,Z=僵尸進程) |
| %CPU | 上次更新到現(xiàn)在的CPU時間占用百分比 |
| %MEM | 進程使用的物理內(nèi)存百分比 |
| TIME+ | 進程使用的CPU時間總計,單位1/100秒 |
| COMMAND | 命令名/命令行 |
4.2.2?顯示進程狀態(tài)——ps
ps命令是顯示當前系統(tǒng)中進程的狀態(tài),這個命令顯示的只是運行ps命令瞬間的狀態(tài),如果需要顯示不斷更新的狀態(tài),可以使用“top -p 進程id”命令。
ps命令的常用參數(shù)如下。
- a:按用戶名和啟動時間的順序來顯示進程。
- u:顯示所有用戶的所有進程(包括其他用戶)。
- x:顯示無控制終端的進程。
?通過ps,管道命令“|”和grep就能把輸出中匹配進程名的行檢索出來。
4.2.3?查看網(wǎng)絡(luò)相關(guān)信息——netstat
查看服務(wù)器的網(wǎng)絡(luò)連接情況,比如
- 查看某個端口是否開啟。
- 查看某個端口是由哪個程序開啟。
- 查看某個端口的連接數(shù)。
netstat命令的常用參數(shù)如下。
- -l:listen,監(jiān)聽的端口。
- -a:顯示所有的Socket,包括正在監(jiān)聽。
- -n:顯示數(shù)字格式的地址。
- -t:監(jiān)聽TCP的端口。
- -u:監(jiān)聽UDP的端口。
- -p:顯示建立相關(guān)鏈接的程序名。
4.2.4?查看某個進程打開的所有文件——lsof
lsof(list open files)是一個列出當前系統(tǒng)打開文件的工具。常用的參數(shù)如下。
- -p:進程id。
4.2.5 跟蹤數(shù)據(jù)到達主機所經(jīng)路由——traceroute
4.2.6 文件下載/上傳工具——“ssh secure shell client”和“l(fā)rzsz”
- “ssh secure shell client”是一個在Windows下通過ssh連接服務(wù)器的軟件,其自帶了文件的上傳和下載功能。
- lrzsz
lrzsz軟件包,在Linux里可代替FTP上傳和下載。安裝lrzsz只要執(zhí)行命令:
yum -y install lrzsz往Linux服務(wù)器上傳文件,只需在目標文件夾下執(zhí)行如下命令,然后ssh客戶端彈出窗口讓用戶選擇上傳的文件。
rz把Linux服務(wù)器的文件下載到本地,可執(zhí)行如下命令,在ssh客戶端彈出文件窗口讓用戶選擇下載文件的保存路徑。
sz 目標文件4.2.7 查看程序的依賴庫——LD_DEBUG
4.2.8 進程管理利器——supervisor
- 能自動啟動配置好的進程,并監(jiān)控每個進程的狀態(tài)。
- 監(jiān)控的進程如果因為各種原因閃退,能自動重啟該進程。
安裝supervisor命令:
yum install supervisor?其配置文件/etc/supervisord.conf。
為了更好地管理進程監(jiān)控腳本,把進程監(jiān)控腳本放在/etc/supervisord/conf.d/下。例如,為監(jiān)控運行腳本/data/sendmail.sh,創(chuàng)建文件/etc/supervisord/conf.d/mail.conf。
轉(zhuǎn)載于:https://my.oschina.net/lienson/blog/3035433
總結(jié)
以上是生活随笔為你收集整理的《App后台开发运维与架构实践》第4章 Linux系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端跨域问题解决方案汇总
- 下一篇: CentOS7Selinux设置