overlay2目录占用挤爆服务器的解决办法

今天早上客户来电话,说网站不能访问了,我以为又是服务器宕机,重启服务器后还是不行,猜想应该是文件爆了,因为这个客户的服务器每天被高强度扫描,产生了大量的访问文件。于是扫描了一下硬盘目录

 df -i

/dev/vda3 IUse% 100%
Inodes: 13073424 used, 1 free

提示系统文件数量达到上限,通过层级目录查找,最后定位是Docker容器目录,于量继续用命令查找多文件目录

for d in /var/lib/docker/*; do
echo -n "$(basename $d): "
find "$d" -xdev | wc -l
done

1Panel面板创建的容器有很多目录,于是再筛选哪个目录最多文件,并属于哪个容器

du -sh /var/lib/docker/overlay2/* 2>/dev/null | sort -hr | head -20

70G /var/lib/docker/overlay2/……1f8b84994d2d
3.7G /var/lib/docker/overlay2/……dd0d4e039ca86
1.1G /var/lib/docker/overlay2/……dd41dbd59b01e

目前算是找到发生问题的容器,查找对应的容器

docker ps -aq | while read id; do
docker inspect --format '{{.Id}} {{.GraphDriver.Data.UpperDir}}' $id
done | grep 37b2c2df71db3e7bb48e8dbbc6a1b27455f1185b007c907d469b1f8b84994d2d

356cd350a272d5……eb /var/lib/docker/overlay2/37b2c2df71db3e……4d2d/diff

至此已经看到容器ID:356cd350a272,查找该容器内的多文件目录

du -sh /var/lib/docker/overlay2/37b2c2df71db3e7bb48e8dbbc6a1b27455f1185b007c907d469b1f8b84994d2d/diff/* | sort -hr | head -20

35G /var/lib/docker/overlay2/37b2c……994d2d/diff/tmp
28K /var/lib/docker/overlay2/37b2c……994d2d/diff/usr

此时得知是1Panel-php8容器的缓存目录写满了,剩下的就是进入容器清除缓存目录/tmp下的文件

docker exec -it 356cd350a272 sh
find /tmp -maxdepth 1 -type f -name "sess_*" -delete

至此,文件清除完成,服务器的磁盘空间也会增加很多,剩下的就是在容器的PHP配置里面,修改 PHP session 回收策略

vi /usr/local/etc/php/php.ini
/session.gc_probability  #查找代码位置
#修改如下
session.gc_probability = 1
session.gc_divisor = 100
session.gc_maxlifetime = 1440
#保存退出
Esc
:wq
暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇