`

Linux 6中Cachefilesd服务过量日志问题解决

 
阅读更多
我们在实际运维环境中,对操作系统OS的维护是必须进行的。应用系统是一个整体,绝对不仅仅包括应用服务器上运行的应用程序本身和数据库服务器,还包括操作系统、网络、存储甚至硬件方面。对应用系统整体的监控保障,才能带来最稳定的运行性能。
绝大多数情况下,我们环境中的操作系统都是可以持续运行的,不会引起大的问题。一旦出现当机、服务器Hange住的情况,就可能导致灾难性的结果。所以,亡羊补牢不如防微杜渐,经常性的查看系统运行情况,查看磁盘空间、CPU使用率和各种日志信息,都可以尽早帮助我们解决操作系统层面问题。
本篇介绍一个简单的Linux进程Bug解决问题。

1、问题介绍

一个接受的新系统,应用服务器和数据库服务器均为Linux 6版本。系统本身架构比较简单,而且运行一年来也没有什么严重故障发生。

[root@TESTDB ~]# uname -r
2.6.32-131.0.15.el6.x86_64
[root@TESTDB ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.1 (Santiago)
[root@TESTDB ~]# uptime
11:28:14 up 66 days, 21:31,  1 user,  load average: 0.50, 0.44, 0.37 –有例行关机维护

Linux环境中,最常见日志为/var/log目录,检查message是我们直接的日志检查策略。

[root@TESTDB ~]# tail -n 10 /var/log/messages
Mar 26 08:31:42 TESTDB cachefilesd[1591]: Scan complete
Mar 26 08:32:12 TESTDB cachefilesd[1591]: Scan complete
Mar 26 08:32:42 TESTDB cachefilesd[1591]: Scan complete
Mar 26 08:33:12 TESTDB cachefilesd[1591]: Scan complete
Mar 26 08:33:42 TESTDB cachefilesd[1591]: Scan complete
Mar 26 08:34:12 TESTDB cachefilesd[1591]: Scan complete
Mar 26 08:34:42 TESTDB cachefilesd[1591]: Scan complete
Mar 26 08:35:12 TESTDB cachefilesd[1591]: Scan complete
Mar 26 08:35:42 TESTDB cachefilesd[1591]: Scan complete
Mar 26 08:36:12 TESTDB cachefilesd[1591]: Scan complete

日志量很大,从每周自动归档情况看,日志总量大已经持续比较长时间了。

[root@TESTDB ~]# cd /var/log/
[root@TESTDB log]# ls -l | grep message
-rw-------. 1 root         root         549637 Mar 26 08:55 messages
-rw-------. 1 root         root        1193545 Mar  2 03:31 messages-20140302
-rw-------. 1 root         root        1191893 Mar  9 03:16 messages-20140309
-rw-------. 1 root         root        1194902 Mar 16 03:27 messages-20140316
-rw-------. 1 root         root        1195079 Mar 23 03:39 messages-20140323

从日志上看,服务进程cachefilesd在每隔30s,自动写入一条记录。除了日志过多冗余条目外,没有其他问题爆出。
message信息本身是中性的,通知调错类信息。过于频繁的正常信息在其中,是容易将错误内容淹没其中的。所以期望还是可以加以解决。

2、故障分析

我们遇到的故障错误是分种类的。一个极端是紧急严重,比如操作系统宕机、hang住无响应,直接影响业务运行,甚至数据丢失。另一个极端就是一些短期不会引起大问题的“小故障”。紧急严重错误考验的是运维人员的知识、经验和心理素质,而小故障考验的职业精神和专业素质。
对于这个问题,笔者也没有什么很好地思路,只有求助官方资料库。在Red Hat官网的客户订阅中,笔者找到了文章《Why server is flodded with `cachefilesd Scan complete` messages?》其中描述了相同的问题。
Cachefilesd进程是负责进行网络文件系统的文件和目录缓存管理的,比如AFS和NFS这类网络文件系统,需要在本地系统中存在一个Cache对象。这个问题是由于cachefilesd服务自身的bug造成的,由于内部设置了错误的日志级别(log level)。所以每次cachefilesd在工作进行Scan的时候,都会写入到/var/log/messages日志文件里面。
这个问题已经被Red Hat列入为Bug,编号为680127。cachefilesd是作为操作系统的一个后台服务进行工作的。当'/var/cache/fscache/cache'为空的的时候,就会自动将Scan Completed信息写入到日志中。
根据频率,每分钟会进行两条日志的写入。这个和我们实际系统的情况相符合。
版本是Linux 6,cachefilesd包版本为0.10.1-2。查看当前系统版本情况。

[root@TESTDB ~]# rpm -qa | grep cachefilesd
cachefilesd-0.10.1-2.el6.x86_64

修复方法是将cachefilesd版本升级到最新版本,就可以避免问题出现。

3、问题解决

定位到了问题,解决策略就是升级cachefilesd包。从官方网站上搜索专门的rpm包下载,目录如下:



下载最新的版本0.10.2.1。使用rpm进行安装。

[root@TESTDB ~]# cd /
[root@TESTDB /]# mkdir updates
[root@TESTDB /]# cd updates
[root@TESTDB updates]# ls -l
total 36
-rw-r--r--. 1 root root 35332 Mar 26 08:52 cachefilesd-0.10.2-1.el6.x86_64.rpm

参数-Uvh会去自己判断当前版本情况,如果是没有对应程序就直接安装,否则就进入升级模式。

[root@TESTDB updates]# rpm -Uvh cachefilesd-0.10.2-1.el6.x86_64.rpm
warning: cachefilesd-0.10.2-1.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                ########################################### [100%]
   1:cachefilesd            ########################################### [100%]

最后检查效果,日志中包括了cachefilesd服务终止重启的过程。重启之后,就再没有新日志项目产生。

Mar 26 08:55:12 TESTDB cachefilesd[1591]: Scan complete
Mar 26 08:55:21 TESTDB cachefilesd[1591]: Daemon Terminated
Mar 26 08:55:21 TESTDB kernel: CacheFiles: File cache on sda3 unregistering
Mar 26 08:55:21 TESTDB kernel: FS-Cache: Withdrawing cache "mycache"
Mar 26 08:55:21 TESTDB cachefilesd[10518]: About to bind cache
Mar 26 08:55:21 TESTDB cachefilesd[10518]: Bound cache
Mar 26 08:55:21 TESTDB kernel: FS-Cache: Cache "mycache" added (type cachefiles)
Mar 26 08:55:21 TESTDB kernel: CacheFiles: File cache on sda3 registered
Mar 26 08:55:21 TESTDB cachefilesd[10519]: Daemon Started

作为服务的cachefilesd,也工作正常。

[root@TESTDB ~]# service cachefilesd status
cachefilesd (pid  10519) is running...
[root@TESTDB ~]# chkconfig --list cachefilesd
cachefilesd     0:off   1:off   2:on    3:on    4:on    5:on    6:off

故障解决。

4、结论

在实际运维环境中,各种故障都是可能发生的。而且诊断问题、解决问题需要很多经验的积累和总结。及时发现问题、防微杜渐是保障系统持续健康运行的最好保障。“救火队员”不如“老黄牛”,也就是这个道理。

转自:http://blog.itpub.net/17203031/viewspace-1130002/
分享到:
评论

相关推荐

    高中化学全部过量少量问题化学方程式总结.doc

    高中化学中的过量与少量问题是化学反应中常见的概念,它们主要涉及到反应物比例对最终产物的影响。以下是对题目中涉及的化学方程式及其知识点的详细解释: 1. **铝离子与氢氧根离子的反应**: 当AlCl3与NaOH反应时...

    解决电池组件中过量电流“泄漏”问题

    为了更有效地解决过量漏电流问题,德州仪器(TI)提供了一个更优化的设计方案,使用TPS3420按钮控制器来控制电池与负载之间的连接。TPS3420是一款超低静态电流(Iq)的按钮控制器,它通过一个按钮的触摸操作,延迟...

    读写WIN2K事件日志的源代码

    在Windows 2000(简称WIN2K)操作系统中,事件日志是记录系统、应用程序和服务中发生的重要事件和错误的重要工具。这些日志帮助管理员监控系统状态,诊断问题,以及确保系统的稳定运行。本篇文章将深入探讨如何通过...

    高中化学全部“过量、少量”问题化学方程式总结.docx

    高中化学中的“过量”与“少量”问题常常出现在化学反应方程式的书写中,这涉及到反应物的相对量对反应结果的影响。以下是对文档中提及的几个重要知识点的详细解释: 1. **铝离子与氢氧根离子的反应**: - 当AlCl3...

    Linux 系统内核级软件的调试技术(四)

    此外,内核栈使用情况的监控、驱动核心的详细调试信息输出,以及SCSI设备的详细错误报告等选项都可以帮助开发者更准确地定位和解决问题。 以上提到的调试选项都能够帮助开发者在软件开发过程中提前发现和解决潜在的...

    双光子过量的有效解释

    我们讨论了必须通过的一些一致性测试,以便成功地解释由标量或伪标量状态(可能是复合性质)衰减到两个光子而在较大质量尺度上产生的... 我们发现可以解决自然问题,并且可以更好地保护伪标量模型免受较低的能量约束。

    电信设备-可移动撬装式加油站中的防过量灌装装置.zip

    《电信设备:可移动撬装式加油站中的防过量灌装装置》 在现代电信行业中,能源供应是保障通信设施正常运行的关键要素之一。可移动撬装式加油站作为一种灵活、高效的能源补给解决方案,被广泛应用于偏远地区或临时性...

    linux-memory-manage.rar_Linux 内存管理_linux_memory_内存管理 linux_内存管理

    1. 物理内存:在Linux中,物理内存是指计算机硬件中的RAM,分为用户空间和内核空间。用户空间供应用程序使用,内核空间由操作系统管理,执行内核功能。 2. 虚拟内存:Linux使用虚拟内存系统,使得每个进程都有自己...

    给予Linux下的MP3播放器

    1. **多进程编程**:在Linux中,多进程是指同时运行多个独立的程序实体,每个都有自己的内存空间和系统资源。在MP3播放器中,可能采用多进程结构来实现如音频解码、用户界面和后台任务等功能的分离。例如,一个进程...

    酿酒酵母菌中过量表达BAT2和缺失PDC6提高异丁醇产率

    李杨、张爱利等人的研究,通过过量表达BAT2基因和缺失PDC6基因,显著提升了异丁醇的产率。具体来说,BAT2基因编码分支氨基酸转氨酶,是异丁醇合成途径中的重要酶之一。通过过量表达这个基因,可以增强异丁醇的合成...

    高一化学过量计算PPT学习教案.pptx

    【知识点详解】 高一化学中的过量计算是解决化学反应问题的一个重要方法,尤其是在处理涉及两种或多种反应物的反应时。...通过实际的练习题,学生能够加深对这些概念的理解,并提高解决问题的能力。

    解决问题与决策分析.pptx

    在《解决问题与决策分析》的培训中,主要目的是帮助参与者理解问题的本质,学习有效的解决问题和决策的方法,并将其应用到实际工作和生活中。问题通常被描述为困扰、不满或矛盾,定义为期望与实际结果之间的差距。...

    linux内核 slab内存分配器分析

    6. **优化策略**:Slab分配器还包括一些优化技术,例如部分填充的slab合并、过量分配和slab预留,以提高内存利用率和分配速度。 **Slab分配器的组件和概念:** - **Slab**:内存页,被划分为固定大小的对象集合。 ...

    杂散串衍生模型中的750 GeV双光子LHC过量和过量Z'

    这种过量可能会在杂散字符串衍生的Z'模型中产生,其中双光子过量可能与负责Z'对称性破坏的标准模型单重态标量有关,而双玻色子过量则是由于产生了额外的矢量玻色子 。 字符串Z'模型中的其他类似矢量的状态有助于...

    linux的redis启动关闭命令.docx

    Linux 的 Redis 启动关闭命令 Linux 的 Redis 启动关闭命令是通过命令来实现的。下面是 Linux 下 Redis ...需要注意的是,需要解决过量使用内存设置的问题,并需要修改 Redis 的配置文件以使其以守护进程模式运行。

    精益生产系统的解决问题的方法.pptx

    在实施系统解决问题的过程中,避免常见的误区至关重要,比如过分依赖短期应急措施、缺乏持久性、不寻求专家意见、目标不清以及疏于跟进评估。成功的解决问题需要管理层的支持、资源的投入、有效的沟通和持续的改进...

    MiniBooNE短基线中微子实验中电子样事件的显着过量

    MiniBooNE数据的能量和大小与液体闪烁器中微子检测器(LSND)报告的过量事件一致,并且LSND和MiniBooNE过量的组合的显着性为6.0σ。 数据的两个中微子振荡解释将需要至少四个中微子类型,并指示超出三个中微子范式...

    AWS(亚马逊)云解决方案架构师面试实践过程作业全英文PPT演示

    在分析业务需求时,首先需要了解公司的背景、面临的问题以及预期的解决方案。例如,一个小型公司可能目前依赖于单一桌面PC运行LAMP(Linux、Apache、MySQL、PHP/Perl/Python)堆栈,但预期在未来几个月内会有显著且...

Global site tag (gtag.js) - Google Analytics