Magento 2: ошибка в CronJob? MySQL всегда работает с использованием 30 %, и многие процессы php запущены


Я запускаю magento 2 (2.2.1) на nginx и по умолчанию включаю cronjob.

php bin/magento cron:install 

Я не настраиваю никаких настроек в отношении расписания заданий.

После запуска машины через несколько дней я увидел, что служба mysql всегда используется почти на 30-40 %, и на машине выполняется много процессов "php7.1"

Я перезагружаю машину, и ошибка та же, прямо сейчас есть только "несколько" процессов php7.1, но они продолжают поднять

enter image description here

Я уже проверил журналы, там нет ошибок или исключений.

Я нашел проблему только в бэкэнде m2

enter image description here

Этот индексатор всегда не "актуален"

Не могли бы вы, пожалуйста, дать мне подсказку, как я могу решить эту проблему?

Прикрепил скриншот с кронтаба

enter image description here

Author: Barry, 2018-01-08

2 answers

Мое лучшее предположение,

Смотрите это на stackexchange и это на github. Проблема каким-то образом возникает, поскольку некоторые задания не указаны как завершенные. Это довольно долго выводило меня из себя.

Быстрая диагностика, чтобы узнать, есть ли у вас проблема, состоит в том, чтобы выполнить следующий запрос, и если он вернется с более чем 1200-1500 или около того, у вас, вероятно, есть проблема:

select count(*) from cron_schedule;

Быстрое решение состоит в том, чтобы удалить большую часть материалов, которые имеют статус запущенных хронометраж:

delete from cron_schedule where scheduled_at < date_sub(now(), interval 1 hour);

Чтобы избежать повторения, установите cron-задание, которое периодически удаляет застрявшие задания. Ниже задание может быть добавлено в cron-вкладку. Однако, если он у вас есть на общем сервере, пароль и имя пользователя MySQL будут видны другим пользователям, работающим под управлением top-c и аналогичными, и это не рекомендуется, подробнее читайте в рекомендации по безопасности паролей.

* */8 * * * <path_to_mysql_binary_dir>/mysql -u<sql_user> -p'<sql_user_pass>' <database_name> -e "delete from cron_schedule where scheduled_at < date_sub(now(), interval 1 hour)";

Отрегулируйте ***** в соответствии с частотой, я не вижу необходимости запускать его очень часто, так как я все еще не сталкивался с той же проблемой снова после нескольких месяцев быстрого исправления.

 9
Author: user5198077, 2018-01-14 13:03:44

Есть модуль для устранения этой проблемы:

Https://github.com/magemojo/m2-ce-cron

 0
Author: Jay Dinse, 2019-04-10 17:28:32