@@ -66,32 +66,18 @@ HAPROXY='no'
6666. ./common_util.sh
6767. ./bench_run_haproxy.sh
6868
69- function enable_mpm_event {
70- typeset SSL_LIB=$1
69+ function enable_mpm {
70+ typeset MODE=$1
71+ typeset SSL_LIB=$2
7172 if [[ -z " ${SSL_LIB} " ]] ; then
7273 SSL_LIB=' openssl-master'
7374 fi
74- typeset CONF_FILE=" ${INSTALL_ROOT} /${SSL_LIB} /conf/httpd.conf"
75-
76- #
77- # comment out currently loaded mpm module
78- #
79- cp " ${CONF_FILE} " " ${CONF_FILE} " .wrk
80- sed -e ' s/\(^LoadModule mpm_.*$\)/#\1/g' \
81- " ${CONF_FILE} " .wrk > " ${CONF_FILE} " || exit 1
82-
83- #
84- # enable event mpm module
85- #
86- cp " ${CONF_FILE} " " ${CONF_FILE} " .wrk
87- sed -e ' s/\(^#\)\(LoadModule mpm_event_module .*$\)/\2/g' \
88- " ${CONF_FILE} " .wrk > " ${CONF_FILE} " || exit 1
89- }
90-
91- function enable_mpm_worker {
92- typeset SSL_LIB=$1
93- if [[ -z " ${SSL_LIB} " ]] ; then
94- SSL_LIB=' openssl-master'
75+ if [[ -z " ${MODE} " ]] || { [[ " ${MODE} " != ' event' ]] &&
76+ [[ " ${MODE} " != ' worker' ]] && [[ " ${MODE} " != ' prefork' ]] ; } ; then
77+ echo " enable_mpm: MODE needs to be set as the second argument."
78+ echo " given argument: ${MODE} "
79+ echo " enable_mpm: options are: event, worker, and prefork."
80+ exit 1
9581 fi
9682 typeset CONF_FILE=" ${INSTALL_ROOT} /${SSL_LIB} /conf/httpd.conf"
9783
@@ -103,33 +89,10 @@ function enable_mpm_worker {
10389 " ${CONF_FILE} " .wrk > " ${CONF_FILE} " || exit 1
10490
10591 #
106- # enable worker mpm module
92+ # enable MODE mpm module
10793 #
10894 cp " ${CONF_FILE} " " ${CONF_FILE} " .wrk
109- sed -e ' s/\(^#\)\(LoadModule mpm_worker_module .*$\)/\2/g' \
110- " ${CONF_FILE} " .wrk > " ${CONF_FILE} " || exit 1
111- }
112-
113- function enable_mpm_prefork {
114- typeset SSL_LIB=$1
115- if [[ -z " ${SSL_LIB} " ]] ; then
116- SSL_LIB=' openssl-master'
117- fi
118- typeset CONF_FILE=" ${INSTALL_ROOT} /${SSL_LIB} /conf/httpd.conf"
119-
120- #
121- # comment out currently loaded mpm module
122- #
123- cp " ${CONF_FILE} " " ${CONF_FILE} " .wrk
124- sed -e ' s/\(^LoadModule mpm_.*$\)/#\1/g' \
125- " ${CONF_FILE} " .wrk > " ${CONF_FILE} " || exit 1
126-
127- #
128- # enable pre-fork mpm module
129- #
130- cp " ${CONF_FILE} " " ${CONF_FILE} " .wrk
131- sed -e ' s/\(^#\)\(LoadModule mpm_prefork_module .*$\)/\2/g' \
132- " ${CONF_FILE} " .wrk > " ${CONF_FILE} " || exit 1
95+ sed -e " s/\(^#\)\(LoadModule mpm_${MODE} _module .*$\)/\2/g" " ${CONF_FILE} " .wrk > " ${CONF_FILE} " || exit 1
13396}
13497
13598function run_test {
@@ -246,121 +209,46 @@ function run_test {
246209function run_tests {
247210 typeset SAVE_RESULT_DIR=" ${RESULT_DIR} "
248211 typeset HAPROXY_OPTIONS=(' no' ' client' ' server' ' both' )
212+ typeset mode=" "
249213 typeset i=" "
250214
251- for i in event worker pre-fork ; do
252- mkdir -p ${RESULT_DIR} /$i || exit 1
253- done
254-
255- enable_mpm_event
256- RESULT_DIR=" ${SAVE_RESULT_DIR} /event"
257- run_test nossl
258- run_haproxy
259- run_test nossl ' no-ssl'
260- kill_haproxy
261- for i in 3.0 3.1 3.2 3.3 3.4 3.5 3.6 ; do
262- enable_mpm_event openssl-${i}
263- run_haproxy openssl-${i}
264- for OPTION in ${HAPROXY_OPTIONS[@]}
265- do
266- run_test openssl-${i} ${OPTION}
267- done
268- kill_haproxy
269- done
270- enable_mpm_event openssl-master
271- run_haproxy openssl-master
272- for OPTION in ${HAPROXY_OPTIONS[@]}
273- do
274- run_test openssl-master ${OPTION}
275- done
276- kill_haproxy
277- enable_mpm_event OpenSSL_1_1_1-stable
278- run_test OpenSSL_1_1_1-stable
279- enable_mpm_event libressl-4.1.0
280- run_test libressl-4.1.0
281- # enable_mpm_event wolfssl-5.8.2
282- # run_test wolfssl-5.8.2
283- enable_mpm_event boringssl
284- run_test boringssl
285- enable_mpm_event aws-lc
286- run_test aws-lc
215+ for mode in event worker prefork ; do
216+ mkdir -p ${SAVE_RESULT_DIR} /${mode} || exit 1
287217
288- enable_mpm_worker
289- RESULT_DIR=" ${SAVE_RESULT_DIR} /worker"
290- run_test nossl
291- run_haproxy
292- run_test nossl ' no-ssl'
293- kill_haproxy
294- for i in 3.0 3.1 3.2 3.3 3.4 3.5 3.6 ; do
295- enable_mpm_worker openssl-${i}
296- run_test openssl-${i}
297- run_haproxy openssl-${i}
298- for OPTION in ${HAPROXY_OPTIONS[@]}
299- do
300- run_test openssl-${i} ${OPTION}
301- done
218+ enable_mpm ${mode}
219+ RESULT_DIR=" ${SAVE_RESULT_DIR} /${mode} "
220+ run_test nossl
221+ run_haproxy
222+ run_test nossl ' no-ssl'
302223 kill_haproxy
303- done
304- enable_mpm_worker openssl-master
305- run_haproxy openssl-master
306- for OPTION in ${HAPROXY_OPTIONS[@]}
307- do
308- run_test openssl-master ${OPTION}
309- done
310- kill_haproxy
311- enable_mpm_worker OpenSSL_1_1_1-stable
312- run_test OpenSSL_1_1_1-stable
313- enable_mpm_worker libressl-4.1.0
314- run_test libressl-4.1.0
315- # enable_mpm_worker wolfssl-5.8.2
316- # run_test wolfssl-5.8.2
317- enable_mpm_worker boringssl
318- run_test boringssl
319- enable_mpm_worker aws-lc
320- run_test aws-lc
321-
322- enable_mpm_prefork
323- RESULT_DIR=" ${SAVE_RESULT_DIR} /pre-fork"
324- run_test nossl
325- run_haproxy
326- run_test nossl ' no-ssl'
327- kill_haproxy
328- for i in 3.0 3.1 3.2 3.3 3.4 3.5 3.6 ; do
329- enable_mpm_prefork openssl-${i}
330- run_test openssl-${i}
331- run_haproxy openssl-${i}
332- for OPTION in ${HAPROXY_OPTIONS[@]}
333- do
334- run_test openssl-${i} ${OPTION}
224+ for i in 3.0 3.1 3.2 3.3 3.4 3.5 3.6 master ; do
225+ enable_mpm ${mode} openssl-${i}
226+ run_haproxy openssl-${i}
227+ for OPTION in ${HAPROXY_OPTIONS[@]} ; do
228+ run_test openssl-${i} ${OPTION}
229+ done
230+ kill_haproxy
335231 done
336- kill_haproxy
337- done
338- enable_mpm_prefork openssl-master
339- run_haproxy openssl-master
340- for OPTION in ${HAPROXY_OPTIONS[@]}
341- do
342- run_test openssl-master ${OPTION}
232+ enable_mpm ${mode} OpenSSL_1_1_1-stable
233+ run_test OpenSSL_1_1_1-stable
234+ enable_mpm ${mode} libressl-4.1.0
235+ run_test libressl-4.1.0
236+ # enable_mpm ${mode} wolfssl-5.8.2
237+ # run_test wolfssl-5.8.2
238+ enable_mpm ${mode} boringssl
239+ run_test boringssl
240+ enable_mpm ${mode} aws-lc
241+ run_test aws-lc
343242 done
344- kill_haproxy
345- enable_mpm_prefork OpenSSL_1_1_1-stable
346- run_test OpenSSL_1_1_1-stable
347- enable_mpm_prefork libressl-4.1.0
348- run_test libressl-4.1.0
349- # enable_mpm_prefork wolfssl-5.8.2
350- # run_test wolfssl-5.8.2
351- enable_mpm_prefork boringssl
352- run_test boringssl
353- enable_mpm_prefork aws-lc
354- run_test aws-lc
355243
356244 RESULT_DIR=${SAVE_RESULT_DIR}
357245}
358246
359247check_env
360248run_tests
361249SAVE_RESULT_DIR=${RESULT_DIR}
362- for i in event worker pre-fork ; do
363- RESULT_DIR=${SAVE_RESULT_DIR} /$i
250+ for mode in event worker prefork ; do
251+ RESULT_DIR=${SAVE_RESULT_DIR} /${mode}
364252 plot_results
365253done
366254RESULT_DIR=${SAVE_RESULT_DIR}
0 commit comments