perl – Munin mysql插件结果不一致,用IPC :: Sharelite store()错误:删除了标识符

前端之家收集整理的这篇文章主要介绍了perl – Munin mysql插件结果不一致,用IPC :: Sharelite store()错误:删除了标识符前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我最近在CentOS服务器上设置了一个munin节点.一切正常,直到我尝试添加apache插件(工作正常).

由于一些奇怪的原因,以前工作的munin的mysql插件停止工作……每当我使用munin-run运行插件时,我现在得到一个奇怪的错误.例如

munin-run MysqL_files_tables

回报我

IPC::ShareLite store() error: Identifier removed at /usr/lib/perl5/vendor_perl/5.8.8/Cache/SharedMemoryBackend.pm line 156

但有时它也会回来

table_open_cache.value 64

Open_files.value 58

Open_tables.value 64

Opened_tables.value 19341

但过了一会儿它会恢复到之前的错误.

我对IPC或ShareLite库没有任何了解,所以我真的不知道是不是要开始寻找.由于它是一个与共享内存相关的模块,我尝试使用ipcs跟踪共享内存段,但没有取得多大成功.

我还没有重新启动机器,因为它用于许多项目(我显然希望能够诊断问题而不需要重新启动,如果可能的话).

有人遇到过这个问题吗? (快速搜索谷歌没有提供任何相关的帮助)

谢谢您的帮助!

解决方法

我已经解决了我的问题,但我还没有找到确切的原因/来源,所以我仍然愿意听取其他人的意见.

基本上,munin的MysqL插件是用perl编写的,使用IPC :: ShareLite.

使用strace我能够确定问题是应用程序卡在特定信号量id的semop上.使用ipcs和ipcrm,我能够删除信号量并再次正确运行插件.

strace给了我semid作为传递给semop的第一个参数.使用ipcrm -s semid,我从系统中删除信号量,这解决了问题.

因此,我被引导相信信号量出现了问题(争论可能,但我没有看到……).

猜你在找的Perl相关文章