Apache процесс неожиданно умирает

534
Kes115

Я тестирую лимит моего веб-приложения Python Flask, работающего на веб-сервере Apache, выполняя запрос, который занимает более 30 минут. Запрос требует тысячи запросов к базе данных (один за другим) к базе данных MySQL. Я понимаю, что в идеале это должен выполняться как отдельный асинхронный процесс вне сервера apache, но давайте пока проигнорируем это. Проблема, с которой я столкнулся, заключается в том, что, хотя это полностью выполняется, когда я тестирую его на своем Mac, он внезапно умирает при запуске на сервере Linux (Amazon linux на AWS EC2). Я не смог понять, что именно его убивает. Я проверил, что серверу не хватает памяти. Процесс использует очень мало оперативной памяти. Я' Я не смог найти ни один параметр конфигурации Apache или какое-либо сообщение об ошибке, которое имеет для меня смысл (даже после настройки отладки apache logLevel). Пожалуйста, мне нужна помощь, где искать. Вот больше подробностей о моей настройке:


Время выполнения

Сервер: Он умер через 8 минут, 27 минут, 21 минуту и ​​22 минуты соответственно. Обратите внимание, что большинство этих прогонов выполнялись на сервере UAT, и это был единственный запрос, который обрабатывал сервер.

Mac: Он работал намного медленнее, чем на сервере. Процесс прошел успешно и занял 2 часа 47 минут.


Сведения о сервере Linux:
2 виртуальных процессора и 4 ГБ оперативной памяти

ОС (выход uname -a)
Linux ip-172-31-63-211 3.14.44-32.39.amzn1.x86_64 # 1 SMP Чт 11 июня 20:33:38 UTC 2015 x86_64 x86_64 x86_64 GNU / Linux

Apache error_log: https://drive.google.com/file/d/0B3XXZfJyzJYsNkFDU3hJekRRUlU/view?usp=sharing

Конфигурационный файл Apache: https://drive.google.com/file/d/0B3XXZfJyzJYsM2lhSmxfVVRNNjQ/view?usp=sharing

Версия Apache (вывод apachectl -V)

Server version: Apache/2.4.23 (Amazon)  Server built: Jul 29 2016 21:42:17  Server's Module Magic Number: 20120211:61  Server loaded: APR 1.5.1, APR-UTIL 1.4.1  Compiled using: APR 1.5.1, APR-UTIL 1.4.1  Architecture: 64-bit  Server MPM: prefork  threaded: no  forked: yes (variable process count)  Server compiled with....  -D APR_HAS_SENDFILE  -D APR_HAS_MMAP  -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)  -D APR_USE_SYSVSEM_SERIALIZE  -D APR_USE_PTHREAD_SERIALIZE  -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT  -D APR_HAS_OTHER_CHILD  -D AP_HAVE_RELIABLE_PIPED_LOGS  -D DYNAMIC_MODULE_LIMIT=256  -D HTTPD_ROOT="/etc/httpd"  -D SUEXEC_BIN="/usr/sbin/suexec"  -D DEFAULT_PIDLOG="/var/run/httpd/httpd.pid"  -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"  -D DEFAULT_ERRORLOG="logs/error_log"  -D AP_TYPES_CONFIG_FILE="conf/mime.types"  -D SERVER_CONFIG_FILE="conf/httpd.conf"  

Mac детали:

Конфигурационный файл Apache: https://drive.google.com/file/d/0B3XXZfJyzJYsRUd6NW5NY3lON1U/view?usp=sharing

Версия Apache (вывод apachectl -V)

Server version: Apache/2.4.18 (Unix)  Server built: Feb 20 2016 20:03:19  Server's Module Magic Number: 20120211:52  Server loaded: APR 1.4.8, APR-UTIL 1.5.2  Compiled using: APR 1.4.8, APR-UTIL 1.5.2  Architecture: 64-bit  Server MPM: prefork  threaded: no  forked: yes (variable process count)  Server compiled with....  -D APR_HAS_SENDFILE  -D APR_HAS_MMAP  -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)  -D APR_USE_FLOCK_SERIALIZE  -D APR_USE_PTHREAD_SERIALIZE  -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT  -D APR_HAS_OTHER_CHILD  -D AP_HAVE_RELIABLE_PIPED_LOGS  -D DYNAMIC_MODULE_LIMIT=256  -D HTTPD_ROOT="/usr"  -D SUEXEC_BIN="/usr/bin/suexec"  -D DEFAULT_PIDLOG="/private/var/run/httpd.pid"  -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"  -D DEFAULT_ERRORLOG="logs/error_log"  -D AP_TYPES_CONFIG_FILE="/private/etc/apache2/mime.types"  -D SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf"  
1
Вы знаете, что это завершится за 30 минут, как? запустив его в командной строке? Skaperen 7 лет назад 0
Я знаю, что это должно занять более 30 минут, потому что я могу видеть долю обработанных записей из общего числа записей. Это просто означало выполнять повторяющиеся задачи тысячи раз. Kes115 7 лет назад 0

0 ответов на вопрос

Похожие вопросы