Laravel Планирование задач потребляет 60% процессорного времени - PullRequest
0 голосов
/ 27 апреля 2020

Я использую Laravel планировщик, который l oop поверх некоторой конфигурации и вызывает команды кустарного мастерства.

Что я заметил, что каждый раз, когда планировщик запускается, он потребляет 60% ЦП и то же самое для команд запускается из планировщика, начинается с высокой загрузки ЦП и заканчивается на 1,5% ЦП.

Любая подсказка, что может привести к такому поведению?

Спасибо;)

1 Ответ

0 голосов
/ 27 апреля 2020

Поскольку вопрос касается потребления процессора, я предполагаю, что причиной может быть optmization.

1) Давайте сначала попробуем сделать это с php функцией memory_get_usage. Поскольку вы используете Laravel Планировщик , я рекомендую добавить нижеприведенный блок кода, где это необходимо, и Log их шаг за шагом, чтобы увидеть использование памяти.

<?php
function convert($size)
{
    $unit=array('b','kb','mb','gb','tb','pb');
    return @round($size/pow(1024,($i=floor(log($size,1024)))),2).' '.$unit[$i];
}

echo convert(memory_get_usage(true)); // 123 kb
Log::debug('memory usage');
?>

Вы можете получить доступ к журналам в папке / storage / logs. По крайней мере, вы получите представление о том, где ваша память расходуется без необходимости.

2) Затем вы можете go через эти 6 шагов оптимизации , разработанных в этом вопросе о переполнении стека.

3) Как часто работает планировщик? Может быть, вы можете увеличить интервал.

4) Когда вы запускаете его? Если вы запускаете его, когда портал забит пользователями, попробуйте изменить время на более позднюю / предыдущую стадию, когда сервер не используется пользователями.

Наконец , я могу сказать, что в большинстве случаев это из-за плохого кодирования. Refactor , чтобы вы могли повторно использовать код. Оптимизируйте , чтобы вы использовали то, что нужно. Надеюсь, поможет. Ура!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...