经过多次的折腾,我们想起之前在模板上修改了一个相关的参数vm.overcommit_memory=2 ,我们将 vm.overcommit_memory = 0 后问题消失,数据库压测1000- 3000...先来看看相关的overcommit 的值和相关的解释,
其中值包含
0 1 2 三个值,
0 是缺省值, 运行overcommit ,在申请内存后会通过OS kernel 来进行判断你申请的内存是否合理...,是否超分的太多.
1 一直运行overcommit 对内存的申请都能通过
2 允许进行内存的超分
故障的服务器的overcommit 设置的为2, 但内存并未使用完毕并且还剩余50%的情况下,MYSQL...所以在未理解实际的vm.overcommit_ratio 的情况下修改了overcommit 认为修改后会使用大量的内存而不会一开始就使用SWAP的想法是错误的....那么最后如果有同学说我就是要设置overcommit_memory = 2 我不想用swap
OK ,
1 调整你的 overcommit_ratio 如 echo 99 > /proc/