notes
Performance Test
Tools
Types
Tools
Infrastructure tests
Disks -
fio
CPU -
phoronix
phoronix-test-suite benchmark smallpt
network -
iperf3
# server iperf3 -s # client iperf3 -c server-ip
Test static load
ab
- a lot of simultaneous requests to the same url
httperf
- requests by list of urls with delay
sysbench
- for MySQL
pgbench
- for PostgreSQL
tcpreplay
- record all tcp packages and resend them
Test scripts
write custom scripts by requesting API and recording duration
Requirements compliance
Requests at specific time with specific concurrency with analytics
Apache.JMeter
- simple scripts (Groovy, Java, JavaScript)
wrk
- lua
Yandex.Tank
- scalabe (Go, Python)
Types
Load
increase load sequentially or step by step
Detect
degradation points
downtime point
error rate increase
Stability
Run some load for long time (the whole day or week)
Detect
resources leaks (memory, file descriptors and so on)
Stress
Run load which is more than expectable, then some low load, then some very high load and so on
Detect
How system recovers after temporary spykes in traffic
Volume
Run some load for long time
Detect
how fast datastore grows
what would happend after a year, 5 years, 10 years
ScalabilitY
Check if we add clones can we increase throughput