Der Apache-Prozess stirbt unerwartet

650
Kes115

Ich teste das Limit meiner Python Flask-Webanwendung, die auf einem Apache-Webserver ausgeführt wird, indem ich eine Anforderung stelle, die mehr als 30 Minuten dauert. Die Anforderung erfordert Tausende von Datenbankanforderungen (eine nach der anderen) an eine MySQL-Datenbank. Ich verstehe, dass dies idealerweise als separater asynchroner Prozess außerhalb des Apache-Servers ausgeführt werden sollte, aber lassen Sie uns das zunächst ignorieren. Das Problem, das ich habe, ist, dass dieses zwar vollständig ausgeführt wird, wenn ich es auf meinem Mac teste, es jedoch abrupt abbricht, wenn es auf einem Linux-Server (Amazon Linux auf AWS EC2) läuft. Ich konnte nicht genau herausfinden, was ihn umbringt. Ich habe überprüft, dass dem Server nicht genügend Speicher zur Verfügung steht. Der Prozess benötigt sehr wenig RAM. ICH' Ich konnte keinen Apache-Konfigurationsparameter oder Fehlermeldungen finden, die für mich sinnvoll sind (auch nachdem Apache logLevel auf debug gesetzt wurde). Bitte ich brauche Hilfe, wo ich suchen muss. Hier sind weitere Details zu meinem Setup:


Laufzeit

Server: Es starb nach 8 Minuten, 27 Minuten, 21 Minuten & 22 Minuten. Beachten Sie, dass sich die meisten dieser Läufe auf einem UAT-Server befanden und dies die einzige Anforderung war, die der Server verarbeitet hat.

Mac: Es lief viel langsamer als auf dem Server. Der Prozess lief erfolgreich und dauerte 2 Stunden und 47 Minuten.


Details zu Linux Server:
2 virtuelle CPUs und 4 GB RAM

Betriebssystem (Ausgabe von uname -a)
Linux ip-172-31-63-211 3.14.44-32.39.amzn1.x86_64 # 1 SMP Do Jun 11 20:33:38 UTC 2015 x86_64 x86_64 x86_64 GNU / Linux

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

Apache-Konfigurationsdatei: https://drive.google.com/file/d/0B3XXZfJyzJYsM2lhSmxfVVRNNjQ/view?usp=sharing

Apache-Version (Ausgabe von 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-Details:

Apache-Konfigurationsdatei: https://drive.google.com/file/d/0B3XXZfJyzJYsRUd6NW5NY3lON1U/view?usp=sharing

Apache-Version (Ausgabe von 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
Sie wissen, dass es in 30 Minuten abgeschlossen ist. indem Sie es an einer Befehlszeile ausführen? Skaperen vor 8 Jahren 0
Ich weiß, dass es länger als 30 Minuten dauern soll, weil ich den Bruchteil der Datensätze sehen kann, die von der Gesamtzahl der Datensätze verarbeitet werden. Es ist einfach dazu gedacht, eine sich wiederholende Aufgabe tausendmal auszuführen. Kes115 vor 8 Jahren 0

0 Antworten auf die Frage