У нас есть относительно небольшой производственный набор реплик MongoDB. Мы выполняем около 100 операций в секунду - сбалансированное чтение и запись.
Примерно каждые 15 минут мы наблюдаем всплеск времени отклика при чтении, а в монгостате мы можем одновременно видеть большое количество ошибок страниц. Пример ниже:
insert query update delete getmore command flushes mapped vsize res faults locked db idx miss % qr|qw ar|aw netIn netOut conn set repl time
106 56 103 *0 111 136|0 0 528g 1057g 1.35g 57 adcore:3.0% 0 0|0 0|0 99k 130k 140 prod_replication PRI 12:59:39
90 39 83 *0 94 100|0 0 528g 1057g 1.35g 40 adcore:2.1% 0 0|0 0|0 73k 80k 140 prod_replication PRI 12:59:40
108 57 93 *0 102 116|0 0 528g 1057g 1.36g 49 adcore:3.2% 0 0|0 0|0 90k 110k 140 prod_replication PRI 12:59:41
104 43 94 *0 103 120|0 0 528g 1057g 1.35g 47 adcore:3.0% 0 0|0 0|0 84k 99k 140 prod_replication PRI 12:59:42
92 51 83 *0 102 119|0 0 528g 1057g 1.36g 72 adcore:3.8% 0 0|0 0|0 80k 92k 140 prod_replication PRI 12:59:43
95 45 87 *0 100 118|0 0 528g 1057g 1.36g 968 adcore:3.0% 0 0|0 1|0 81k 88k 141 prod_replication PRI 12:59:44
27 17 39 *0 28 32|0 0 528g 1057g 1.37g 2294 adcore:0.8% 0 32|4 1|3 24k 36k 141 prod_replication PRI 12:59:45
198 88 160 *0 115 130|0 0 528g 1057g 1.37g 944 admin:0.4% 0 0|0 0|0 139k 177k 140 prod_replication PRI 12:59:46
98 49 89 *0 115 127|0 0 528g 1057g 1.37g 41 adcore:3.2% 0 0|0 0|0 87k 97k 140 prod_replication PRI 12:59:47
95 45 81 3 101 114|0 0 528g 1057g 1.37g 49 adcore:2.5% 0 0|0 0|0 82k 96k 140 prod_replication PRI 12:59:48
(извините за плохое форматирование)
Интересно, что MongoDB одновременно взаимодействует с базой данных администратора, чего мы не видим большую часть времени.
Я понимаю, что ошибки - это просто диск MongoDB. Я ищу предложения, как отследить, почему периодически возникают такие серьезные сбои, и есть ли какие-то настройки, которые мы можем сделать, чтобы уменьшить это, потому что мы видим скачок максимального времени отклика с 20 мс до 1600 мс, что неприемлемо.
Любой ввод приветствуется.