Наш тестовый инструмент создает n потоков и выполняет m итераций внутри каждого потока. Рассчитываем минимальное, среднее и максимальное время работы. Итак, мы видим, что время от времени монго выполняет запрос очень медленно - до нескольких секунд. Также каждый раз, когда первая операция самая медленная, мы даже намеренно исключаем ее из статистики, и все равно разница между avg и max огромна. Это нормально? Могу ли я устранить эти медленные операции? Почему монго выполняет некоторые запросы очень медленно?
Ниже приведены результаты для режима одиночных операций и режима смешанного режима, когда мы одновременно запускаем тесты для вставки/получения/удаления/обновления. В смешанном режиме thread=1 означает, что мы создали 4 потока, по одному для каждого типа теста
Мы использовали значение по умолчанию — 100 подключений на хост.
Источник
public void storeMt(MyTestObject myTestObject) {
mongoTemplate.insert(myTestObject );
}
public MyTestObject getMt(long id) {
MyTestObject result = mongoTemplate.findById(id, MyTestObject.class);
return result;
}
@Document
public class MyTestObject implements Serializable {
private static final long serialVersionUID = 1L;
@Id
private long id;
//class contains 20+ fields
.......