Linux系統管理中需要監控Linux服務器 的性能, Linux本身提供一些很有用的命令和組件, 幾乎所有的Linux發行版都裝備了大量的監控工具,這些工具通過獲取系統狀態從而達到衡量系統健康狀況, 系統管理員可以使用這些工具來找到導致系統性能問題的原因。本文列出的命令是一些常用的基本命令,用來分析和調試系統狀況,比如:
性能瓶頸.
磁盤 (存儲 ) 問題.
CPU和內存的使用.
網絡性能.
#1: top – 進程活動狀態
“top” 命令提供運行系統的動態實時視圖, 比如: 系統進程, 內存、CPU占用. 缺省狀態下, top顯示按CPU使用的進程, 每隔5秒更新一次.
常用熱鍵
如下為”top”命令常用的熱鍵:
熱鍵 說明
t 顯示/關閉概括信息.
m 顯示/關閉內存信息.
A 降序顯示占用的系統資源,可以很容易識別消耗系統資源多的進程.
f 交互模式配置模式, 可以運行一些特定的任務.
o 允許在top命令窗口交互式選擇排序方式 .
r 對指定進程運行 renice 命令.(優先級)
k 對指定進程運行 kill 命令(殺死指定的進程)
z 打開/關閉 彩色/黑白 顯示
=> 相關命令: How do I Find Out Linux CPU Utilization?
#2: vmstat – 系統狀態,內存,CPU使用狀況
“vmstat”命令報告系統進程、內存,頁面、以及 block IO, traps, CPU的使用狀況.
# vmstat 3
輸出:
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 2540988 522188 5130400 0 0 2 32 4 2 4 1 96 0 0
1 0 0 2540988 522188 5130400 0 0 0 720 1199 665 1 0 99 0 0
0 0 0 2540956 522188 5130400 0 0 0 0 1151 1569 4 1 95 0 0
0 0 0 2540956 522188 5130500 0 0 0 6 1117 439 1 0 99 0 0
0 0 0 2540940 522188 5130512 0 0 0 536 1189 932 1 0 98 0 0
0 0 0 2538444 522188 5130588 0 0 0 0 1187 1417 4 1 96 0 0
0 0 0 2490060 522188 5130640 0 0 0 18 1253 1123 5 1 94 0 0顯示內存使用情況
# vmstat -m
獲取活動/非活動的內存頁面狀況
# vmstat -a
=> 相關鏈接: How do I find out Linux Resource utilization to detect system bottlenecks?
#3: w – 查看誰登錄到系統,並且在做什麼事情
w 命令顯示當前登錄到系統的用戶,以及當前運行的進程/命令.
# w <用戶名>
# w root
Sample Outputs:
[root@smtp ~]# w root
12:56:52 up 238 days, 13:52, 3 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 10.10.3.38 12:56 26.00s 0.01s 0.00s vi /etc/hosts
root pts/1 10.10.3.38 12:56 0.00s 0.01s 0.00s w root
root pts/2 10.10.3.38 12:56 3.00s 0.02s 0.00s top
#4: uptime – 系統運行時間
uptime命令可以查看系統已經運行了多長時間,當前登錄的用戶,以及過去1分鐘,5分鐘和15分鐘的系統負載。
# uptime
輸出:
18:02:41 up 41 days, 23:42, 1 user, load average: 0.00, 0.00, 0.00
#5: ps – 顯示系統進程
ps 命令會輸出當前進程的報告,要輸出所有進程,請使用 -A 或 -e 選項:
# ps -A
輸出:
PID TTY TIME CMD
1 ? 00:00:02 init
2 ? 00:00:02 migration/0
3 ? 00:00:01 ksoftirqd/0
4 ? 00:00:00 watchdog/0
5 ? 00:00:00 migration/1
6 ? 00:00:15 ksoftirqd/1
....
.....
4881 ? 00:53:28 java
4885 tty1 00:00:00 mingetty
4886 tty2 00:00:00 mingetty
4887 tty3 00:00:00 mingetty
4888 tty4 00:00:00 mingetty
4891 tty5 00:00:00 mingetty
4892 tty6 00:00:00 mingetty
4893 ttyS1 00:00:00 agetty
12853 ? 00:00:00 cifsoplockd
12854 ? 00:00:00 cifsdnotifyd
14231 ? 00:10:34 lighttpd
14232 ? 00:00:00 php-cgi
54981 pts/0 00:00:00 vim
55465 ? 00:00:00 php-cgi
55546 ? 00:00:00 bind9-snmp-stat
55704 pts/1 00:00:00 psps is just like top but provides more information.