How to Safely Load Test a Small PHP Site
A load test is not about breaking the site. It checks how many concurrent requests (visitors hitting the site at the same moment) it takes before response time starts to wobble. Start on your own machine (locally), not the production server, with small numbers.
Recommended Order
Start with 50 to 200 requests against static files (files served unchanged, like images and CSS) and the root page. If the error rate is 0% and the 95th percentile response time (the 95th request when 100 are sorted fastest first) is stable, raise concurrency gradually. Exclude login and file download areas from public load tests.
Local Test Command
python3 scripts/load_test.py --url http://127.0.0.1/ --host-header sameos.uk --requests 200 --concurrency 20
Metrics to Watch
The 95th percentile matters more than the average response time. Even with a low average, a few requests above two seconds can feel slow to real users. If 5xx errors (response codes meaning the problem is on the server side) appear, check PHP-FPM, Nginx workers, disk IO, and log writing first.