各位小伙伴,以下是我的一些处理方法,与大家共享。
今天上传了一个13kb的文件,提示磁盘已满,不能上传。df -h 查了一下,如下图:
磁盘慢了
由于是开发环境,堆满了大量的日志没删,10g了,于是我删除了一些很久的日志,8g。奇怪的事情发生了,命令查看磁盘,依然是100%。linux还是跟windows区别挺大的么,windows我们删除了文件,马上就有磁盘释放了。想到的就是删除的文件并不能释放出磁盘(当时只是猜测),于是lsof | grep deleted 查了一下。
果断地把这些进程都kill掉了,哎呦喂,奇迹发生了,df -h 查看:
已经从100%降到了13%。问题解决了,于是找度娘查了下linux删除的机制,大致如下:
一个文件在文件系统中的存放分为两个部分:数据部分和指针部分,指针位于文件系统的meta-data中,数据被删除后(例如我们的日志文件),这个指针就从meta-data中清除了,而数据部分存储在磁盘中,数据对应的指针从meta-data中清除后,文件数据部分占用的空间就可以被覆盖并写入新的内容,之所以出现删除log文件后,空间还没释放,就是因为httpd进程还在一直向这个文件写入内容,导致虽然删除了log文件,但文件对应的指针部分由于进程锁定,并未从meta-data中清除,而由于指针并未被删除,那么系统内核就认为文件并未被删除,因此通过df命令查询空间并未释放也就不足为奇了。一般说来不会出现删除文件后空间不释放的情况,但是也存在例外,比如文件被进程锁定,或者有进程一直在向这个文件写数据等等,要理解这个问题,就需要知道linux下文件的存储机制和存储结构。
OTA测试在5G毫米波测试的应用
使用自己的手机摄像头和图片实现从零开始到点云
开关电源控制环路设计:环路和直流稳压电源的关系
干货 | PLC在安装和维护时应注意的问题
电动汽车电池技术的发展道路依旧漫长
Linux系统不停的报磁盘已满应该如何处理
压力校验台怎样分类
常规全彩LED显示屏与舞台LED显示屏的区别
你需要更合适的AR/VR 交互方式吗?Claw 或许可以
STM32CubeMx定时器基本使用方法
树莓派系列之MQTT低代码实现
智能汽车安全守护者大会演讲实录 | 艾拉比汽车软件升级协同和风险管理
LVR自动调压器的作用和原理
2020年全球半导体市场收入总额为4662亿美元,较2019年增长10.4%
数字化是如何推动城市更智慧的
封测、芯片涨价潮对国内影响几何?
锤子科技已经陷入了巨大资金危机中
OPPO K3即将发布搭载骁龙710处理器起售价最高为1799元
西门子S7-200SMART指针的建立方法
多层PCB板其中有什么奥秘