docker容器磁盘使用率超过100%怎么办

2019-01-25  本文已影响0人  开始懂了90

docker容器默认大小是10G 如果磁盘满了 如何进行清理 如下:

Filesystem      Size  Used Avail Use% Mounted on
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        20G  5.9G   13G  32% /
devtmpfs         16G     0   16G   0% /dev
tmpfs            16G     0   16G   0% /dev/shm
tmpfs            16G  1.6G   15G  11% /run
tmpfs            16G     0   16G   0% /sys/fs/cgroup
tmpfs            16G   12K   16G   1% /var/lib/kubelet/pods/390a8d0e-e174-11e8-b14e-5254416bb222/volumes/kubernetes.io~secret/default-token-phghf
shm              64M     0   64M   0% /var/lib/docker/containers/69618ee0322b2a62b586b8f8a546ee189517cc111d6ec720db70b19ceebfed27/shm
/dev/dm-34       10G   10G   20K 100% /var/lib/docker/devicemapper/mnt/71f36d95c98684ecd86f73f342c440e7bc08b9bb6a552e7bbd348bc431b1df21

## /dev/dm-34 这块磁盘使用率超过了100%,如何清理这个磁盘 释放空间

找出写满磁盘的进程

[root@node-23-44 ~]# lsof /var/lib/docker/devicemapper/mnt/71f36d95c98684ecd86f73f342c440e7bc08b9bb6a552e7bbd348bc431b1df21
COMMAND   PID USER   FD   TYPE DEVICE   SIZE/OFF     NODE NAME
sh      18108 root  cwd    DIR 252,34         69 20972553 /opt
sh      18108 root  rtd    DIR 252,34        293     1027 /
sh      18108 root  txt    REG 252,34     960376 10486805 /usr/bin/bash
sh      18108 root  mem    REG 252,34            31459441 /usr/lib64/libnss_files-2.17.so (path dev=253,1, inode=788547)
sh      18108 root  mem    REG 252,34            31458406 /usr/lib64/libc-2.17.so (path dev=253,1, inode=788165)
sh      18108 root  mem    REG 252,34            31459329 /usr/lib64/libdl-2.17.so (path dev=253,1, inode=788538)
sh      18108 root  mem    REG 252,34            31459548 /usr/lib64/libtinfo.so.5.9 (path dev=253,1, inode=788497)
sh      18108 root  mem    REG 252,34            31458382 /usr/lib64/ld-2.17.so (path dev=253,1, inode=788131)
java    18146 root  cwd    DIR 252,34         69 20972553 /opt
java    18146 root  rtd    DIR 252,34        293     1027 /
java    18146 root  txt    REG 252,34       7734  6295582 /jdk1.8.0_131/bin/java
java    18146 root  mem    REG 252,34            31459566 /usr/lib64/libz.so.1.2.7 (path dev=253,1, inode=788132)
java    18146 root  mem    REG 252,34            31458405 /usr/lib64/libbz2.so.1.0.6 (path dev=253,1, inode=788591)
java    18146 root  mem    REG 252,34            31459411 /usr/lib64/liblzma.so.5.0.99 (stat: No such file or directory)
java    18146 root  mem    REG 252,34            31459333 /usr/lib64/libelf-0.163.so (stat: No such file or directory)
java    18146 root  mem    REG 252,34            31458396 /usr/lib64/libattr.so.1.1.0 (path dev=253,1, inode=788761)
java    18146 root  mem    REG 252,34            31459347 /usr/lib64/libgcc_s-4.8.5-20150702.so.1 (path dev=253,1, inode=786448)
java    18146 root  mem    REG 252,34            31459331 /usr/lib64/libdw-0.163.so (stat: No such file or directory)
java    18146 root  mem    REG 252,34            31458411 /usr/lib64/libcap.so.2.22 (path dev=253,1, inode=788766)
java    18146 root  mem    REG 252,34            31459498 /usr/lib64/libresolv-2.17.so (path dev=253,1, inode=788552)
java    18146 root  mem    REG 252,34            31459439 /usr/lib64/libnss_dns-2.17.so (path dev=253,1, inode=788181)
java    18146 root  mem    REG 252,34            31459445 /usr/lib64/libnss_myhostname.so.2 (path dev=253,1, inode=789230)
java    18146 root  mem    REG 252,34            23073833 /jdk1.8.0_131/jre/lib/jsse.jar (stat: No such file or directory)
java    18146 root  mem    REG 252,34            23073846 /jdk1.8.0_131/jre/lib/resources.jar (stat: No such file or directory)
java    18146 root  mem    REG 252,34             6299672 /jdk1.8.0_131/jre/lib/ext/sunpkcs11.jar (stat: No such file or directory)
java    18146 root  mem    REG 252,34             6299671 /jdk1.8.0_131/jre/lib/ext/sunjce_provider.jar (stat: No such file or directory)
java    18146 root  mem    REG 252,34             6299666 /jdk1.8.0_131/jre/lib/ext/jfxrt.jar (stat: No such file or directory) /jdk1.8.0_131/jre/lib/ext/jaccess.jar (stat: No such file or directory)
java    18146 root    1w   REG 252,34 4720398336 21008433 /opt/info.log
java    18146 root    3r   REG 252,34   66159478 23073847 /jdk1.8.0_131/jre/lib/rt.jar
java    18146 root    4r   REG 252,34   75018036 21008432 /opt/e-share-service-content.jar
java    18146 root    5r   REG 252,34   75018036 21008432 /opt/e-share-service-content.jar
java    18146 root    6w   REG 252,34       9707  8430632 /opt/logs/log_error.log
java    18146 root    7w   REG 252,34        217  8430610 /opt/logs/log_warn.log
java    18146 root    8w   REG 252,34        124  8430613 /opt/logs/log_info.log
java    18146 root   10r   REG 252,34    3505330 23073846 /jdk1.8.0_131/jre/lib/resources.jar
java    18146 root   11r   REG 252,34    3135391 23073803 /jdk1.8.0_131/jre/lib/charsets.jar
java    18146 root   12r   REG 252,34   18490072  6299666 /jdk1.8.0_131/jre/lib/ext/jfxrt.jar
java    18146 root   13r   REG 252,34    3860502  6299663 /jdk1.8.0_131/jre/lib/ext/cldrdata.jar
java    18146 root   14r   REG 252,34       8286  6299664 /jdk1.8.0_131/jre/lib/ext/dnsns.jar
java    18146 root   15r   REG 252,34      44516  6299665 /jdk1.8.0_131/jre/lib/ext/jaccess.jar
java    18146 root   16r   REG 252,34    1179093  6299667 /jdk1.8.0_131/jre/lib/ext/localedata.jar
java    18146 root   17r   REG 252,34    2022531  6299669 /jdk1.8.0_131/jre/lib/ext/nashorn.jar
java    18146 root   18r   REG 252,34      42154  6299670 /jdk1.8.0_131/jre/lib/ext/sunec.jar
java    18146 root   19r   REG 252,34     280161  6299671 /jdk1.8.0_131/jre/lib/ext/sunjce_provider.jar
java    18146 root   20r   REG 252,34     251327  6299672 /jdk1.8.0_131/jre/lib/ext/sunpkcs11.jar
java    18146 root   21r   REG 252,34      68924  6299673 /jdk1.8.0_131/jre/lib/ext/zipfs.jar
java    18146 root   23r   REG 252,34     647516 23073833 /jdk1.8.0_131/jre/lib/jsse.jar
java    18146 root  234w   REG 252,34    4001792  8430641 /opt/logs/log_debug.log
java    18146 root  236r   REG 252,34   75018036 21008432 /opt/e-share-service-content.jar

通过查看发现 只有18108 18146 这两个进程使用过这个磁盘文件 让我们来看看这两个什么样的进程

[root@node-23-44 ~]# ps -ef |grep 18108
root     18108 18091  0  2018 ?        00:00:00 /bin/sh -c java -jar e-share-service-content.jar > info.log
root     18146 18108  1  2018 ?        08:53:03 java -jar e-share-service-content.jar
root     20782 13686  0 14:06 pts/0    00:00:00 grep --color=auto 18108
[root@node-23-44 ~]# ps -ef |grep 18146
root     18146 18108  1  2018 ?        08:53:03 java -jar e-share-service-content.jar
root     20880 13686  0 14:06 pts/0    00:00:00 grep --color=auto 18146

## 由上可知 18108 是18146的父进程 所以我们只要查看一下18146跑的是那个容器即可

根据宿主机Pid号查询容器号

[root@node-23-44 ~]# docker inspect -f '{{.State.Pid}} {{.Id}}' $(docker ps -q) | grep 18108
18108 2ded174d0bb5b353fbb73f9bca980a2d8d163b17d7c5ff4bbeb4961bb9f7f364

进入容器查看

[root@node-23-44 ~]# docker exec -it 2ded174d0bb5 sh
sh-4.2# du -sh ./*
72M ./e-share-service-content.jar
4.4G    ./info.log
4.1G    ./logs

## 容器日志已经超过了8.5G 

由上分析 是日志打满了磁盘 如果需要释放空间 清理日志即可

上一篇下一篇

猜你喜欢

热点阅读