Количество экземпляров буферного пула должно быть увеличено, чтобы избежать конфликта мьютексов буферного пула.
С размером пула буферов 8 ГБ, я сомневаюсь, что вы когда-нибудь увидите конфликт мьютексов буферного пула.
ОБНОВЛЕНИЕ 0 :
В ответе я упомянул пул буферов 8 ГБ, тогда как в исходном вопросе общий объем памяти составил 8 ГБ. Конечно, буферный пул должен быть менее 8 ГБ. 4 Гб звучит как хорошее начало, но убедитесь, что обмен не произойдет.
ОБНОВЛЕНИЕ 1 :
// из слайдов Ясуфуми (в последних версиях MySQL вывод может немного отличаться)
Чтобы определить, есть ли конфликты в мьютексном пуле буферов, соберите дюжину SHOW ENGINE INNODB STATUS
образцов во время пика.
Затем объедините его, используя фрагмент оболочки:
#!/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
который дает вывод, как это:
.....
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
Если вы видите большое количество ожиданий мьютекса буферного пула, то пришло время рассмотреть несколько экземпляров буферного пула. Конфликт вряд ли произойдет с буферным пулом меньше, чем ~ 48G.