写在前面
由于测试环境JED申请比较繁琐,所以Eone提供了单机版Mysql供用户使用,近期Eone搭建Mysql5的时候发现莫名被kill了,容器规格是4C8G,磁盘30G
这不科学,之前都是可以的,镜像没变,配置没变,咋就不行了呢,一定不是我的问题,是机器的问题
问题排查
重现
通过多次搭建mysql5进行采样,发现并不是稳定复现,有一些容器是可以正常启动提供服务的,找到被mysql服务被kill的容器日志,发现是MySQL初始化被kill了,
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/export/data/mysql/data --user=admin --initialize-insecure
mysql配置文件:
[client]
socket=/tmp/mysql.sock
[mysqld]
basedir=/usr/local/mysql
datadir=/export/data/mysql/data
port=3306
server_id=1
socket=/tmp/mysql.sock
log-error=/tmp/mysqld.err
pid-file=/tmp/mysqld.pid
skip-host-cache
skip-name-resolve
skip-grant-tables
问题排查
初始化为什么被kill?
手动执行了下初始化的命令,发现直接被kill了
通过dmesg
命令发现,貌似oom了
纳尼?怎么用了这么多内存?容器都没这么大内存诶
通过排查,发现MySQL有一个8G的匿名内存,这是哪来的???
将容器规格调整为32G内存,再次尝试,发现成功启动了,但是内存占用貌似不太正常
这不科学,正常的容器内存使用情况是这样的
标签:初始化,MySQL5,MAP,READ,mmap,PROT,PRIVATE,kill,28139 From: https://www.cnblogs.com/Jcloud/p/17769006.html