Очень медленный POST-запрос с Ruby on Rails

Мы работаем над веб-сайтом на Ruby on Rails, который получает GPS-координаты, отправленные разработанной нами системой отслеживания. Эта система отслеживания отправляет 10 координат каждые 10 секунд.

У нас есть 2 сервера для тестирования нашего веб-сайта, и мы заметили, что один сервер обрабатывает 10 координат очень быстро (менее 0,5 с), тогда как другой сервер обрабатывает 10 координат минимум за 5 секунд (до 20 секунд). Мы должны использовать «медленный» сервер для перевода нашего веб-сайта в рабочий режим, поэтому мы попытаемся решить эту проблему.

Вот изображение, показывающее временную характеристику медленного сервера (внизу мы видим 8593 мс).

Медленный сервер

На втором изображении показана временная характеристика «быстрого» сервера.

Быстрый сервер

Версия сайта та же. Мы загружаем его через Github.

Мы можем легко воспроизвести проблему, отправив поддельные координаты с помощью POSTMan, и разница во времени между двумя серверами останется прежней. Это означает, что проблема, на мой взгляд, не в нашей системе отслеживания.

Я пришел сюда, чтобы узнать, что может быть источником такой разницы. Я предполагаю, что это может быть проблема с самим сервером или с некоторыми настройками, которые не импортируются с Github.

Мы используем Sqlite3 для нашей базы данных.

Однако я даже не знаю, где искать возможные различия...

Если вам нужна дополнительная информация (например, lscpu => количество ссылок ограничено двумя...), чтобы помочь мне, пожалуйста, не стесняйтесь. Я отвечу очень быстро, так как я работаю над этим весь день.

Заранее спасибо.

РЕДАКТИРОВАТЬ: вот результаты команд lscpu на сервере.

Быстрый сервер: введите здесь описание изображения

Медленный сервер: введите здесь описание изображения

Может быть, одно большое отличие - это кеш L2...

Я предполагаю, что ответ здесь но как я могу узнать, каково мое значение синхронной прагмы и как я могу его изменить?

Размер файла .sqlite3, который я использую для тестов, составляет менее 1 месяца. Обе базы данных должны быть идентичны в соответствии с моим файлом schema.rb.


person Jahaa    schedule 25.08.2015    source источник
comment
На серверах работает разное оборудование/среды? На вашем рабочем сервере работает очень медленный виртуальный хостинг?   -  person gernberg    schedule 25.08.2015
comment
- Каков размер данных, которые у вас есть на каждом сервере? - в одной базе есть индекс, а в другой нет? - есть ли существенная разница в памяти, используемой в обоих случаях?   -  person tomsoft    schedule 25.08.2015
comment
Я предполагаю, что [stackoverflow.com/questions/15413575/ может быть источником проблемы. Однако я не знаю, как узнать значение, которое я использую для синхронной прагмы, и как его изменить. @gernberg: я не знаю аппаратного обеспечения сервера. Говорят, что медленный - виртуальный, и я попросил подтверждение этого. Оба используют линукс. Я все еще использую среду разработки ruby ​​on rails, но я не думаю, что у меня очень низкий виртуальный хостинг (кстати, я могу не понять, что вы имеете в виду).   -  person Jahaa    schedule 25.08.2015
comment
@tomsoft: файл development.sqlite3, представляющий базу данных, находится менее чем в 1 месяце для тестов. Как я могу узнать, есть ли у одного индекс, а у другого нет? Я использую Ruby On Rails с sqlite3, он должен обрабатывать это автоматически. Как я могу проверить память, используемую в обоих случаях? Но может быть и так же.   -  person Jahaa    schedule 25.08.2015


Ответы (1)


Провайдер "медленного" сервера решил проблему, однако подробностей я не знаю. Некоторые вещи потребляли память и замедляли все.

Наконец, под виртуальным сервером подразумевается, что на одной машине работает несколько серверов, каждому из которых приписывается часть машины.

Большое спасибо за твою помощь.

person Jahaa    schedule 27.08.2015