Docker no space left on device
docker容器启动时出现{"log":"2019-10-15 09:35:17.210 UTC [42] FATAL: 53100: could not write lock file \"postmaster.pid\": No space left on device\n","stream":"stderr","time":"2019-10-15T09:35:17.210973351Z"}.
docker容器启动时出现{"log":"2019-10-15 09:35:17.210 UTC [42] FATAL: 53100: could not write lock file \"postmaster.pid\": No space left on device\n","stream":"stderr","time":"2019-10-15T09:35:17.210973351Z"}
No space left on device的异常,即设备空间不足
排查:
1、df -h
注:linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况。
参数:
-h 方便阅读方式显示
-i 显示inode信息
显示如下:
可以看到/disk1 磁盘占用率达到100%
继续定位
2、du -h
注:
du:显示每个文件和目录的磁盘使用空间,也就是文件的大小。
参数:
-h 方便阅读方式显示
--max -depth=1:显示层级
如上图所示,可以看到是pgsql目录下的pg_wal导致的,这时就需要分析这个postgresql的pg_wal过大的原因了。
3、pg_wal过大的原因分析
通过分析postgresql.conf参数,发现配置了archive_mode=on,但是archive_command='', 由于没有配置archive_command,也就是说不会触发归档命令,造成xlog文件会一直堆积。
4、如何手动清理xlog文件?参考
①. 读取控制文件,找到哪个文件是可以被清理的。
命令:pg_controldata $PGDATA
②、使用pg_archivecleanup清理pg_xlog目录。
pg_archivecleanup -d $PGDATA/pg_xlog 0000000100000001000000Aa
更多推荐
所有评论(0)