Apache 进程意外死亡

Apache 进程意外死亡

我正在通过发出需要 30 多分钟才能完成的请求来测试在 Apache Web 服务器上运行的 Python Flask Web 应用程序的极限。该请求需要向 MySQL 数据库发出数千个数据库请求(一个接一个)。我知道这应该理想地作为 Apache 服务器之外的单独异步进程运行,但现在我们先忽略这一点。我遇到的问题是,虽然它在我在我的 Mac 上测试时可以完全运行,但在 Linux 服务器(AWS EC2 上的 Amazon Linux)上运行时它会突然死机。我无法弄清楚到底是什么导致了它死机。我已检查服务器没有内存不足。该进程占用的 RAM 非常少。我找不到任何 Apache 配置参数或任何对我来说有意义的错误消息(即使在将 apache logLevel 设置为调试之后)。请帮助我查找位置。以下是有关我的设置的更多详细信息:


运行

服务器:它分别在 8 分钟、27 分钟、21 分钟和 22 分钟后死机。请注意,这些运行中的大多数都在 UAT 服务器上进行,这是服务器正在处理的唯一请求。

苹果:它的运行速度比在服务器上运行慢得多。该过程成功运行,耗时 2 小时 47 分钟。


Linux 服务器详细信息:
2 个虚拟 CPU 和 4GB RAM

操作系统(输出uname -a
Linux ip-172-31-63-211 3.14.44-32.39.amzn1.x86_64 #1 SMP 星期四 6 月 11 日 20:33:38 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

Apache 错误日志: 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"  

相关内容