我使用event-mpm
使用RHEL7.2和Apache 2.4.6(来自RHEL存储库)。当我使用以下命令进行正常重启时,活动连接将终止。
/usr/sbin/httpd -f /path/to/httpd.conf -k graceful
我读过的所有内容都表明情况并非如此。任何工作进程/线程应在终止之前完成其活动连接,并由具有新配置的新工作者替换。
我使用JMeter
并在某些'大'上使用ab
对此进行了测试。文件(~15Mb)。我也看到了小1Kb文件的问题,但我只能在JMeter上可靠地重现问题而不是ab。使用较大的文件可以更加可靠地突出显示问题,因为在活动连接期间发生重新加载的可能性更高。
对于更多背景,我原本以为我从JMeter
(但不是ab
)看到的行为是新的连接在主要监听过程重新加载和拒绝的短暂时间内失败新的联系。这没有意义,因为操作系统意味着对新连接进行排队。这是我调查它杀死现有连接并尝试使用较大文件的可能性。
对这里可能发生的事情有什么想法,我如何进一步测试以及可能如何解决?
以下是Apache信息,如果它有帮助:
Server version: Apache/2.4.6 (Red Hat Enterprise Linux)
Server built: Jul 12 2016 05:02:54
Server's Module Magic Number: 20120211:24
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: event
threaded: yes (fixed thread count)
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="/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"