AWS ElasticBeanstalk периодически выходит из строя - PullRequest
0 голосов
/ 23 ноября 2018

Недавно я заметил, что мой проект laravel в AWS Elasticbeanstalk работает странно.Сервер отключится через несколько минут.В t3.small он падает каждые 50 минут.Вкладка здоровья говорит, что память исчерпана или что-то.Это будет "Суровым" в течение приблизительно 5-10 минут, затем возвращается без меня, делающего что-либо.В основном просто зигзаг в мониторинге.В t3.nano это происходит примерно каждые 5 минут.

Вот несколько вещей, которые я сделал, что я подозреваю , что является причиной

  • Я снова включил толкатель для вещания.Проект имел настройку толкателя и работал нормально.Однако я отключил (удалил все части, которые его используют), так как он мне пока не нужен.Я снова включил его, и возникла проблема
  • Я играл с AWS WAF и Cloudfront.Поэтому я изучал эти две части раньше и играл с некоторыми настройками, однако я не помню, чтобы я использовал какую-либо из них, связанную с моим приложением EBS.Я удалил все, что добавил в WAF и Cloudfront.

Вот некоторые факты:

  • Всякий раз, когда я удаляю команды контейнера, создающие расписание: run и queue:работать, становится совершенно нормально.Состояние «ОК», даже если я имитирую отправку сотен запросов в секунду.
  • Я попытался масштабировать его до 3 экземпляров, и результат остается тем же, однако время простоя просто замедляется
  • Он выдает код ошибки 503, когда он не работает
  • Настройка EBS - это PHP 7.2, работающий на 64-битной версии Amazon Linux / 2.8.4
  • Я проверяю работу и очередь, отправляя 1 сообщение-толкателькаждую минуту.Это ничего не делает, кроме отправки текущего времени.Это также единственный запущенный cronjob.
  • cronjob работает, и я также могу получать сообщения Pusher, кроме случаев простоя

Вот наблюдение, которое я имел с журналами - Существует «внутреннее фиктивное соединение», связанное с Apache.Время, когда оно регистрируется, идентично времени простоя.

Я перепробовал все подсказки в журналах, от манипулирования различными настройками cronjob и других возможных причин.Я также пытался спросить своих коллег, но никто не сталкивался с такой ошибкой раньше.Фактически, они проверили мой cronjob, и он у них работает правильно.

У меня также есть эта ошибка в / var / log / httpd / error_log

[Fri Nov 23 19:07:35.208657 2018] [suexec:notice] [pid 3142] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) [Fri Nov 23 19:07:35.228633 2018] [http2:warn] [pid 3142] AH10034: The mpm module (prefork.c) is not supported by mod_http2. The mpm determines how things are processed in your server. HTTP/2 has more demands in this regard and the currently selected mpm will just not do. This is an advisory warning. Your server will continue to work, but the HTTP/2 protocol will be inactive. [Fri Nov 23 19:07:35.228644 2018] [http2:warn] [pid 3142] AH02951: mod_ssl does not seem to be enabled [Fri Nov 23 19:07:35.229188 2018] [lbmethod_heartbeat:notice] [pid 3142] AH02282: No slotmem from mod_heartmonitor [Fri Nov 23 19:07:35.267841 2018] [mpm_prefork:notice] [pid 3142] AH00163: Apache/2.4.34 (Amazon) configured -- resuming normal operations [Fri Nov 23 19:07:35.267860 2018] [core:notice] [pid 3142] AH00094: Command line: '/usr/sbin/httpd -D FOR

1 Ответ

0 голосов
/ 28 ноября 2018

Это случай неожиданных сюрпризов с кредитом ЦП и ограничениями регулирования для экземпляров t2 / t3. * EC2.1 кредит ЦП позволяет экземпляру (t2 / t3) работать на 100% ЦП в течение 1 минуты.Все кредиты ЦП экземпляра t2 / t3. * Пополняются с постоянной скоростью в час для запущенных экземпляров (эта скорость зависит от класса экземпляра).Следовательно, длительные периоды нагрузки (выше определенного порога) будут постепенно истощать эти кредиты, приводя к состояниям, которые вы описали выше.

Рекомендуется использовать экземпляры более высокого уровня (m3.medium и выше) для поддержанияПроизводственные нагрузки последовательно.Размещение балансировщика нагрузки перед несколькими экземплярами также является отличным способом обеспечения доступности.

Более подробную информацию об этом можно найти здесь: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-credits-baseline-concepts.html

...