Sphinx Searchd долго перезагружается

Мы используем Sphinx (2.0.4) около 4 лет, но в последнее время (как месяц назад) поиски стали прерываться один раз в час.

У нас большое обновление всех данных за ночь, что не вызывает никаких проблем. Затем в начале каждого часа выполняется индексация, которая обычно добавляет от 20 до 30 строк в индекс.

Итак, cronjob запускается раз в час:

#!/bin/bash

date1=`date`
echo "$date1 : Starting indexation..." >> /cyber/indexer-new.log

/usr/local/bin/indexer -c /etc/sphinx.conf newCompanies --noprogress --rotate
date1=`date`
echo "$date1 : Indexation ended" >> /cyber/indexer-new.log

date1=`date`
echo "$date1 : Restart searchd" >> /cyber/indexer-new.log

/usr/local/bin/searchd -c /etc/sphinx.conf --stopwait
exitCode=`echo $?`
echo "Exit code (--stopwait) : $exitCode" >> /cyber/indexer-new.log

/usr/local/bin/searchd -c /etc/sphinx.conf
exitCode=`echo $?`
echo "Exit code (restart sphinx) : $exitCode" >> /cyber/indexer-new.log

date1=`date`
echo "$date1 : searchd restarted.." >> /cyber/indexer-new.log

exit 0

В результате получается что-то вроде этого (searchd.log), но с 70000 строками воспроизведения binlog (1560 файлами binlog), которые кажутся пустыми:

[Wed May 18 10:01:14.541 2016] [11983] rotating indices (seamless=1)
[Wed May 18 10:01:14.545 2016] [11983] caught SIGTERM, shutting down
[Wed May 18 10:01:16.953 2016] [11983] shutdown complete
[Wed May 18 10:01:16.954 2016] [11982] Child process 11983 has been finished, exit code 0. Watchdog finishes also. Good bye!
[Wed May 18 10:01:16.957 2016] [13505] Child process 13506 has been forked
[Wed May 18 10:01:16.958 2016] [13506] listening on all interfaces, port=9312
[Wed May 18 10:01:16.958 2016] [13506] listening on all interfaces, port=9306
[Wed May 18 10:01:36.131 2016] [13506] rotating index 'newCompanies': success
[Wed May 18 10:01:36.133 2016] [13506] binlog: replaying log /usr/local/var/data/binlog.001
[Wed May 18 10:01:36.133 2016] [13506] binlog: replay stats: 0 rows in 0 commits; 0 updates; 0 indexes

Но теперь это выглядит так

[Sun Jul 31 10:00:57.285 2016] [28792] rotating indices (seamless=1)
[Sun Jul 31 10:00:57.292 2016] [28792] caught SIGTERM, shutting down
[Sun Jul 31 10:00:57.294 2016] [28792] rotating index 'newCompanies': started
[Sun Jul 31 10:00:57.404 2016] [28792] rotating index 'newCompanies': success
[Sun Jul 31 10:00:57.404 2016] [28792] rotating index: all indexes done
[Sun Jul 31 10:01:00.166 2016] [28792] shutdown complete
[Sun Jul 31 10:01:00.167 2016] [28791] Child process 28792 has been finished, exit code 0. Watchdog finishes also. Good bye!
[Sun Jul 31 10:01:00.175 2016] [29781] Child process 29782 has been forked
[Sun Jul 31 10:01:00.175 2016] [29782] listening on all interfaces, port=9312
[Sun Jul 31 10:01:00.175 2016] [29782] listening on all interfaces, port=9306
[Sun Jul 31 10:03:01.946 2016] [29782] binlog: replaying log /usr/local/var/data/binlog.001
[Sun Jul 31 10:03:01.953 2016] [29782] binlog: replay stats: 0 rows in 0 commits; 0 updates; 0 indexes
[Sun Jul 31 10:03:01.953 2016] [29782] binlog: finished replaying /usr/local/var/data/binlog.001; 0.0 MB in 0.000 sec

Обратите внимание на 2-минутный разрыв.

Журнал cronjob выглядит так:

Mon Aug  1 11:00:01 EDT 2016 : Starting indexation...
Mon Aug  1 11:01:17 EDT 2016 : Indexation ended
Mon Aug  1 11:01:17 EDT 2016 : Restart searchd
Exit code (--stopwait) : 0
Exit code (restart sphinx) : 0
Mon Aug  1 11:04:40 EDT 2016 : searchd restarted..

Похоже, searchd требуется 2-3 минуты для перезапуска, в отличие от месяца назад (и ничего не изменилось). И код выхода 0 означает, что произошла ошибка во время остановки или запуска searchd.

Кажется, я не могу найти то, что заставляет эти binlogs быть созданными и не знаю, где искать больше. Есть идеи, в чем может быть проблема? Какой журнал я не посмотрел, чтобы узнать больше о проблеме?

Спасибо

0 ответов

Другие вопросы по тегам