У меня есть приложение ruby on rails с запущенными mysql и mongodb (mongoid framework).
Тестировал нагрузку с осадой с настройкой -c 60 -r 10
на одной странице есть 2 поисковые запросы станций. каждый занимает более 22 секунд. это запрос:
QUERY database=**** collection=stationsongs selector={"$query"=>{"station_id"=>12812}, "$orderby"=>{"_id"=>-1}} flags=[] limit=10 skip=0 batch_size=nil fields=nil
Обе станции по поисковым запросам одинаковы (и да, я знаю, что должен дойти до одного, но это все равно огромная медлительность)
У меня в коллекции всего чуть больше 1 миллиона, и у меня есть индекс по station_id и _id. VPS имеет 4 ядра с 32 ГБ оперативной памяти.
Почему так медленно ?!
Проблема была неоднозначной. Это была производительность на VPS, а также на индексе mongodb. Я добавил правильный индекс, и он решил некоторые проблемы, но по-прежнему оставались медленные запросы из-за медленного процессора. Итак, перешел на выделенный сервер, и все было исправлено, теперь ответ составляет менее 80 мс, а не 22 секунды.
VPS был перегружен клиентами, поэтому у моего процессора было украдено 60-70% мощности.