Below are the system specs for my server where i am running my MariaDB10-0.14. The OS is CentOS-6.5, and the server only hosts MariaDB and its test tools (sysbench and mysqlslap) thats it. This db server is a slave replica of another MariaDB server sitting on another machine. There are about 1000 tables in all databases in the db server, and all tables are innodb. There are more reads(400 simultaneously) than inserts (60 simultaneously) from the application, but the number of inserts is a good number too. So here is some info about my linux server:
[root ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 18625404 7430560 10248720 43% /
tmpfs 1958396 0 1958396 0% /dev/shm
[root ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 18G 7.1G 9.8G 43% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
[root@ ~]# free -m
total used free shared buffers cached
Mem: 3824 3209 615 0 146 2390
-/+ buffers/cache: 671 3153
Swap: 1999 0 1999
[root ~]# nproc
4
Below are the largest tables on the database server:
Question : With the provided info, what would be the best variables settings for:
innodb_buffer_pool_size
innodb_log_buffer_size
innodb_log_file_size
innodb_flush_log_at_trx_commit
innodb_lock_wait_timeout:
innodb_doublewrite
innodb_thread_concurrency
innodb_read_io_threads
innodb_write_io_threads
innodb_concurrency_tickets
innodb_adaptive_max_sleep_delay
innodb_commit_concurrency
innodb_read_ahead_threshold
innodb_buffer_pool_size
If possible: a bit larger than all tablespace files combined
If that isn't possible: as large as you can make it
Buffer pool hit rate in SHOW ENGINE INNODB STATUS will provide hints whether buffer pool size is a potential bottleneck
innodb_log_buffer_size
if you can afford it: up to innodb_log_file_size
innodb_log_file_size
At least 10 times the size of the largest transaction you're expecting to handle
innodb_flush_log_at_trx_commit
If you care about your data you want to have this active, if you can live with loosing some transactions on mysqld or system failure you may use one of the "only once per second" settings ...
innodb_lock_wait_timeout
This totally depends on your applications needs, eg how long stalling while waiting for a row lock to be granted is acceptable
innodb_doublewrite
If you care about data integrity you definitely want to have this active, unless you are on a file system that has a similar feature internally (ZFS, btrfs do as far as I can tell, others not so much)
innodb_thread_concurrency innodb_read_io_threads innodb_write_io_threads innodb_concurrency_tickets innodb_adaptive_max_sleep_delay innodb_commit_concurrency innodb_read_ahead_threshold
totally depends on your actual workload, defaults should usually be fine though
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.