MongoDB с той же пропускной способностью
Я тестирую mongodb, начиная с одного узла, затем 2 узлов данных (1 мастер, 1 config-сервер и 2 мастера), затем 4 датоданных (1 мастер, 1 config-сервер, 4 мастера) и с 16 датодами (та же конфигурация, что и раньше с 16 мастерами). Я заметил, что пропускная способность одинаково независимо от количества узлов: с 30 потоками (используя YCSB) я получил около 6000 операций в секунду с 2, 4 или 16 узлами!! Это нормально? Или есть какие-то параметры для установки??
Спасибо за ваши ответы!
2 ответа
У вас может быть несбалансированная конфигурация шарда, основанная на значении ключей. Этот ключ шарда вряд ли будет оптимальным с YCSB:
shard key: { "_id" : 1 }
Вместо этого вы можете захотеть попробовать хэширование:
shard key: { "_id" : "hashed" }
Один из способов, которым вы можете сказать, - запустить mongostat для каждого осколка и посмотреть, получаете ли вы хорошее распространение OPS. Если нет, то итерируйте ключи шарда, пока не сделаете. YCSB может потребоваться изменить с учетом этого.
Я был в состоянии добавить больше монго в сети. Так что теперь у меня 4 монго и 4 монго. Я подключаюсь к каждому mongos с другим клиентом, но кажется, что один mongos работает очень усердно, второй работает, но не так сильно, а два других вообще не работают (загрузка процессора составляет около 10%). Мой вопрос, как работают монго? Я имею в виду, кластер mongos решает, какой mongos должен управлять нагрузкой / соединением? Если я подключусь от клиента к монгосу, может ли монгос перенаправить запрос на другой монгос? Спасибо!