Linux下/var/spool/clientmqueue空间不足的解决

简介: 今天收到一封报警邮件,内容如下: ------------------------------------ 报警内容: Free disk space is less than 15% on volume /var ------------------...
今天收到一封报警邮件,内容如下:
------------------------------------

报警内容: Free disk space is less than 15% on volume /var
------------------------------------
报警级别: PROBLEM
------------------------------------
监控项目: Free disk space on /var (percentage)10 %
------------------------------------
报警时间:2015.10.07-09:56:24

这条报警邮件的信息已经很清楚了,是/var目录下的空间不足了,我们来看一看是怎么回事。
首先到目录下查看df -h的时候,空间剩余9%,说明这个空间还在不断的收缩中。
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             7.8G  908M  6.5G  13% /
/dev/sda6             7.8G  6.7G  746M  91% /var
/dev/sda5             7.8G  2.0G  5.5G  27% /usr
/dev/sda1             122M   12M  104M  10% /boot
tmpfs                  48G   36K   48G   1% /dev/shm
/dev/shm               48G   36K   48G   1% /tmp
/dev/sda7             497G  391G   81G  83% /home
然后在/var/spool/clientmqueue下发现了大量的文件,绝大部分的空间消耗都在这儿。
随便拿出一条来看看到底是什么内容。发现是一个脚本在检查listener的日志。
# more dfs32Ct1KE012443
Start: 20140402205501
checking listener listener ...OK
checking listener listener_1525 ...OK
checking listener listener_1528 ...OK
checking listener listener_1523 ...OK
checking listener listener_1522 ...OK
End: 20140402205516
进一步进行验证,拿出最新的5个文件,查看文件内容也是如此。
clientmqueue]# ls -lrt|tail -5
-rw-rw---- 1 oracle smmsp   228 Oct  7 10:02 dft97221Lc010415
-rw-rw---- 1 oracle smmsp   919 Oct  7 10:03 qft97231cW026036
-rw-rw---- 1 oracle smmsp   228 Oct  7 10:03 dft97231cW026036
-rw-rw---- 1 oracle smmsp   919 Oct  7 10:04 qft97241rm007778
-rw-rw---- 1 oracle smmsp   228 Oct  7 10:04 dft97241rm007778
clientmqueue]# more dft97241rm007778
Start: 20151007100401
checking listener listener ...OK
checking listener listener_1525 ...OK
checking listener listener_1528 ...OK
checking listener listener_1523 ...OK
checking listener listener_1522 ...OK
End: 20151007100416
说明基本可以说明是因为检查listener的脚本产生了大量的日志文件。
因为这种日志文件对我们确实没有太多的用处,可以考虑删除,当然直接删除还是会报错误的,可以慢慢分批删除 ls|xargs -n 10 rm
删除后空间马上释放出来了。释放了近6G的文件。
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             7.8G  908M  6.5G  13% /
/dev/sda6             7.8G  1.1G  6.4G  15% /var
/dev/sda5             7.8G  2.0G  5.5G  27% /usr
/dev/sda1             122M   12M  104M  10% /boot
tmpfs                  48G   36K   48G   1% /dev/shm
/dev/shm               48G   36K   48G   1% /tmp
/dev/sda7             497G  391G   81G  83% /home

问题现在解决了,我们来看看问题是怎么回事,对于crontab 中设置的job如果有输出内容,这些内容会以mail的形式发送给对应的cron job用户,如果这个时候sendmail没有启动就会在这个路径下产生这些日志文件。
首先抓取了最新的文件内容。可以看到文件生成的频率很高,几乎是每分钟一个文件。
clientmqueue]# ll
total 64
-rw-rw---- 1 oracle smmsp 228 Oct  7 10:08 dft97281ag005351
-rw-rw---- 1 oracle smmsp 228 Oct  7 10:09 dft97292uQ011260
-rw-rw---- 1 oracle smmsp 228 Oct  7 10:12 dft972C1Xg025752
-rw-rw---- 1 oracle smmsp 228 Oct  7 10:13 dft972D11d025507
-rw-rw---- 1 oracle smmsp 228 Oct  7 10:14 dft972E1IS008404
-rw-rw---- 1 oracle smmsp 228 Oct  7 10:15 dft972F1Oi023669
-rw-rw---- 1 oracle smmsp 228 Oct  7 10:16 dft972G1Xr006590
-rw-rw---- 1 oracle smmsp 228 Oct  7 10:17 dft972H1I8022068
-rw-rw---- 1 oracle smmsp 919 Oct  7 10:08 qft97281ag005351
-rw-rw---- 1 oracle smmsp 919 Oct  7 10:09 qft97292uQ011260
-rw-rw---- 1 oracle smmsp 919 Oct  7 10:12 qft972C1Xg025752
-rw-rw---- 1 oracle smmsp 919 Oct  7 10:13 qft972D11d025507
-rw-rw---- 1 oracle smmsp 919 Oct  7 10:14 qft972E1IS008404
-rw-rw---- 1 oracle smmsp 919 Oct  7 10:15 qft972F1Oi023669
-rw-rw---- 1 oracle smmsp 919 Oct  7 10:16 qft972G1Xr006590
-rw-rw---- 1 oracle smmsp 919 Oct  7 10:17 qft972H1I8022068
查看crontab -l可以看到,检查脚本执行的频率还是很高的。
2-9,12-29,31-59 * * * * . $HOME/.xxxxprofile;$HOME/dbadmin/scripts/lsnr_check.sh
对于listener的检查,其实不需要这么频繁的监控,可以适当把频率放慢一些,根据普遍的机器设置还是一个小时2次检查。比如这样设置:
9,39 * * * * . $HOME/.xxxxprofile;bash $HOME/dbadmin/scripts/lsnr_check.sh 
日志文件清除了,日志文件的生成频率也降低了,但是问题还是指标没有治本。
对于这些检查日志,可以当做一个后台任务,不需要每次检查都生成大量的日志,一种方式就是直接屏蔽日志,比如设置为下面的形式。
9,39 * * * * . $HOME/.xxxxprofile;bash $HOME/dbadmin/scripts/lsnr_check.sh > /dev/null 2>&1
这样这个问题的解决就告一段落了,可见一个很细小的变化经过长年累月的积累就会成为一个明显的问题,监控中的设置频率过高反而可能有潜在的问题。
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
4天前
|
关系型数据库 MySQL Unix
linux优化空间&完全卸载mysql——centos7.9
linux优化空间&完全卸载mysql——centos7.9
56 7
|
4天前
|
安全 Linux 虚拟化
网络名称空间在Linux虚拟化技术中的位置
网络名称空间(Network Namespaces)是Linux内核特性之一,提供了隔离网络环境的能力,使得每个网络名称空间都拥有独立的网络设备、IP地址、路由表、端口号范围以及iptables规则等。这一特性在Linux虚拟化技术中占据了核心位置🌟,它不仅为构建轻量级虚拟化解决方案(如容器📦)提供了基础支持,也在传统的虚拟机技术中发挥作用,实现资源隔离和网络虚拟化。
网络名称空间在Linux虚拟化技术中的位置
|
4天前
|
安全 Linux 网络虚拟化
Linux网络名称空间和Veth虚拟设备的关系
在讨论Linux网络名称空间和veth(虚拟以太网对)之间的关系时,我们必须从Linux网络虚拟化的核心概念开始。Linux网络名称空间和veth是Linux网络虚拟化和容器化技术的重要组成部分,它们之间的关系密不可分,对于构建隔离、高效的网络环境至关重要。😊
|
4天前
|
安全 Linux API
Linux网络名称空间的抽象设计以及借鉴意义
Linux作为一个强大的开源操作系统🐧,其网络虚拟化技术中的核心组件——网络名称空间(Network Namespace),是对网络资源的一种高度抽象。网络名称空间允许系统内部存在多个隔离的网络环境,每个环境都有自己的网络设备、IP地址、路由表等资源。这一机制不仅对于云计算☁️、容器化部署📦至关重要,也为应用开发提供了丰富的可能性。本文将全方位、系统性、多维度分析Linux是如何抽象网络名称空间的,以及为此所做的努力,并探讨其对应用开发人员的借鉴和学习意义。
Linux网络名称空间的抽象设计以及借鉴意义
|
4天前
|
网络协议 安全 Linux
Linux网络名称空间之独立网络资源管理
Linux网络名称空间是一种强大的虚拟化技术🛠️,它允许用户创建隔离的网络环境🌐,每个环境拥有独立的网络资源和配置。这项技术对于云计算☁️、容器化应用📦和网络安全🔒等领域至关重要。本文将详细介绍在Linux网络名称空间中可以拥有的独立网络资源,并指出应用开发人员在使用时应注意的重点。
|
4天前
|
安全 网络协议 Linux
Linux网络名称空间概述
Linux网络名称空间是操作系统级别的一种虚拟化技术🔄,它允许创建隔离的网络环境🌐,使得每个环境拥有自己独立的网络资源,如IP地址📍、路由表🗺️、防火墙规则🔥等。这种技术是Linux内核功能的一部分,为不同的用户空间进程提供了一种创建和使用独立网络协议栈的方式。本文旨在全方面、多维度解释Linux网络名称空间的概念、必要性和作用。
Linux网络名称空间概述
|
4天前
|
存储 编译器
Linux--程序地址空间
Linux--程序地址空间
|
4天前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 创建一个用作交换空间(swap space)的特殊文件或设备 mkswap命令使用教程
【Shell 命令集合 磁盘维护 】Linux 创建一个用作交换空间(swap space)的特殊文件或设备 mkswap命令使用教程
43 0
|
4天前
|
存储 安全 Linux
Linux:进程地址空间
Linux:进程地址空间
25 10
|
4天前
|
存储 缓存 监控