解决mysql升级到5.7内存占用过大问题

背景

在只有512M内存的云主机中的mysql随着系统升级更新到5.7后,发现启动后啥都不干内存就占用到160M左右,大大超过之前的使用,这是怎么回事呢?

优化

经过查找资料,在mysql的配置文件中增加了下面两个参数,对内存占用减小作用最大

第一阶段:

performance_schema = off
table_open_cache   = 400

这两个参数让内存消耗从160M降低到50~60M。配置的详细含义可以参照这里

再配合一些其他的配置修改

第二阶段:

key_buffer_size         = 8M
thread_stack            = 128K
tmp_table_size          = 32M
max_connections         = 20
table_open_cache_instances = 1
query_cache_limit       = 512K
query_cache_size        = 8M
sort_buffer_size        = 1M

最终内存占用启动时降低到30M左右,运行时是40M左右



在腾讯云云数据库运行中项目测试为例:

经过第一阶段优化以后,内存占用直接从2600M降低到440M左右鼎云博客


经过第二阶段优化,又从440M降低到320M左右鼎云博客



云数据库实例配置是1h2g,实际内存已经跑超了,但腾讯云有个很人性化的地方:

仅当物理主机有额外空闲资源时,内存使用才可以超过购买规格(利用率超过100%}

在没有优化之前内存利用率整体从126%降低到了16%左右,可见效果非常明显。

鼎云博客
  • 最新评论
  • 总共0条评论