在Debian系統中,可通過以下方式設置MySQL資源限制:
配置文件設置
編輯 /etc/mysql/my.cnf
,調整以下參數:
innodb_buffer_pool_size
:設置為物理內存的50%-80%(如 innodb_buffer_pool_size=4G
)。max_connections
:根據服務器負載設置最大連接數(如 max_connections=500
)。tmp_table_size
/max_heap_table_size
:限制臨時表內存,建議設為64M。系統級限制(cgroups)
sudo apt-get install cgroup-tools
。sudo cgcreate -g memory:/mysql
。echo "2G" | sudo tee /sys/fs/cgroup/memory/mysql/memory.limit_in_bytes
。sudo cgclassify -g memory:mysql:$(pgrep mysqld)
。cpu.shares
或 cpu.cfs_quota_us
(需結合系統調度策略)。ionice
命令調整MySQL進程的IO優先級(如 ionice -c 2 -n 5 -p $(pgrep mysqld)
)。/etc/security/limits.conf
,添加:mysql soft nofile 65535
mysql hard nofile 65535
。sudo swapoff -a
臨時禁用。sudo systemctl restart mysql
。htop
、free
或 SHOW STATUS LIKE 'Innodb_buffer_pool%'
查看內存占用。注意:調整參數前需根據服務器實際硬件配置和業務負載測試,避免過度限制導致服務異常。