mirror of
https://github.com/sunknudsen/privacy-guides.git
synced 2025-02-23 17:43:56 +00:00
6.7 KiB
6.7 KiB
How to benchmark CPU, memory, disk and network performance of server using Speedtest and SysBench
Ideally, run benchmark tests on development servers to avoid installing and running Speedtest and SysBench on production servers.
Requirements
- Virtual private server (VPS) or dedicated server running Debian 10 (buster)
Installation guide
Step 1: check if Backports repository is enabled
cat /etc/apt/sources.list | grep "buster-backports"
Step 2: enable Backports repository (only run command if previous step returned nothing)
cat << "EOF" >> /etc/apt/sources.list
deb http://deb.debian.org/debian buster-backports main
EOF
apt update
Step 3: check if GnuPG is installed
$ gpg --version
-bash: gpg: command not found
Step 4: install GnuPG (only run command if previous step returned -bash: gpg: command not found
)
apt install -y gnupg2
Step 5: import Speedtest’s PGP public key and enable Speedtest’s repository
$ apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 379CE192D401AB61
Executing: /tmp/apt-key-gpghome.hyKJZh5s4e/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 379CE192D401AB61
gpg: key 379CE192D401AB61: public key "Bintray (by JFrog) <bintray@bintray.com>" imported
gpg: Total number processed: 1
gpg: imported: 1
$ echo "deb https://ookla.bintray.com/debian buster main" | tee /etc/apt/sources.list.d/speedtest.list
deb https://ookla.bintray.com/debian buster main
$ apt update
Step 6: install Speedtest and SysBench
apt install -y speedtest sysbench
Usage guide
Benchmark network
Depending on iptables configuration, running the following commands may be required.
iptables -A OUTPUT -p tcp -m tcp --dport 8080 -m state --state NEW -j ACCEPT
ip6tables -A OUTPUT -p tcp -m tcp --dport 8080 -m state --state NEW -j ACCEPT
$ speedtest
Speedtest by Ookla
Server: Vodafone - Reykjavík (id = 4141)
ISP: 1984 ehf
Latency: 0.64 ms (0.06 ms jitter)
Download: 95.82 Mbps (data used: 158.0 MB)
Upload: 95.63 Mbps (data used: 155.7 MB)
Packet Loss: 0.0%
Result URL: https://www.speedtest.net/result/c/19654353-3d2e-4ed3-ac22-824e1376b838
Network download speed: 95.82 Mbps
Network upload speed: 95.63 Mbps
Benchmark CPU
$ sysbench cpu --cpu-max-prime=20000 run
sysbench 1.0.18 (using system LuaJIT 2.1.0-beta3)
Running the test with following options:
Number of threads: 1
Initializing random number generator from current time
Prime numbers limit: 20000
Initializing worker threads...
Threads started!
CPU speed:
events per second: 403.87
General statistics:
total time: 10.0012s
total number of events: 4040
Latency (ms):
min: 2.43
avg: 2.47
max: 4.60
95th percentile: 2.52
sum: 9995.53
Threads fairness:
events (avg/stddev): 4040.0000/0.00
execution time (avg/stddev): 9.9955/0.00
CPU events per second: 403.87
Benchmark memory
$ sysbench memory run
sysbench 1.0.18 (using system LuaJIT 2.1.0-beta3)
Running the test with following options:
Number of threads: 1
Initializing random number generator from current time
Running memory speed test with the following options:
block size: 1KiB
total size: 102400MiB
operation: write
scope: global
Initializing worker threads...
Threads started!
Total operations: 40219144 (4020984.62 per second)
39276.51 MiB transferred (3926.74 MiB/sec)
General statistics:
total time: 10.0003s
total number of events: 40219144
Latency (ms):
min: 0.00
avg: 0.00
max: 1.84
95th percentile: 0.00
sum: 4358.06
Threads fairness:
events (avg/stddev): 40219144.0000/0.00
execution time (avg/stddev): 4.3581/0.00
Memory speed: 3926.74 MiB/sec
Benchmark disk
$ sysbench fileio --file-total-size=8G prepare
sysbench 1.0.18 (using system LuaJIT 2.1.0-beta3)
128 files, 65536Kb each, 8192Mb total
Creating files for the test...
Extra file open flags: (none)
Creating file test_file.0
Creating file test_file.1
Creating file test_file.2
Creating file test_file.3
Creating file test_file.4
Creating file test_file.5
...
Creating file test_file.127
8589934592 bytes written in 85.92 seconds (95.34 MiB/sec).
$ sysbench fileio --file-total-size=8G --file-test-mode=rndrw --max-time=300 --max-requests=0 run
sysbench 1.0.18 (using system LuaJIT 2.1.0-beta3)
Running the test with following options:
Number of threads: 1
Initializing random number generator from current time
Extra file open flags: (none)
128 files, 64MiB each
8GiB total file size
Block size 16KiB
Number of IO requests: 0
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random r/w test
Initializing worker threads...
Threads started!
File operations:
reads/s: 2727.09
writes/s: 1818.06
fsyncs/s: 5818.16
Throughput:
read, MiB/s: 42.61
written, MiB/s: 28.41
General statistics:
total time: 300.0100s
total number of events: 3109023
Latency (ms):
min: 0.00
avg: 0.10
max: 11.59
95th percentile: 0.23
sum: 298089.49
Threads fairness:
events (avg/stddev): 3109023.0000/0.00
execution time (avg/stddev): 298.0895/0.00
$ sysbench fileio --file-total-size=8G cleanup
sysbench 1.0.18 (using system LuaJIT 2.1.0-beta3)
Removing test files..
Disk read throughput: 42.61 MiB/s
Disk write throughput: 28.41 MiB/s