首先安装vim : yum install vim -y
修改mysql配置 : vim /etc/my.cnf
[mysqld]
performance_schema_max_table_instances=400
table_definition_cache=400
table_open_cache=256
docker restart db-manage
前几天在一台小内存上部署mysql,但经常被系统killed,排查问题之后发现是其内存瞬间占用过高,机器爆了内存,于是便有了这篇文章,记录一次调优经验。
使用docker stats查看mysql占用,发现降到了10%以下,效果明显。
在制作镜像的过程中,我们要注意几点:1.文件系统是UnionFs,Dockerfile中每一条RUN都会生成一个层次(layer)。所以我们需要在每一条RUN之后清理产生的数据。因为生成的结果(3G的大小)是各层次大小的线性叠加。
2.为什么官方的镜像普遍偏小呢?我们就以mysql:5.6来作为参考,来分析一下:
RUN apt-get update &&apt-get install -y perl --no-install-recommends &&rm -rf /var/lib/apt/lists/*在更新组建以后,接着删除了apt的缓存的包文件。通常来说这个文件夹视情况会占用100M左右。
RUN { ...&&apt-get update &&apt-get install -y
mysql-server="${MYSQL_VERSION}" &&rm -rf /var/lib/apt/lists/* &&rm
-rf /var/lib/mysql &&mkdir -p /var/lib/mysql 在安装db以后,照例删除缓存的包文件。删除/var/lib/mysql能清除示例数据库。
而我们观察一下,hub.docker.com中最常用的vim包,我们发现haron/vim镜像是300M用的scratch作为基础镜像。
在hub.docker.com上粗略找了下,没有找到用centos做基础的mysql镜像。个人估计是缓存的包没有删掉,导致的问题。
至于@ShawnTaoo兄弟提到的基础镜像大小问题,我也做了下调查:centos:latest 190+MB, debian:jessie: 130+MB, ubuntu:latest 180+MB
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)