“Backlog”在Ubuntu系統中的含義需根據具體場景區分,以下是常見場景的查看方法:
journalctl
命令查看系統日志中的任務事件,通過過濾關鍵字(如error
、failed
)定位積壓問題。例如:journalctl -xe # 查看近期系統日志(含錯誤信息)
journalctl -u <service_name> # 查看特定服務(如nginx、mysql)的日志
crontab
命令查看當前用戶的定時任務列表,確認是否有未執行或堆積的任務:crontab -l # 查看當前用戶的定時任務
ls /var/spool/cron/crontabs/ # 查看系統所有用戶的定時任務(需root權限)
lpstat
命令查看打印隊列中的待打印任務:lpstat -p -d # 顯示打印機狀態及隊列中的文檔
網絡Backlog指監聽套接字(如Web服務器的80端口)的未完成連接隊列(已完成三次握手但未被子進程接受的連接),可通過以下命令查看:
ss
命令(推薦,更現代):ss -lnt # 列出所有監聽的TCP套接字,顯示當前backlog值
ss -s | grep backlog # 查看系統整體的backlog統計信息(如總連接數、失敗數)
netstat
命令(傳統工具):netstat -lnt # 功能同ss -lnt,顯示監聽套接字的詳細信息
netstat -s | grep backlog # 查看backlog相關統計
sysctl net.ipv4.tcp_max_syn_backlog # SYN隊列最大長度(半連接隊列)
sysctl net.core.somaxconn # 監聽隊列最大長度(全連接隊列)
若需查看特定應用(如Postfix郵件服務器、MySQL數據庫)的backlog狀態,需使用該應用的專用命令:
postqueue -p # 顯示郵件隊列中的待發送郵件
SHOW PROCESSLIST; # 查看當前所有連接及執行的查詢
SHOW VARIABLES LIKE 'slow_query_log'; # 檢查慢查詢日志是否開啟
sudo
);