加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – Munin mysql插件结果不一致,用IPC :: Sharelite store()

发布时间:2020-12-15 21:39:27 所属栏目:大数据 来源:网络整理
导读:我最近在CentOS服务器上设置了一个munin节点.一切正常,直到我尝试添加apache插件(工作正常). 由于一些奇怪的原因,以前工作的munin的mysql插件停止工作……每当我使用munin-run运行插件时,我现在得到一个奇怪的错误.例如 munin-run mysql_files_tables 回报我
我最近在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,我从系统中删除信号量,这解决了问题.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读