Я решил свою проблему, но я еще не нашел точной причины / источника, поэтому я все еще открыт для получения информации от других.
В основном, плагины mysql для munin написаны на perl, используйте IPC :: ShareLite.
Используя strace , я смог определить, что проблема в том, что приложение застревает на семопе на определенном идентификаторе семафора. Используя ipcs и ipcrm , я смог удалить семафор и снова запустить плагин.
strace дает мне полусид как первый аргумент передается в semop . С помощью ipcrm -s semid я удаляю семафор из системы, что устраняет проблему.
Таким образом, я убежден, что что-то пошло не так с семафором (возможно, спор, но я не не вижу из чего ...).
Натолкнулся на эту проблему несколько дней назад. Моим решением была замена Cache::SharedMemoryCache
на Cache::FileCache
в плагине mysql_
, как показано ниже:
*** mysql_ 2015-12-20 15:13:12.000000000 +0100
--- mysqlnew_ 2015-12-20 15:12:43.000000000 +0100
*************** use Munin::Plugin;
*** 143,149 ****
my $has_cache;
BEGIN {
! eval 'require Cache::SharedMemoryCache';
$has_cache = $@ ? 0 : 1;
}
--- 143,149 ----
my $has_cache;
BEGIN {
! eval 'require Cache::FileCache';
$has_cache = $@ ? 0 : 1;
}
*************** my %cache_options = (
*** 172,178 ****
my $shared_memory_cache ;
if ($has_cache)
{
! $shared_memory_cache = Cache::SharedMemoryCache->new(\%cache_options)
or die("Couldn't instantiate SharedMemoryCache");
}
--- 172,178 ----
my $shared_memory_cache ;
if ($has_cache)
{
! $shared_memory_cache = Cache::FileCache->new(\%cache_options)
or die("Couldn't instantiate SharedMemoryCache");
}