Recommended settings for benchmarks
Contents
Running benchmarks requires a lot of different settings. In this article we collect our best known settings and recommendations.
Hardware and BIOS settings
We have had good experiences with Intel's hyperthreading on newer Xeon CPUs. Please turn on hyperthreading in your BIOS.
Linux kernel settings
IO scheduler
For optimal IO performance running a database we are using the noop scheduler. Recommended schedulars are noop and cfg. You can check your scheduler setting with:
cat /sys/block/${DEVICE}/queue/scheduler
For instance, it should look like this output:
cat /sys/block/sda/queue/scheduler [noop] deadline cfq
You can find detailed notes about Linux schedulers here: Linux schedulers in TPCC like benchmark.
Open file limits
The open file limits is not a performance relevant setting, but running a benchmark with a lot of concurrent users can hit the open file limit quite easy.
On most Linux systems the open file limit is at 1024, which can be not enough. Please set your open file limit higher by editing
$EDITOR /etc/security/limits.conf
and adding a line like
#ftp hard nproc 0 #@student - maxlogins 4 * - nofile 16384 # End of file
Your ulimit -a should look like this output afterwards:
ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 15975 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) 1744200 open files (-n) 16384