核心结论
在2C内存环境下安装MySQL 8.0需大幅降低内存相关参数,重点优化innodb_buffer_pool_size、临时表配置和连接数,避免OOM(内存溢出)并保障基础性能。
关键优化参数及建议
1. 核心内存分配
- innodb_buffer_pool_size:设为256M-512M(默认128M可能过小,但需留内存给其他操作)。
- innodb_log_buffer_size:降至8M-16M(默认16M)。
- key_buffer_size:禁用或设为16M(若不用MyISAM表)。
2. 连接与线程控制
- max_connections:调至20-30(默认151会耗尽内存)。
- thread_cache_size:设为4-8(减少线程创建开销)。
3. 临时表与排序优化
- tmp_table_size/max_heap_table_size:均设为16M-32M(避免磁盘临时表频繁切换)。
- sort_buffer_size/join_buffer_size:降至512K-1M(默认值可能过大)。
4. InnoDB后台线程
- innodb_read_io_threads/innodb_write_io_threads:均设为2(默认4可能占用过多资源)。
注意事项
- 监控工具:安装后使用
SHOW STATUS和SHOW VARIABLES验证实际内存占用。 - OOM风险:若仍崩溃,进一步降低innodb_buffer_pool_size或启用swap分区临时补救。
配置示例(my.cnf片段)
[mysqld]
innodb_buffer_pool_size=256M
max_connections=25
tmp_table_size=16M
sort_buffer_size=512K
innodb_read_io_threads=2
CCLOUD博客