Skip to content

Commit 63358ea

Browse files
committed
benchmarks: Reduce code repetition
Resolves: openssl/project#1696 Signed-off-by: Norbert Pocs <[email protected]> Reviewed-by: Neil Horman <[email protected]> Reviewed-by: Saša Nedvědický <[email protected]> (Merged from #61)
1 parent 93fb37b commit 63358ea

File tree

2 files changed

+39
-152
lines changed

2 files changed

+39
-152
lines changed

bench-scripts/bench_run_apache.sh

Lines changed: 38 additions & 150 deletions
Original file line numberDiff line numberDiff line change
@@ -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

13598
function run_test {
@@ -246,121 +209,46 @@ function run_test {
246209
function 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

359247
check_env
360248
run_tests
361249
SAVE_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
365253
done
366254
RESULT_DIR=${SAVE_RESULT_DIR}

bench-scripts/bench_run_nginx.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,10 +202,9 @@ function run_test {
202202

203203
function run_tests {
204204
run_test nossl
205-
for i in 3.0 3.1 3.2 3.3 3.4 3.5 3.6 ; do
205+
for i in 3.0 3.1 3.2 3.3 3.4 3.5 3.6 master ; do
206206
run_test openssl-${i}
207207
done
208-
run_test openssl-master
209208
run_test OpenSSL_1_1_1-stable
210209
run_test libressl-4.1.0
211210
#

0 commit comments

Comments
 (0)