sar -u 2 10 觀察 CPU 與 IO 等待%wio (>35%) 表明 IO 瓶頸;%idle 接近 0 代表 CPU 滿載。vmstat 監控內存、CPU、IO關鍵欄位:
r (run queue) > CPU 核心數 4 倍 → CPU 不足;si (swap in) 持續偏大 → 內存壓力;bo (block out) 寫入量異常 → 磁盤 IO 瓶頸。sync_binlog、調整 innodb_flush_log_at_trx_commit。telnet IP 3306 測試連通性;skip-networking 參數。SHOW PROCESSLIST 找長事務、鎖等待SHOW ENGINE INNODB STATUS 檢查死鎖、鎖等待、Semaphore 等待long_query_time + pt-query-digest 分析 Top SQL| 參數 | 建議 |
|---|---|
innodb_buffer_pool_size | 物理內存 60-80% |
innodb_log_file_size | 1-4GB,減少 checkpoint 衝刷 |
innodb_flush_log_at_trx_commit | 2 (高併發) 或 0 (極致性能,風險自負) |
sync_binlog | 100-1000 批量刷盤 |
max_connections | 根據實際峰值設定,避免拒絕連線 |
ANALYZE TABLE 更新統計信息,輔助優化器決策。