Hi,
anyone with some experience in load testing a Plone site? What tools do you use and how?
I need to test if some websites can handle a temporary increase of visits.
I recall that some years ago i made some tests with siege, but i have some problems using it with Plone sites and i don't know why.
For example if i try to siege a non-plone website i have the following output:
> siege https://www.wordpress.com -t 1M
...
HTTP/1.1 200 0.22 secs: 20463 bytes ==> GET https://wordpress.com/
HTTP/1.1 301 0.20 secs: 162 bytes ==> GET https://www.wordpress.com
HTTP/1.1 200 0.09 secs: 40259 bytes ==> GET https://s1.wp.com/home.logged-out/page-jan-2019/js/bundle.js?v=1572517516
HTTP/1.1 200 0.10 secs: 63090 bytes ==> GET https://s1.wp.com/wp-content/themes/h4/landing/marketing/pages/_common/components/testimonials/media/ann-morgan.png
HTTP/1.1 200 0.08 secs: 40259 bytes ==> GET https://s1.wp.com/home.logged-out/page-jan-2019/js/bundle.js?v=1572517516
...
Lifting the server siege...
Transactions: 12038 hits
Availability: 100.00 %
Elapsed time: 59.94 secs
Data transferred: 252.38 MB
Response time: 0.12 secs
Transaction rate: 200.83 trans/sec
Throughput: 4.21 MB/sec
Concurrency: 24.29
Successful transactions: 12044
Failed transactions: 0
Longest transaction: 0.59
Shortest transaction: 0.04
But on every Plone website that i tested, i have something like this:
> siege https://www.plone.org -t 30S
...
HTTP/1.1 200 0.11 secs: 14478 bytes ==> GET https://www.plone.org:443/
HTTP/1.1 200 0.11 secs: 14478 bytes ==> GET https://www.plone.org:443/
HTTP/1.1 200 0.14 secs: 14478 bytes ==> GET https://www.plone.org:443/
HTTP/1.1 200 0.10 secs: 14478 bytes ==> GET https://www.plone.org:443/
...
Lifting the server siege...
Transactions: 0 hits
Availability: 0.00 %
Elapsed time: 29.54 secs
Data transferred: 72.74 MB
Response time: 0.00 secs
Transaction rate: 0.00 trans/sec
Throughput: 2.46 MB/sec
Concurrency: 24.23
Successful transactions: 5268
Failed transactions: 0
Longest transaction: 0.85
Shortest transaction: 0.08
Strange things are Transactions and Availability with 0 and list of GET with SSL port (and no related resources like images or styles).
btw this is actual siege configuration:
> siege -C
CURRENT SIEGE CONFIGURATION
Mozilla/5.0 (apple-x86_64-darwin19.0.0) Siege/4.0.4
Edit the resource file to change the settings.
----------------------------------------------
version: 4.0.4
verbose: true
color: true
quiet: false
debug: false
protocol: HTTP/1.0
HTML parser: enabled
get method: HEAD
connection: close
concurrent users: 25
time to run: n/a
repetitions: n/a
socket timeout: 30
cache enabled: false
accept-encoding: gzip, deflate
delay: 0.000 sec
internet simulation: false
benchmark mode: false
failures until abort: 1024
named URL: none
URLs file: /usr/local/Cellar/siege/4.0.4_2/etc/urls.txt
thread limit: 255
logging: true
log file: /foo/var/siege.log
resource file: /foo/.siege/siege.conf
timestamped output: false
comma separated output: false
allow redirects: true
allow zero byte data: true
allow chunked encoding: true
upload unique files: true
no-follow:
- ad.doubleclick.net
- pagead2.googlesyndication.com
- ads.pubsqrd.com
- ib.adnxs.com