benchmarking
This is an old revision of the document!
Table of Contents
Benchmarking
Benchmark website
Benchmark with ab tool
Syntax and basic options
- Syntax:
ab [options] [http[s]://]hostname[:port]/path
- Basic options:
- -n requests Number of requests to perform
- -c concurrency Number of multiple requests to make
examples
- run benchmark website shop.babies.vn with 250 requests and 15 concurrency multiple requests:
ab -n 100 -c 4 http://shop.babies.vn/
output:
This is ApacheBench, Version 2.3 <$Revision: 655654 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking shop.babies.vn (be patient).....done Server Software: Apache/2.2.27 Server Hostname: shop.babies.vn Server Port: 80 Document Path: / Document Length: 81923 bytes Concurrency Level: 4 Time taken for tests: 61.233 seconds Complete requests: 100 Failed requests: 99 (Connect: 0, Receive: 0, Length: 99, Exceptions: 0) Write errors: 0 Non-2xx responses: 5 Total transferred: 7973422 bytes HTML transferred: 7921109 bytes Requests per second: 1.63 [#/sec] (mean) Time per request: 2449.332 [ms] (mean) Time per request: 612.333 [ms] (mean, across all concurrent requests) Transfer rate: 127.16 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 1.3 0 11 Processing: 266 2430 429.9 2397 3861 Waiting: 265 2313 428.4 2273 3860 Total: 266 2430 429.8 2397 3861 Percentage of the requests served within a certain time (ms) 50% 2397 66% 2485 75% 2639 80% 2664 90% 2925 95% 3002 98% 3834 99% 3861 100% 3861 (longest request)
Benchmark with sysbench(CPU, File IO, MySQL)
Download and Install
Download:
wget http://downloads.mysql.com/source/sysbench-0.4.12.5.tar.gz
Install:
yum install libtool cd sysbench ./autogen.sh ./configure make & make install
Syntax and Basic Options
- Syntax:
sysbench [general-options]... --test=<test-name> [test-options]... command
- Basic Options:
CPU Benchmark
run script below:
sysbench --test=cpu --cpu-max-prime=20000 run
output:
Running the test with following options: Number of threads: 1 Random number generator seed is 0 and will be ignored Doing CPU performance benchmark Threads started! Done. Maximum prime number checked in CPU test: 20000 Test execution summary: total time: 38.5596s total number of events: 10000 total time taken by event execution: 38.5538 per-request statistics: min: 3.69ms avg: 3.86ms max: 23.75ms approx. 95 percentile: 4.44ms Threads fairness: events (avg/stddev): 10000.0000/0.00 execution time (avg/stddev): 38.5538/0.00
And You see a lot of numbers, the most important of it is the total time:
total time: 38.5596s
Of course, you must compare benchmarks across multiple systems to know what these numbers are worth.
File IO Benchmark
- Step1: Prepare:
sysbench --test=fileio --file-total-size=5G prepare
- Step2: Run benchmark
sysbench --test=fileio --file-total-size=5G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run
output:
sysbench 0.4.12.5: multi-threaded system evaluation benchmark 128 files, 40960Kb each, 5120Mb total Creating files for the test... [root@mail ~]# sysbench --test=fileio --file-total-size=5G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run sysbench 0.4.12.5: multi-threaded system evaluation benchmark Running the test with following options: Number of threads: 1 Initializing random number generator from timer. Random number generator seed is 0 and will be ignored Extra file open flags: 0 128 files, 40Mb each 5Gb total file size Block size 16Kb Number of random requests for random IO: 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 Threads started! Time limit exceeded, exiting... Done. Operations performed: 243263 Read, 162175 Write, 518912 Other = 924350 Total Read 3.7119Gb Written 2.4746Gb Total transferred 6.1865Gb (21.116Mb/sec) 1351.45 Requests/sec executed Test execution summary: total time: 300.0014s total number of events: 405438 total time taken by event execution: 175.2639 per-request statistics: min: 0.01ms avg: 0.43ms max: 22.63ms approx. 95 percentile: 1.02ms Threads fairness: events (avg/stddev): 405438.0000/0.00 execution time (avg/stddev): 175.2639/0.00
The important number is the Mb/sec value:
Read 3.7119Gb Written 2.4746Gb Total transferred 6.1865Gb (21.116Mb/sec)
- Step3: Cleanup
sysbench --test=fileio --file-total-size=5G cleanup
MySQL Server Benchmark
- Step1: To measure MySQL performance, we first create a test table in the database test with 1,000,000 rows of data:
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=yourrootsqlpassword prepare
- Step2: Afterwards, you can run the MySQL benchmark as follows:
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=yourrootsqlpassword --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run
- Step3: To clean up the system afterwards (i.e., remove the test table), run:
sysbench --test=oltp --mysql-db=test --mysql-user=root --mysql-password=yourrootsqlpassword cleanup
Benchmark with graphing software
Better Cacti Templates
benchmarking.1411227924.txt.gz · Last modified: 2022/10/29 16:15 (external edit)