rocketmq 本地访问地址(服务器问题rocketmq)
rocketmq 本地访问地址(服务器问题rocketmq)对于/var中那个文件比较大,仍然没法排查,后来又查找到使用该命令(find / -xdev -size 100M -exec ls -l {} \;),可以查询大于100M的大文件,然后可以从返回值里面找到大文件所在目录,最终也没找到太多,删除一些比较大的日志文件后,再次验证。在我的服务器上,显示有一个文件夹/var占用47g (一共50g) 但是还是不知道那些文件的问题,继续排查1、首先通过排查那个文件夹占用得多,但是看不到文件df -h 查看磁盘占用量直接使用du命令 du -h --max-depth=1 查看根目录哪个目录占用磁盘空间最大就行了
今天遇到了roketmq没有内存的问题,报错信息:RocketMQ报错:service not available now maybe disk full
,连接云服务器,发现没有了空间,(没有截图),图中标红的那行,已使用100%
最终是百度搜索如何清理c盘,但是最终没有解决,最后没办法,重启了下云主机,重新启动后,解决问题。
以下是具体的过程。
1、首先通过排查那个文件夹占用得多,但是看不到文件
df -h 查看磁盘占用量
直接使用du命令 du -h --max-depth=1 查看根目录哪个目录占用磁盘空间最大就行了
在我的服务器上,显示有一个文件夹/var占用47g (一共50g) 但是还是不知道那些文件的问题,继续排查
对于/var中那个文件比较大,仍然没法排查,后来又查找到使用该命令(find / -xdev -size 100M -exec ls -l {} \;),可以查询大于100M的大文件,然后可以从返回值里面找到大文件所在目录,最终也没找到太多,删除一些比较大的日志文件后,再次验证。
删除完成后,再次使用df -h去查询,容量使用率99% 这说明已经没有太大的文件占用导致服务器硬盘不足。这个时候,想到了可能是文件没有释放掉,因此,继续搜索。
看到<Linux 离奇磁盘爆满解决办法>这篇文章,这个时候,看到了搜索删除文件问题,就是下面的描述。
对于遇到df 和du结果不一致的情况,基本断定是文件虽然删除了,但是文件句柄仍然被持有,因此磁盘空间未释放,可以使用lsof命令( list open files)查看
查看根目录打开的文件,搜索删除的文件 lsof -n / |grep deleted (这里/是根目录)
在我的服务器上,lsof -n / |grep deleted执行后,看到很多和sendmail和postdrop进程有关的信息(当时因为使用的连接服务器工具的问题,没有保存记录,没法截取当时的图片了)
然后搜索和这两个进程相关的信息。ps -ef|grep "/usr/sbin/s
endmail"|grep -v grep |awk '{print $2}'|xargs kill使用这个命令,删除了sendmail的进程,但是没有打印出进程号,
最终进程杀掉了,文件还是占用,没有办法,考虑重启下机器试试,最终果然有效
总结:
1、三个命令
在搜索过程中,参考信息中看到 ,如何记忆du df lsof这3个命令
du ->Disk Usage
df ->Disk Free
lsof ->list open files
2、需要找到问题的根源。首先消息中间件报错,是因为没有磁盘空间了(占用100%),磁盘离奇爆满,是因为进程导致一些文件没有彻底删除掉,最终重启才解决。
3、本次没有考究,为什么会出现定时任务会出现占满进程,为什么会占满磁盘?有知道的小伙伴,能给提供些定时任务方面的知识,本人是后台,运维懂得渣渣,那点知识全来自百度。
参考信息: