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

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

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

munin-run MysqL_files_tables@H_403_3@

回报我@H_403_3@

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

但有时它也会回来@H_403_3@

table_open_cache.value 64@H_403_3@

Open_files.value 58@H_403_3@

Open_tables.value 64@H_403_3@

Opened_tables.value 19341@H_403_3@

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

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

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

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

谢谢您的帮助!@H_403_3@

解决方法

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

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

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

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

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

猜你在找的Perl相关文章