Rien ne vaut quelques exemples chiffrés pour mieux voir l'influence d'un paramètre.
Les comptages sont effectués sur 3 tables de #30800 rangs, la table (1) utilise 24Mo, la table (2) 29MO, la table (3) environ 16Mo et la table (4) de 976000 rangs et 5 partitions de #130Mo. Le chargement des tables a été fait avec une vitesse de 2MO/s
Le filesystem est installé sur un RAID de disques HDD "classiques".
Mariadb est réglé avec :
query_cache_type = 0
query_cache_limit = 0
query_cache_size = 0
innodb_buffer_pool_dump_at_shutdown = 0
innodb_buffer_pool_load_at_startup = 0
Pour chaque valeur de lxc.cgroup.blkio.throttle.read_bps_device les tests ont été effectués avec des comptages simples (select count(*)) sur les différentes tables. La deuxième série de chaque test a été effectuée après :
- "echo 3 > /proc/sys/vm/drop_caches" sur la machine physique
- systemctl restart mariadb
afin de limiter l'influence des caches du système et de MariaDB.
Les tests ont été effectués pour des valeurs de "blkio.throttle... bps_device" de 100 000 à 100 000 000 et sont résumés dans les tableaux suivants :
100 000 BPS | ||
1 | 19,384 | |
2 | Infini ... | |
3 | non testé | |
4 | non testé |
Avec cette valeur très faible le fonctionnement n'est pas possible, tout est beaucoup trop lent.
200 000 BPS | ||
1 | 46,618 | 44,958 |
2 | 102,426 | 102,560 |
3 | 41,208 | 41,288 |
4 | 283,057 | 282,193 |
500 000 BPS | ||
1 | 14,614 | 12,223 |
2 | 41,132 | 42,069 |
3 | 16,441 | 16,605 |
4 | 113,378 | 112,617 |
1 000 000 BPS | ||
1 | 0,519 | 0,518 |
2 | 20,586 | 20,586 |
3 | 8,209 | 8,209 |
4 | 57,419 | 56,300 |
2 500 000 BPS | ||
1 | 0,212 | 0,211 |
2 | 8,196 | 8,200 |
3 | 3,303 | 3,300 |
4 | 22,505 | 22,505 |
5 000 000 BPS | ||
1 | 0,151 | 0,153 |
2 | 6,096 | 6,099 |
3 | 1,999 | 1,998 |
4 | 11,364 | 11,312 |
10 000 000 BPS | ||
1 | 0,119 | 0,116 |
2 | 4,091 | 4,098 |
3 | 1,599 | 1,598 |
4 | 11,315 | 12,512 |
25 000 000 BPS | ||
1 | 0,043 | 0,042 |
2 | 0,799 | 0,782 |
3 | 0,300 | 0,299 |
4 | 3,006 | 2,917 |
100 000 000 BPS | ||
1 | 0,041 | 0,040 |
2 | 0,219 | 0,215 |
3 | 0,095 | 0,096 |
4 | 2,841 | 2,941 |
Pour référence même test sur la machine de référence (CoreI5 a 3,5GHz avec 16GO de RAM) avec un réglage de MariaDB beaucoup plus "offensif" (innodb_buffer_cache 4096Mo ... et disques SSD) :
REFERENCE | |
1 | 0,020 |
2 | 0,160 |
3 | 0,060 |
4 | 0,250 |
A partir de 5 millions BPS on trouve un fonctionnement exploitable.