最近服务器报警了,看了下是vue pm2的日志占了很大的空间
1. 用df 检查
df -hl
Filesystem Size Used Avail Use% Mounted on
devtmpfs 7.7G 0 7.7G 0% /dev
tmpfs 7.7G 0 7.7G 0% /dev/shm
tmpfs 7.7G 1.1M 7.7G 1% /run
tmpfs 7.7G 0 7.7G 0% /sys/fs/cgroup
/dev/vda1 79G 69G 10G 91% /
tmpfs 1.6G 0 1.6G 0% /run/user/0
tmpfs 1.6G 0 1.6G 0% /run/user/1001
tmpfs 1.6G 0 1.6G 0% /run/user/1000
用find命令查看根目录各子目录占用空间
find / -type f -size +500M -print0 | xargs -0 du -h506M /root/.pm2/logs/xx-web-nuxt-out.log
749M /root/.pm2/pm2.log
55G /root/.pm2/logs/xx-service-out.log
853M /home/speedomes/xx-service-ip/logs/start.logrm -f /root/.pm2/logs/xx-service-out.log
发现不释放磁盘空间
用lsof命令查看有很多处于deleted状态的进程
lsof | grep delete
去找pm2占用的进程
○ pm2 list查看具体哪个进程
○ 使用pm2 stop app
○ pm2 start app
或者根据lsof列出的进程号,kill这些进程,稍等片刻,再查看磁盘容量使用情况,注意如果不熟悉进程的作用,请不要随意kill
df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 7.7G 0 7.7G 0% /dev
tmpfs 7.7G 0 7.7G 0% /dev/shm
tmpfs 7.7G 1.1M 7.7G 1% /run
tmpfs 7.7G 0 7.7G 0% /sys/fs/cgroup
/dev/vda1 79G 14G 62G 19% /
tmpfs 1.6G 0 1.6G 0% /run/user/0
tmpfs 1.6G 0 1.6G 0% /run/user/1001
tmpfs 1.6G 0 1.6G 0% /run/user/1000
磁盘空间释放了
原理:
在linux上被删除的文件仍被其他进程所使用,文件句柄没有完全释放出来,导致空间无法释放出来,在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。
解决:
一、通过lsof |grep deleted查看被占用文件
二、释放被占用文件磁盘空间
○ kill掉相应的进程
○ 停掉使用这个文件的应用,让os自动回收磁盘空间
外传
😜 原创不易,如若本文能够帮助到您的同学
🎉 支持我:关注我+点赞👍+收藏⭐️
📝 留言:探讨问题,看到立马回复
💬 格言:己所不欲勿施于人 扬帆起航、游历人生、永不言弃!🔥