O número de instâncias do buffer pool deve ser aumentado para evitar contenção de mutex no buffer pool.
Com o tamanho do buffer pool de 8 GB, duvido que você verá a contenção mutex do buffer pool.
ATUALIZAÇÃO 0 :
Mencionei o buffer pool de 8 GB na resposta, enquanto na pergunta original a memória total era de 8 GB. Claro, o buffer pool deve ter menos de 8 GB. 4 GB parece um bom começo, mas verifique se não há troca.
ATUALIZAÇÃO 1 :
// dos slides de Yasufumi (nas versões recentes do MySQL, a saída pode diferir ligeiramente)
Para determinar se há uma contenção no buffer pool, o mutex coleta uma dúzia de SHOW ENGINE INNODB STATUS
amostras durante o horário de pico.
Agregue-o usando o snippet do shell:
#!/bin/sh
cat $1.innodb | grep "Mutex at " | cut -d"," -f1 | sort | uniq -c > /tmp/tmp1.txt
cat $1.innodb | grep "lock on " | cut -d"-"
-f2- | sort | uniq -c > /tmp/tmp2.txt
cat /tmp/tmp1.txt /tmp/tmp2.txt | sort -n > $1.contention rm /tmp/tmp1.txt /tmp/tmp2.txt
que fornece uma saída como esta:
.....
4 lock on RW-latch at 0x7fb86b2c9138 created in file dict/dict0dict.c line 1356
6 lock on RW-latch at 0x7fb86b2c4138 created in file dict/dict0dict.c line 1356
12 lock on RW-latch at 0x7fb86b2d9538 created in file dict/dict0dict.c line 1356
20 lock on RW-latch at 0x7fb86b2db138 created in file dict/dict0dict.c line 1356
22 Mutex at 0x7fb86b28f0e0 created file btr/btr0sea.c line 139
30 lock on RW-latch at 0x7fb86b2ba938 created in file dict/dict0dict.c line 1356
36 lock on RW-latch at 0x7fb86b2bad38 created in file dict/dict0dict.c line 1356
71 Mutex at 0x7fb86b28ecb8 created file buf/buf0buf.c line 597
164 lock on RW-latch at 0x7fb86b28f0b8 created in file btr/btr0sea.c line 139
Se você vir uma contagem alta de esperas mutex do buffer pool, é hora de considerar várias instâncias do buffer pool. É improvável que a disputa aconteça em um buffer pool menor que ~ 48G.