[ERROR] InnoDB: mmap(137428992 bytes) failed; errno 12

[ERROR] InnoDB: mmap(137428992 bytes) failed; errno 12

日志错误信息:
[ERROR] InnoDB: mmap(137428992 bytes) failed; errno 12

根据:http://blog.csdn.net/shaochenshuo/article/details/53465016

得知是分配内存超出可用范围导致,随后我修改了内核参数:

vm.overcommit_memory = 2
vm.overcommit_ratio = 95 #这个参数只有vm.overcommit_memory=2时才生效

vm.overcommit_ratio:系统可分配内存总量,后面的数默认50,我修改成了95,就是95%可分配。

mysql系统参数:

innodb-buffer-pool-chunk-size = 16777216 #16M

这个参数是控制每次buffer pool增长或减少的幅度。默认是128M,因为我的系统内存只有1G,我没有足够的内存让buffer pool每次增长128M。

关于/proc目录文件的内容格式可以参考:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/filesystems/proc.txt?id=HEAD

主要文件有/proc/meminfo

发表评论