Linux下/var/spool/clientmqueue空间不足的解决(r6笔记第81天)

今天收到一封报警邮件,内容如下: ------------------------------------

报警内容: 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 这样这个问题的解决就告一段落了,可见一个很细小的变化经过长年累月的积累就会成为一个明显的问题,监控中的设置频率过高反而可能有潜在的问题。

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2015-10-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据和云

YH12:一篇文章读懂SCAN

单客户端访问名称(SCAN)是Oracle RAC环境中使用的功能,为客户端提供访问集群中运行的任何Oracle数据库的单一名称。 用户可以将SCAN视为RAC...

36360
来自专栏散尽浮华

Docker管理工具-Swarm部署记录

介绍另一个管理工具Swarm的用法,Swarm是Docker原生的集群管理软件,与Kubernetes比起来比较简单。

66260
来自专栏点滴积累

Docker网络——单host网络

前言 前面总结了Docker基础以及Docker存储相关知识,今天来总结一下Docker单主机网络的相关知识。毋庸置疑,网络绝对是任何系统的核心,他在Docke...

39650
来自专栏不止是前端

Docker:Windows下部署MySQL

410130
来自专栏漫漫全栈路

Docker循序渐进

上一篇的演示中使用的都是默认登录了Root权限后的操作,而实际的开发运维情况下,我们一般极少使用Root权限,所以Docker提供了一个权限组,我们只需要把当前...

33790
来自专栏编程坑太多

『中级篇』Docker Compose到底是什么(38)

PS:上节通过image 和container的方式创建wordpress,一般麻烦吧还不算特别麻烦,但是相比今天的docker-compose.yml来说,还...

18440
来自专栏云计算

如何在Kubernetes群集上安装,配置和部署NGINX

Kubernetes是一个基于Google Borg的开源容器管理系统。它可以配置为提供高度可用的,水平自动缩放的自动部署。本指南介绍如何在Linode上设置K...

1K30
来自专栏写代码的海盗

Nodejs课堂笔记-第三课 构建一个nodejs的Docker镜像

  因为一直做Linux有关的开发工作,所以不习惯在Windows平台编译和测试代码。在没有Docker之前,windows基本就是一个IDE平台。在wind...

33860
来自专栏Coding01

使用 docker-compose 搭建 Laravel 环境 (三)

有了第二篇《使用 Docker 搭建简易的 Java Web 环境 (二)》,懂了如何通过单一镜像创建 Docker 环境,这篇主要学习如何使用「docker-...

24130
来自专栏finleyMa

docker学习系列2 保存对容器的修改

注意: 经查,不推荐更改运行中的容器配置,容器本身是无状态的,当然也可以通过进入容器内部的方式进行更改: docker exec -it 这样的更改是无法持久...

2.3K10

扫码关注云+社区

领取腾讯云代金券