调整关键配置参数
innodb_buffer_pool_size:设置为服务器总内存的50%-80%,用于缓存InnoDB表数据和索引,减少磁盘I/O。innodb_log_file_size:适当增大(如256M),减少日志切换频率,提升写入性能。max_connections:根据业务需求合理设置,避免过多连接占用内存,可配合thread_cache_size缓存线程。query_cache_size(如64M),否则建议关闭。优化内存分配器
jemalloc替代默认的ptmalloc,降低内存碎片,提升多线程场景下的内存利用率。
sudo apt-get install libjemalloc-dev/etc/systemd/system/mariadb.service.d/libs.conf中添加Environment="LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so",重启服务生效。硬件与系统优化
/etc/sysctl.conf,如降低vm.swappiness(如设为10),减少内存交换。定期维护与监控
OPTIMIZE TABLE整理表空间,减少内存占用。Prometheus+Grafana或top/htop监控内存使用,及时发现异常。注意:修改配置前需备份数据,部分参数(如innodb_buffer_pool_size)修改后需重启服务生效。具体优化需结合业务负载和硬件资源调整。