Linux的tmp目录占用空间100%问题分析和解决

一、背景

系统运行期间,客户突然反馈上传文档传不上去。研发立马排查日志,发现日志中出现大量的“No space avaliable on disk”,下意识应用服务器磁盘满了,赶快连上服务器查看磁盘空间占用情况:

黑人问号脸??磁盘占用还好啊,都是10%以下,咋会满呢?联系我后,我说运行“df -i”试试,果不其然:

为什么“df -Th”看tmp磁盘还好,看“df -i”时就占用100%呢?

二、原理分析:

“df -Th”主要是以磁盘物理空间占用情况以用户易读易理解的方式进行输出;

而“df -i”则主要显示文件系统inode的使用情况,inode是文件系统用于存储文件元数据的数据结构,每个文件和目录都会占用一个inode,这个命令对于检查系统是否因为inode耗尽而无法创建新文件非常有用。

综合以上线索,的确是因为inode耗尽,导致的业务系统上传文件失败的问题。

三、如何解决:

快速清理tmp,先恢复业务:

-- 快速清理1天前的tmp文件

find /tmp -mtime +1 -name "tomcat*" | xargs rm -rf

默认/tmp目录操作系统配置的是30天自动清理一次,该时间可以自行调整,不同linux操作系统通过不同方式来调整:

在 Debian-like 的系统,启动的时候才会清理 (规则定义在 /etc/default/rcS )

在 RedHat-like 的系统,按文件存在时间定时清理 (RHEL6 规则定义在 /etc/cron.daily/tmpwatch ; RHEL7 以及 RedHat-like with systemd 规则定义在 /usr/lib/tmpfiles.d/tmp.conf , 通过 systemd-tmpfiles-clean.service 服务调用)

在 CentOS 里,是按文件存在时间清理的 (通过 crontab 的配置 /etc/cron.daily 定时执行 tmpwatch 来实现)

在 Gentoo 里也是启动清理,规则定义在 /etc/conf.d/bootmisc ,但 Gentoo 就是不走寻常路

四、问题复盘:

分析为什么tmp目录会涨的如此快,可以通过“lsof /tmp”来分析哪些进程在持有/tmp目录下的文件资源不释放。

通过这个命令,我分析出来我们业务系统主要就是日志分片太频繁,且在一台服务器上部署应用服务太多,多个系统服务同时产生大量分片的日志文件,短时间之内快速把tmp目录的inode资源耗尽。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/44447.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端程序员常用快捷键

一些常用的快捷键 我们在开发时为了提高代码编写效率,通常会使用一些快捷键。我们开发工具自带的快捷比较多,我这里不一一列举了,我把一些常用的快捷键拿出来给大家大致讲一讲,我这里以window电脑为例,如果你mac电脑&a…

利用Hbuilder创建vue3的web项目

大体流程如下 npm install vue-router4 下载完,就创建完了

【概率统计】如何通俗易懂的理解P值

通俗易懂的P值解析:用简单例子理解统计概念 什么是P值? P值是统计学中的一个概念,用来评估实验结果的罕见程度。它并不能直接告诉实验是否成功或假设是否正确,而是帮助判断在假设成立的情况下,观察到的结果有多罕见。…

模版初阶(更新)

文章目录 模版介绍函数模版模版匹配规则类模版结言 模版介绍 函数模版分为两个类型&#xff1a; 函数模版类模版 函数模版 语法格式&#xff1a; t e m p l a t e < t y p n a m e T 1 , t y p n a m e T 2... > template<typname T1,typname T2...> template&…

用这款免费爬虫神器,不用手动撸代码了!

很多人学习Python和我说是为了“爬虫”&#xff0c;爬虫的用处确实很丰富&#xff0c;如&#xff1a; 市场研究&#xff0c;了解竞争对手信息&#xff0c;爬虫收集舆论信息、产品动态。 价格分析&#xff0c;通过抓取不同平台商品价格&#xff0c;监测价格波动&#xff0c;…

刷题Day48|115.不同的子序列、583. 两个字符串的删除操作、72. 编辑距离

115.不同的子序列 115. 不同的子序列 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;dp[i][j]&#xff1a;以i-1为结尾的s子序列中出现以j-1为结尾的t的个数。dp[i][j]还是考虑两种情况&#xff1a; s[i - 1] t[j - 1]&#xff0c;dp[i][j] dp[i - 1][j - 1] …

MySQL:left join 后用 on 还是 where?

在MySQL中&#xff0c;LEFT JOIN用于返回左表&#xff08;即LEFT JOIN关键字左边的表&#xff09;的所有记录&#xff0c;即使在右表中没有匹配的记录。对于那些右表中没有匹配的记录&#xff0c;结果集中右表的部分会被填充为NULL。关于ON和WHERE子句的使用&#xff0c;它们在…

通过gateway 打印日志全局控制日志

需求&#xff1a; 业务上经常需要打印日志&#xff0c;传统代码加日志&#xff0c;对代码侵入太强&#xff0c;不管是添加删除修改日志 都会改动代码&#xff0c;即使使用注解也需要添加注解&#xff0c;想实现且偶零侵入添加代码。 解决方法 gateway 自定义filter。 前置条…

【Go系列】 Go语言的入门

为什么要学习Go 从今天起&#xff0c;我们将一同启程探索 Go 语言的奥秘。我会用简单明了的方式&#xff0c;逐一讲解 Go 语言的各个知识点&#xff0c;帮助你从基础做起&#xff0c;一步步深化理解。不论你之前是否有过 Go 语言的接触经验&#xff0c;这个系列文章都将助你收获…

题解[自己出的题]

题解 题目&#xff1a; 舞伴配对 思路&#xff1a; 首先我们初始化两个队列 男生队列为q1,女生为q2 然后我们入队 因为我们现在每一个队伍都是有编号的 那我们先处理q1(男生队)&#xff1a; M M M个人 我们要为每一个人进行入队 在第一个循环的第二行(见<)让队首入队&a…

比curl更直观的网站性能测试工具httpstat——筑梦之路

GitHub - davecheney/httpstat: Its like curl -v, with colours. wget https://raw.githubusercontent.com/reorx/httpstat/master/httpstat.pymv httpstat.py /usr/bin/httpstat #移动到环境变量路径chmod x /usr/bin/httpstat #添加可执行权限 exec bash #重置当前bash进…

请编写函数,删除字符串中指定位置下的字符,删除成功函数返回被删字符,否则返回空值

char arr_del(char* p, int pos) {if (pos> strlen(p) || pos<0){printf("这是一个无效下标\n");exit(1);}//到这里就是有效下标char ch p[pos];//把要删除的下标存储for (int i pos; p[i] ! \0; i){p[i] p[i 1];}return ch; } int main() {char arr[100];…

MySQL9.0的新特性

MySQL 9.0 版本出来了&#xff0c;我也学学它的一些新特性。 高级 JSON 数据处理&#xff1a;MySQL 9.0 增强了对 JSON 数据的处理能力&#xff0c;允许用户将 EXPLAIN ANALYZE 命令的 JSON 输出直接保存到用户变量中&#xff0c;这使得查询调试和优化更加容易。例如&#xff0…

使用conda安装openturns

目录 1. 有效方法2. 整体分析使用pip安装使用conda安装验证安装安装过程中可能遇到的问题 1. 有效方法 conda install -c conda-forge openturns2. 整体分析 OpenTURNS是一个用于概率和统计分析的软件库&#xff0c;主要用于不确定性量化。你可以通过以下步骤在Python环境中安…

芋道源码 yudao-cloud 文档,视频,开发指南如何看全部

进入官网后可以看到相关内容 但是后端手册开始就看不了了 必须加入知识知识星球才行&#xff0c;很烦 闲**鱼搜索用户 水城打坐的藤壶 找到这个链接 这下大家都懂了吧 现在就可以看到看不到的内容了 在线文档的弹窗可技术去除&#xff0c;很简单 直接起飞哈 包括更新sq…

数据结构与算法基础篇--二分查找

必要前提&#xff1a;有序数组 算法简述&#xff1a;通过不断取中间值和目标target值进行比较&#xff08;中间值&#xff1a;mid (left right) / 2&#xff09; 如果目标值等于中间位置的值&#xff0c;则找到目标&#xff0c;返回中间位置如果目标值小于中间位置的值&…

YOLOv10改进 | 图像去雾 | MB-TaylorFormer改善YOLOv10高分辨率和图像去雾检测(ICCV,全网独家首发)

一、本文介绍 本文给大家带来的改进机制是图像去雾MB-TaylorFormer&#xff0c;其发布于2023年的国际计算机视觉会议&#xff08;ICCV&#xff09;上&#xff0c;可以算是一遍比较权威的图像去雾网络&#xff0c; MB-TaylorFormer是一种为图像去雾设计的多分支高效Transformer…

vim编辑器的使用

vim编辑器&#xff1a; u:撤销操作 ctrlr取消u操作 w&#xff1a;向后按单词移动 b&#xff1a;向前按照单词移动 :%s/printf/cout/g 将printf替换为cout vs copy.c 分屏操作 ctrlww跨屏操作 &#xff01;gcc test.c :!./a.out在vim中对代码进行编译执行 Centos下配置…

嵌入式系统中的加解密签名(2)--- mbedtls认识与使用

笔者来介绍一下mbedtls认识与使用 1、mbedtls认识 mbedtls&#xff08;Embedded TLS&#xff09;&#xff0c;是嵌入式里面实现的TLS协议&#xff0c;用C语言实现。相关的TLS协议以及加密等知识可以看笔者上一篇文章----嵌入式系统中的加解密签名。 基本特点如下图所示&#x…

【自监督学习】DINO in ICCV 2021

一、引言 论文&#xff1a; DINO: Emerging Properties in Self-Supervised Vision Transformers 作者&#xff1a; Facebook AI Research 代码&#xff1a; DINO 特点&#xff1a; 对于一张图片&#xff0c;该方法首先进行全局和局部的裁剪与增强并分别送入教师和学生网络&am…