Мы используем развертывание k8s в качестве рабочего очереди laravel. Среда выполнения - alpine 3.10 и php 7.3 fpm с laravel 5.6. Наши ограничения на ресурсы - это запросы: 512 Мбайт и лимиты 1Ги.
мы запускаем 8 реплик для разгрузки входящих сообщений из SQS, и мы используем. сообщения в очередь отправляются через задания cron kubernetes
php /var/www/artisan queue:work ${CHANNEL} -vvv --tries=3 --sleep=3 --timeout=3600 --memory=${MEMORY}
где CHANNEL - это имя очереди (SQS), а MEMORY - это ограничение памяти, переданное рабочему laravel. в среднем каждый модуль всегда обрабатывает более 170 сообщений, которые взаимодействуют с различными сторонними API и прочим.
проблема:
периодически наши поды перезагружаются с кодом ошибки 139,
SIGSEGV, Ошибка сегментации.
Это влияет на наши производственные системы, так как наши модули перезапускаются, пока есть сообщение.