Tests sur limitation IO

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.