Load Testing


Load testing is the process of ensuring that your Forest Wiki server will handle the expected loads.

There are three types of loads.  Anonymous, Authenticated and Mixed. 

Anonymous users.  They all see the same page.  We can cache the results using Apache, NGINX, or my favorite web server Caddy.  You can serve as many people as you want on a single linux box. 

Authenticated users. Authenticated users are those who have logged in.  They all see different pages based on their permissions.  All of their pages have to be custom generated.  Right now the Forest Wiki includes just a single Python process.  It can run multiple threads, but not simultaneously.   So there is a limit on how many users can use the system at the same time.  Currently the forest wiki can support about 58 transactions a second.  Maybe there are 5 requess for each web page, meaning 10 users per second.  And each users only requests a web page every 15 seconds or so.  Every minute, if they are entering data.  Authenticated users can be scaled up by running multiple Python servers. 

Mixed users have some customization, done in the web server, not on the Python servers.  For example we could potentially use GeoIp in the web server to add some information about a users location to the web response.  It would not affect the Python servers, just the client expeirence. 

Below are the load test results for the forest wiki, running on the same server, without a caching server.  

Transactions:                 586 hits

Availability:              100.00 %

Elapsed time:                9.78 secs

Data transferred:           38.76 MB

Response time:                0.14 secs

Transaction rate:           59.92 trans/sec

Throughput:                3.96 MB/sec

Concurrency:                8.16

Successful transactions:         586

Failed transactions:               0

Longest transaction:            0.82

Shortest transaction:            0.00