首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 服務器變慢排查全攻略:系統資源、IO、鎖爭用與配置優化

     編輯:MySQL 資料庫相關知識

一、系統層面檢查

1. 用 sar -u 2 10 觀察 CPU 與 IO 等待

  • %wio (>35%) 表明 IO 瓶頸;
  • %idle 接近 0 代表 CPU 滿載。

2. vmstat 監控內存、CPU、IO

關鍵欄位:

  • r (run queue) > CPU 核心數 4 倍 → CPU 不足;
  • si (swap in) 持續偏大 → 內存壓力;
  • bo (block out) 寫入量異常 → 磁盤 IO 瓶頸。

3. 磁盤 IO 優化

  • 採用 RAID 10 提升隨機讀寫;
  • 關閉不必要的 sync_binlog、調整 innodb_flush_log_at_trx_commit。

4. 網絡排查

  • telnet IP 3306 測試連通性;
  • 檢查防火牆、skip-networking 參數。

二、MySQL 內部狀態分析

1. SHOW PROCESSLIST 找長事務、鎖等待

2. SHOW ENGINE INNODB STATUS 檢查死鎖、鎖等待、Semaphore 等待

3. 慢查詢日誌 long_query_time + pt-query-digest 分析 Top SQL

三、常見配置調優

參數建議
innodb_buffer_pool_size物理內存 60-80%
innodb_log_file_size1-4GB,減少 checkpoint 衝刷
innodb_flush_log_at_trx_commit2 (高併發) 或 0 (極致性能,風險自負)
sync_binlog100-1000 批量刷盤
max_connections根據實際峰值設定,避免拒絕連線

四、架構層面建議

  • 讀寫分離、分庫分表降低單實例壓力;
  • 引入 Redis 緩存熱點數據,減輕 MySQL 讀壓力;
  • 定期 ANALYZE TABLE 更新統計信息,輔助優化器決策。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved