参考链接:[Mysql里的ibtmp1文件太大,导致磁盘空间被占满](https://blog.csdn.net/qq_33283901/article/details/129123666)
CENTOS7
磁盘空间不足
问题场景:
使用centos7作为服务端系统,部署docker作为基础应用设施,采用portainer对docker进行可视化管理,由于业务需要,部署了MySQL服务、neo4j服务作为系统运行的基础组件。
问题描述:
在使用过程中,突然发现neo4j无法插入数据或neo4j直接崩溃无法连接,并且通过portainer重启neo4j服务时报错,报错提示无剩余磁盘空间。
为了排查问题,从根目录上使用命令查询最大文件,并按照从大到小排序。
使用命令查询如下:
find . -type f -size +100M -print0 | xargs -0 du -h --block-size=M | sort -nr
find ./ -type f -size +100M -exec ls -lh {};|awk '{print $9 ":" $5}'
文件大小排序:
du -s * |sort -nr|head
得到结果如下(仅示例)
[root@localhost /]# find . -type f -size +100M -print0 | xargs -0 du -h --block-size=M | sort -nr
find: ‘./proc/58582/task/58582/fdinfo/5’: No such file or directory
find: ‘./proc/58582/fdinfo/6’: No such file or directory
208M ./var/lib/rpm/Packages
151M ./var/lib/docker/overlay2/8cec15726f14f1219cd5cf85f82d4012280eb6f444b6ea7103c44d6bc0ae3fab/diff/home/nacos/target/nacos-server.jar
145M ./usr/lib64/firefox/libxul.so
121M ./var/cache/yum/x86_64/7/updates/gen/primary_db.sqlite
116M ./var/cache/yum/x86_64/7/updates/gen/filelists_db.sqlite
110M ./var/cache/yum/x86_64/7/updates/packages/firefox-102.12.0-1.el7.centos.x86_64.rpm
110M ./var/cache/yum/x86_64/7/updates/packages/firefox-102.11.0-2.el7.centos.x86_64.rpm
102M ./usr/lib/locale/locale-archive
0M ./sys/devices/pci0000:00/0000:00:0f.0/resource1_wc
0M ./sys/devices/pci0000:00/0000:00:0f.0/resource1
0M ./proc/kcore
[root@localhost /]#
原因分析:
由以上命令结果中,得到第一个最大文件为40余G的,属于mysql的文件,名为ibtmp1,表示为临时表使用,因为没有做设置限制,他将根据业务使用,空间有多大,他就可以有多大,因此,需要将他配置设上限制,同时可采取优化系统业务,少用临时表来解决。
解决方案:
查找解决方法中,采用了一下方式:
vi /etc/my.cnf
该文件为MySQL的配置,在文件中的[mysqld]
配置块中增加如下行:
#为了避免以后再次出现ibtmp1文件暴涨,限制其大小
innodb_temp_data_file_path=ibtmp1:12M:autoextend:max:20G
之后再重启MySQL服务,会自动清理已存在的ibtmp1文件并生成新的文件。
2009版本安装docker
问题场景
想使用docker部署一些服务来使用一下,体验一把~