Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

Linux 服務器監控 16 大核心命令:從入門到精通的運維必備工具箱

編輯:關於伺服器

不看 GUI,只信命令行。關閉圖形界面 (runlevel 3),騰出每一分 CPU/內存給業務,用這 16 個核心命令建立你的「服務器透視眼」。本文按 **資源維度** 分類,附帶高頻參數組合與實戰場景,直接可用於生產巡檢、故障排查、性能基線建立。

一、存儲子系統:iostat

# 核心指標:%util (設備利用率), await (平均等待), svctm (服務時間), %iowait (CPU 等待 IO)
iostat -xz 1 10          # 每秒刷新 10 次,顯示擴展統計,單位 KB
iostat -xmt 1            # 顯示 MB/s,時間戳
iostat -d /dev/sda 2     # 只看指定磁盤,每 2 秒

判讀:%util > 80% 或 await > 20ms (SSD) / > 100ms (HDD) → IO 瓶頸。

二、內存系統:free / /proc/meminfo

# free: 快速概覽 (單位可選 -h 人類可讀, -m MB, -g GB)
free -h
# 輸出關鍵行:Mem (總/已用/可用), Swap (總/已用/剩)
# 重點看 "可用" (available) = free + buffers/cache 可回收部分

# /proc/meminfo: 內核級詳細信息 (排查緩存、Slab、PageTables、HugePages)
grep -E 'MemTotal|MemFree|MemAvailable|Buffers|Cached|SwapTotal|SwapFree|Dirty|Writeback|AnonPages|Mapped|Slab|PageTables' /proc/meminfo

三、CPU 多核:mpstat

# 所有核心總體 + 各核心細分
mpstat -P ALL 1 5
# 關鍵欄位:%usr (用戶), %sys (系統), %iowait (IO等待), %irq/%soft (中斷), %steal (虛擬化偷跑), %idle
# 單核 %idle 長期 < 10% 或 %iowait > 20% → CPU/IO 瓶頸
# %steal > 5% → 宿主機超售嚴重 (VPS 常見)

四、網絡連接與協議:netstat / ss (新標準)

# netstat 經典 (舊)
netstat -antp | grep :80          # 看 80 端口連接
netstat -s                        # 協議統計 (TCP 重傳、丟包、連接建立/斷開計數)
netstat -rn                       # 路由表
netstat -i                        # 接口統計

# ss (iproute2, 更快、更強、替代 netstat)
ss -antp | grep :80               # 同 netstat -antp
ss -s                             # 連接狀態摘要 (estab, closed, orphaned, tw, alloc...)
ss -o state established '( dport = :80 or sport = :80 )'  # 狀態過濾神器

五、綜合性能儀表板:nmon / htop / glances / dstat

工具特點啟動鍵/參數
nmonNigel's Monitor,IBM 開源,字符界面儀表板,支持錄製 (-f) 後導入 Excel 分析nmon → c=CPU, m=內存, d=磁盤, n=網絡, k=內核, t=Top進程, .=僅忙碌
htoptop 增強版,彩色、樹狀、鼠標操作、可橫向滾動參數htop → F2 設置列, F3 搜索, F4 過濾, F5 樹狀, F6 排序
glancesPython 寫的全能監控,Web 界面 (-w)、導出 InfluxDB/Prometheus、Docker 監控glances 或 glances -w 瀏覽器訪問 :61208
dstatvmstat/iostat/ifstat/mpstat 合體,輸出適合腳本解析/重定向 CSVdstat -cdngy -t --output /tmp/dstat.log 10

六、進程與資源佔用:ps / top / pidstat

# 找佔用 CPU/內存最高的進程
ps aux --sort=-%cpu | head
ps aux --sort=-%mem | head

# pidstat: 進程級 CPU/內存/IO/線程 統計 (sysstat 套件)
pidstat -u 1 5        # CPU
pidstat -r 1 5        # 內存 (RSS, VSZ, %MEM)
pidstat -d 1 5        # IO (kB_rd/s, kB_wr/s, kB_ccwr/s)
pidstat -t 1 5        # 線程級

# lsof: 進程打開文件/端口/連接
lsof -p PID
lsof -i :80
lsof -u www

七、系統負載與運行時間:uptime / w / /proc/loadavg

uptime
# 輸出: load average: 0.52, 0.58, 0.59 (1分, 5分, 15分)
# 經驗值: 負載 > 核心數 * 0.7 持續 15分 → 需關注
cat /proc/loadavg
# 額外信息: 運行隊列進程數/總進程數, 最近創建的 PID

八、磁盤空間與 inode:df / du

df -hT                    # 掛載點、類型、使用率 (關鍵: /, /var, /home, /data)
df -i                     # inode 使用率 (大量小文件場景必看)
du -h --max-depth=1 /var  # 目錄級佔用排查
find /var -xdev -type f | wc -l  # 文件總數估算 inode 壓力

九、硬件信息:lscpu / lsmem / lsblk / lspci / dmidecode

lscpu                     # CPU 架構、核心、緩存、NUMA
lsmem                     # 內存範圍、塊狀
lsblk -o +MODEL,SERIAL    # 磁盤型號、序列號 (識別 SSD/HDD、RAID 卡)
lspci | grep -i ethernet  # 網卡型號
dmidecode -t memory       # 內存條詳情 (需 root)

十、內核參數與運行時調優:sysctl

sysctl -a                 # 所有參數
sysctl -p                 # 載入 /etc/sysctl.conf
sysctl -w net.ipv4.tcp_tw_reuse=1  # 臨時修改

十一、日誌分析:journalctl / tail / grep / awk

journalctl -u nginx -f --since "1 hour ago"  # systemd 日誌跟蹤
tail -f /var/log/nginx/access.log | awk '$9 ~ /50[0-9]/'  # 實時抓 5xx
grep -c "Out of memory" /var/log/messages    # OOM 統計

十二、防火牆與連接追蹤:iptables / nft / conntrack

iptables -nvL --line-numbers    # 規則統計
conntrack -L | wc -l            # 當前連接追蹤表條數 (防爆表)
conntrack -D -p tcp --dport 80  # 刪除特定連接 (釋放資源)

十三、定時任務:crontab / systemd-timer

crontab -l                    # 查看當前用戶
crontab -e                    # 編輯
systemctl list-timers --all   # systemd 定時器 (現代替代)

十四、用戶與登錄:who / last / lastb / w

who                         # 當前登錄用戶
last -n 20                  # 最近 20 次成功登錄
lastb -n 20                 # 最近 20 次失敗嘗試 (暴力破解排查)

十五、時間同步:chronyc / ntpdate / timedatectl

chronyc sources -v          # chrony 狀態 (CentOS 7+ 默認)
timedatectl status          # 系統時間狀態
ntpdate -q pool.ntp.org     # 測試 NTP 源 (不設置)

十六、封裝為巡檢腳本:每日自動生成健康報告

# /usr/local/bin/daily_health_check.sh
#!/bin/bash
OUT="/var/log/health_$(date +%F).log"
{
  echo "=== $(hostname) Daily Health $(date) ==="
  uptime
  free -h
  df -hT
  df -i
  mpstat 1 1
  iostat -xz 1 2
  ss -s
  systemctl list-units --failed
  journalctl -p 3 -xb --since "24 hours ago" | tail -30
} > $OUT 2>&1
# crontab: 0 6 * * * /usr/local/bin/daily_health_check.sh

總結

這 16 類命令覆蓋 **存儲、內存、CPU、網絡、進程、負載、磁盤、硬件、內核、日誌、防火牆、定時、用戶、時間、綜合儀表板、自動化巡檢** 全維度。建議:

  1. **先熟練掌握 5 核心**:iostat, free, mpstat, ss, pidstat — 解決 80% 性能問題
  2. **配置別名/函數** 到 ~/.bashrc,如 alias ioi='iostat -xz 1 10'
  3. **建立基線**:業務正常時跑一遍全集,保存輸出作為對比基準
  4. **自動化巡檢 + 告警** 比人工登錄強 100 倍

記住:**GUI 是給看客看的,命令行才是運維的手術刀**。關閉圖形界面,練就這 16 條命令,你就擁有了看透服務器內心的 X 光眼。

Copyright © Windows教程網 All Rights Reserved