本教程的目的是介紹一些可用的免費(fèi)性能分析工具來對 UNIX 系統(tǒng)性能進(jìn)行監(jiān)控和管理,并提供了如何分析和解決 UNIX 環(huán)境中性能問題的指導(dǎo)。
UNIX 有以下需要進(jìn)行監(jiān)控和調(diào)整的主要資源類型:
CPU
內(nèi)存
磁盤空間
通信線路
I/O 時(shí)間
網(wǎng)絡(luò)時(shí)間
主要有以下五個(gè)組件,隨著總系統(tǒng)時(shí)間的推移而變化:
| 組件 | 描述 |
|---|---|
| 用戶狀態(tài) CPU | 在用戶狀態(tài)下,CPU 運(yùn)行用戶程序的所花費(fèi)的時(shí)間。它包括用于執(zhí)行庫函數(shù)調(diào)用的時(shí)間,但是不包括自己在內(nèi)核中花費(fèi)的時(shí)間。 |
| 系統(tǒng)狀態(tài) CPU | 在系統(tǒng)狀態(tài)下,CPU 花費(fèi)在運(yùn)行程序上的時(shí)間。所有的 I/O 例程均需要內(nèi)核服務(wù)。程序員可以通過使用阻塞 I/O 傳輸來影響這個(gè)值。 |
| I/O 時(shí)間和網(wǎng)絡(luò)時(shí)間 | 這些是花費(fèi)在移動(dòng)數(shù)據(jù)和 I/O 請求服務(wù)的時(shí)間 |
| 虛擬內(nèi)存的性能 | 這包括了上下文的切換和交換。 |
| 應(yīng)用程序 | 花費(fèi)在運(yùn)行其他程序的時(shí)間--系統(tǒng)沒有為這個(gè)應(yīng)用程序提供服務(wù)是因?yàn)榱硪粋€(gè)應(yīng)用程序在當(dāng)前狀態(tài)下持有 CPU。 |
UNIX 提供了以下重要工具來估量和調(diào)整 UNIX 系統(tǒng)的性能:
| 命令 | 描述 |
|---|---|
| nice/renice | 修改運(yùn)行程序的調(diào)度優(yōu)先級(jí)。 |
| netstat | 打印網(wǎng)絡(luò)連接,路由表,接口狀態(tài),無效連接和多播成員。 |
| time | 測量一個(gè)普通命令的運(yùn)行時(shí)間或資源的使用情況。 |
| uptime | 系統(tǒng)平均負(fù)載。 |
| ps | 顯示當(dāng)前進(jìn)程的快照。 |
| vmstat | 顯示虛擬內(nèi)存信息的統(tǒng)計(jì)。 |
| gprof | 顯示調(diào)用關(guān)系圖資料。 |
| prof | 進(jìn)程性能分析。 |
| top | 顯示系統(tǒng)的任務(wù)。 |