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

Linux 環境下 MySQL 效能調優完整指南

     編輯:MySQL 資料庫相關知識

Linux 環境下 MySQL 效能調優完整指南


作業系統層面的調優往往被忽視,實則對 MySQL 效能影響深遠。本文系統整理五大核心調優面向:I/O 排程器、檔案描述符、NUMA 架構、Swappiness 策略、檔案系統掛載參數,並提供永久生效的配置範例。


一、修改 I/O 排程器

Linux 預設 CFQ 排程器適合一般桌面環境,資料庫負載建議改為 deadline(機械硬碟)或 noop(SSD/NVMe)。

臨時生效(重啟失效)

echo "deadline" > /sys/block/sda/queue/scheduler

註:sda 請替換為實際資料盤裝置名(如 nvme0n1)。

永久生效(Grub 內核參數)

編輯 /etc/grub.conf(或 /etc/default/grub),在 kernel 行追加:

elevator=deadline

執行 grub2-mkconfig -o /boot/grub2/grub.cfg 並重啟。驗證:cat /sys/block/sda/queue/scheduler。


二、擴大檔案描述符與進程數限制

高併發場景下預設 1024 遠遠不足,建議調整至 65535 或更高。

永久生效(/etc/security/limits.conf)

* hard nofile 65535
* soft nofile 65535
* hard nproc 65535
* soft nproc 65535

啟用 PAM 限制模組

確認 /etc/pam.d/login 包含:

session required /lib64/security/pam_limits.so

重啟系統後以 ulimit -a 驗證。


三、關閉或調整 NUMA 特性

NUMA 架構下 MySQL 可能出現「記憶體局部性失衡」導致 Swap 暴增。建議在 Grub 關閉 NUMA:

numa=off

或在 mysqld_safe 啟動腳本啟用 numactl --interleave=all 讓記憶體跨節點均勻分配(新版腳本內建支援)。


四、調整 Swappiness 參數

vm.swappiness 控制積極交換匿名頁面到 Swap 的傾向(0~100,預設 60)。

  • CentOS 7 / RHEL 7 以前:建議設 0(極力避免 Swap)。
  • 新版內核(含 CentOS 7+):設 0 可能觸發 OOM Killer 殺掉 mysqld,建議設 1。

永久生效

echo "vm.swappiness = 1" >> /etc/sysctl.conf
sysctl -p

觀察 inactive 記憶體:vmstat -a 1。


五、優化檔案系統掛載參數

檔案系統選擇

  • XFS:大檔案、高併發寫入表現優異,適合資料目錄。
  • ext4:成熟穩定,相容性好,亦可勝任。

推薦掛載選項(/etc/fstab)

/dev/sda3  /data  xfs  defaults,noatime,nodiratime,nobarrier  0 0
  • noatime / nodiratime:關閉存取時間更新,減少元資料寫入。
  • nobarrier(XFS)或 barrier=0(ext4):關閉寫入屏障,**前提是 RAID 卡擁有 BBU(電池備援單元)或 NVMe 控制器具備斷電保護**,否則掉電可能導致資料損壞。

驗證:cat /proc/mounts | grep data。


總結檢查清單

項目建議值生效方式
I/O Schedulerdeadline (HDD) / noop (SSD/NVMe)Grub elevator 參數
檔案描述符65535+/etc/security/limits.conf + PAM
NUMAoff 或 interleave=allGrub numa=off 或 mysqld_safe
Swappiness1/etc/sysctl.conf
掛載參數noatime,nodiratime,nobarrier/etc/fstab

調優後務必進行基準測試(sysbench、tpcc-mysql)對比效能提升,並持續監控 iostat -x、vmstat、sar 關鍵指標。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved