Bancos de dados sendo executados em armazenamento distribuído facepalm . Eu faria o benchmark do sistema de arquivos rodando sobre o sistema de armazenamento EC2 EBS. Provavelmente, o método mais simples é usar algo como s=$(date +%s); dd if=/dev/zero of=<database-dir> bs=1M count=512; e=$(date +%s); echo "scale=4; 512 / ( $e - $s )" | bc
. Isso pressupõe que você tenha 512 MB de sobra. Agora, o problema com este benchmarking é que (1) não leva em conta os efeitos de cache, e (2) a resolução não é muito boa. Mas se este teste for lento, então o problema é definitivamente com o EC2 EBS. Se o teste é rápido ou nominal, temos que cavar mais e usar técnicas mais sofisticadas.
O programa bonnie ++ é um pouco adequado, mas não (AFAIK) libera os buffers do OS entre a gravação e a leitura. Ainda assim, você deve ter uma ideia com algo como bonnie++ -u mysql -r 8 -s 16:512 -n 1 -b -d <mysql-data-directory>
. Quando faço isso em uma VM em execução no armazenamento local, recebo:
Version 1.96 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size:chnk K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
test 16M:512 1173 99 +++++ +++ +++++ +++ 3187 99 +++++ +++ +++++ +++
Latency 1553us 23us 330us 750us 173us 6372us
Version 1.96 ------Sequential Create------ --------Random Create--------
test -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
1 1850 20 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++
Latency 27428us 24us 1188us 30258us 36us 1107us
Aqui está o que eu recebo quando rodando em uma VM via NFS:
Version 1.96 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size:chnk K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
test 16M:512 1273 98 +++++ +++ +++++ +++ 3053 99 +++++ +++ +++++ +++
Latency 1372us 28us 380us 832us 19us 9473us
Version 1.96 ------Sequential Create------ --------Random Create--------
test -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
1 754 11 +++++ +++ 728 8 751 12 +++++ +++ 791 8
Latency 12695us 47us 5306us 3710us 30us 3278us