在管理 Ubuntu 22.04 伺服器或工作站時,了解如何監控和調校系統效能是非常重要的技能。本文將介紹常用的效能監控工具,以及針對 CPU、記憶體、磁碟和網路的分析與調校方法。
效能監控工具
top - 即時系統監控
top 是 Linux 系統內建的即時系統監控工具,可以顯示 CPU、記憶體使用率以及正在執行的程序。
常用快捷鍵:
P:按 CPU 使用率排序M:按記憶體使用率排序k:終止指定的程序q:退出 top
htop - 增強版系統監控
htop 是 top 的增強版本,提供更友善的圖形介面和更多功能。
安裝 htop:
1
2
| sudo apt update
sudo apt install htop
|
執行 htop:
htop 的優點:
- 彩色顯示,更容易閱讀
- 支援滑鼠操作
- 可以水平和垂直捲動查看所有程序
- 可以直接在介面中終止程序
vmstat - 虛擬記憶體統計
vmstat 用於報告虛擬記憶體、程序、CPU 活動等統計資訊。
1
2
| # 每 2 秒更新一次,共顯示 5 次
vmstat 2 5
|
輸出欄位說明:
r:等待執行的程序數b:處於不可中斷睡眠狀態的程序數swpd:已使用的虛擬記憶體大小free:空閒記憶體大小si/so:從磁碟交換進/出的記憶體大小bi/bo:從區塊裝置讀取/寫入的區塊數us/sy/id/wa:使用者/系統/閒置/等待 I/O 的 CPU 時間百分比
CPU 效能分析
檢視 CPU 資訊
1
2
3
4
5
6
7
8
| # 查看 CPU 詳細資訊
lscpu
# 查看 CPU 核心數
nproc
# 即時監控 CPU 使用率
mpstat -P ALL 1
|
如需安裝 mpstat:
1
| sudo apt install sysstat
|
CPU 負載分析
1
2
3
4
5
| # 查看系統負載
uptime
# 查看詳細負載資訊
cat /proc/loadavg
|
負載平均值解讀:
- 數值小於 CPU 核心數:系統負載正常
- 數值等於 CPU 核心數:系統滿載
- 數值大於 CPU 核心數:系統超載,程序需要等待
記憶體效能分析
記憶體使用狀況
1
2
3
4
5
| # 查看記憶體使用情況(人類可讀格式)
free -h
# 查看詳細記憶體資訊
cat /proc/meminfo
|
記憶體監控
1
2
3
4
5
| # 使用 vmstat 監控記憶體
vmstat -s
# 查看各程序記憶體使用
ps aux --sort=-%mem | head -20
|
Swap 空間管理
1
2
3
4
5
| # 查看 swap 使用情況
swapon --show
# 查看 swappiness 設定值
cat /proc/sys/vm/swappiness
|
磁碟效能分析
磁碟使用狀況
1
2
3
4
5
| # 查看磁碟使用情況
df -h
# 查看目錄大小
du -sh /var/*
|
磁碟 I/O 監控
1
2
3
4
5
6
7
8
| # 安裝 iotop
sudo apt install iotop
# 監控磁碟 I/O
sudo iotop
# 使用 iostat 監控
iostat -xz 1
|
磁碟效能測試
1
2
3
4
5
6
7
8
| # 寫入測試
dd if=/dev/zero of=/tmp/testfile bs=1G count=1 oflag=dsync
# 讀取測試
dd if=/tmp/testfile of=/dev/null bs=1G count=1
# 清理測試檔案
rm /tmp/testfile
|
網路效能分析
網路狀態監控
1
2
3
4
5
6
7
8
| # 查看網路介面狀態
ip -s link
# 查看網路連線
ss -tuln
# 查看網路統計
netstat -i
|
網路頻寬測試
1
2
3
4
5
6
7
8
| # 安裝 iperf3
sudo apt install iperf3
# 在伺服器端執行
iperf3 -s
# 在客戶端執行(替換 IP)
iperf3 -c <伺服器IP>
|
網路延遲測試
1
2
3
4
5
6
7
8
9
| # ping 測試
ping -c 10 8.8.8.8
# 追蹤路由
traceroute google.com
# MTR(結合 ping 和 traceroute)
sudo apt install mtr
mtr google.com
|
系統調校建議
CPU 調校
1
2
3
4
5
| # 查看當前 CPU 調速器
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# 設定為效能模式
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
|
記憶體調校
調整 swappiness(降低 swap 使用):
1
2
3
4
5
| # 臨時調整
sudo sysctl vm.swappiness=10
# 永久調整(編輯 /etc/sysctl.conf)
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
|
調整快取壓力:
1
| sudo sysctl vm.vfs_cache_pressure=50
|
磁碟調校
使用 SSD 時的優化:
1
2
3
| # 啟用 TRIM
sudo systemctl enable fstrim.timer
sudo systemctl start fstrim.timer
|
調整 I/O 排程器:
1
2
3
4
5
| # 查看當前排程器
cat /sys/block/sda/queue/scheduler
# SSD 建議使用 none 或 mq-deadline
echo mq-deadline | sudo tee /sys/block/sda/queue/scheduler
|
網路調校
調整網路緩衝區:
1
2
3
4
5
6
| # 增加接收緩衝區
sudo sysctl -w net.core.rmem_max=16777216
sudo sysctl -w net.core.wmem_max=16777216
# 啟用 TCP 快速開啟
sudo sysctl -w net.ipv4.tcp_fastopen=3
|
永久保存網路設定:
1
2
3
4
5
6
| cat << EOF | sudo tee -a /etc/sysctl.conf
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.ipv4.tcp_fastopen=3
EOF
sudo sysctl -p
|
自動化監控
使用 cron 定期收集資訊
建立監控腳本 /usr/local/bin/system-monitor.sh:
1
2
3
4
5
6
7
8
9
10
11
| #!/bin/bash
LOG_DIR="/var/log/system-monitor"
mkdir -p $LOG_DIR
DATE=$(date +%Y%m%d-%H%M%S)
# 收集系統資訊
echo "=== System Info ===" > $LOG_DIR/report-$DATE.log
uptime >> $LOG_DIR/report-$DATE.log
free -h >> $LOG_DIR/report-$DATE.log
df -h >> $LOG_DIR/report-$DATE.log
vmstat 1 5 >> $LOG_DIR/report-$DATE.log
|
設定 cron 任務:
1
2
| # 每小時執行一次
echo "0 * * * * root /usr/local/bin/system-monitor.sh" | sudo tee /etc/cron.d/system-monitor
|
總結
Ubuntu 22.04 提供了豐富的效能監控和調校工具。透過本文介紹的方法,你可以:
- 使用
top、htop、vmstat 等工具即時監控系統狀態 - 分析 CPU、記憶體、磁碟和網路的效能瓶頸
- 根據實際需求進行系統調校
- 設定自動化監控收集系統資訊
建議在進行任何調校之前,先建立基準測試,並在測試環境中驗證調校效果。定期監控系統效能,可以及早發現潛在問題,確保系統穩定運行。