benchmarking
This is an old revision of the document!
Table of Contents
Benchmarking
Benchmark website
Benchmark with ab tool
ab tool will be installed when we install webserver apache
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 100 requests and 4 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
Download: wget https://mysql-cacti-templates.googlecode.com/files/better-cacti-templates-1.1.8.tar.gz
Benchmark netword speed
benchmarking.1428503234.txt.gz · Last modified: 2022/10/29 16:15 (external edit)