Respondendo à minha pergunta agora que resolvi isso, caso seja útil para os outros ...
Acontece que minha versão do ab
era muito antiga para suportar (adequadamente) o OpenSSL 1.1.0, como Konstantin Kolinko me aconselhou (através da lista de discussão de suporte do httpd):
Looking at http://svn.apache.org/r1757674 (Thu Aug 25 12:53:03 2016 UTC) and history of httpd/httpd/branches/2.4.x/support/ab.c file that was changed in that revision, I think your version of AB does not support OpenSSL 1.1.0 at all, as support for 1.1.0 was added by later revisions of that file,
http://svn.apache.org/viewvc?view=revision&revision=1787728 "Support OpenSSL 1.1.0"
No final, tive que criar o código de tronco mais recente de todo o Apache httpd, para obter uma versão moderna e funcional de ab
. Eu acabei de construí-lo na minha pasta pessoal, já que eu não ia realmente usar os outros elementos do httpd:
# apply any updates and install pre-requisites
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libapr1 libapr1-dev libaprutil1 libaprutil1-dev libpcre3 libpcre3-dev subversion autoconf libtool libtool-bin
# move to home folder and create a folder where to build into
cd ~
mkdir httpd-install
# get the latest source and unzip it (to ~/httpd-trunk)
wget https://github.com/apache/httpd/archive/trunk.zip
unzip trunk.zip
cd httpd-trunk
# get the latest APR source and put it in '[httpd source root]/srclib/apr' (required for the build)
svn co http://svn.apache.org/repos/asf/apr/apr/trunk srclib/apr
# configure the things
chmod +x buildconf
./buildconf
./configure --prefix=/home/pi/httpd-install/ --with-included-apr
# make and install
make
make install
# create a symlink to our bleeding-edge version of ab, so we can just call it using 'ab'
sudo ln -s /home/pi/httpd-install/bin/ab /usr/bin/ab
Não exatamente simples, então ... mas funcionou. Agora tenho uma versão de ponta de ab
, que parece funcionar bem, mesmo com conjuntos de codificação modernos como o ECDHE-ECDSA-CHACHA20-POLY1305:
pi@pi3:~ $ ab -l -n 1000 -c 10 -k -H "Accept-Encoding: gzip, deflate, br" -Z ECDHE-ECDSA-CHACHA20-POLY1305 https://bytes.fyi/
This is ApacheBench, Version 2.3 <$Revision$>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking bytes.fyi (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests
Server Software: nginx
Server Hostname: bytes.fyi
Server Port: 443
SSL/TLS Protocol: TLSv1.2,ECDHE-ECDSA-CHACHA20-POLY1305,256,256
Server Temp Key:
TLS Server Name: bytes.fyi
Document Path: /
Document Length: Variable
Concurrency Level: 10
Time taken for tests: 6.876 seconds
Complete requests: 1000
Failed requests: 0
Keep-Alive requests: 0
Total transferred: 10464567 bytes
HTML transferred: 8983567 bytes
Requests per second: 145.42 [#/sec] (mean)
Time per request: 68.764 [ms] (mean)
Time per request: 6.876 [ms] (mean, across all concurrent requests)
Transfer rate: 1486.13 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 10 31 9.6 32 110
Processing: 16 37 9.4 36 116
Waiting: 14 33 8.5 34 93
Total: 30 68 14.2 69 153
Percentage of the requests served within a certain time (ms)
50% 69
66% 72
75% 73
80% 74
90% 77
95% 87
98% 103
99% 116
100% 153 (longest request)