У нас есть продукт, основанный на стороннем приложении, работающем на сервере Apache, подключенном к базе данных Firebird (v2.5.3).
К сожалению, мы дошли до точки, где мы получаем тайм-ауты, когда пользователи пытаются сделать запросы к серверу. При открытии вкладки devtools->network мы видим, что пакеты отбрасываются.
Для отладки этой проблемы мы записали трафик Wireshark на сервере, и мы видим много событий повторной передачи. Некоторые из http-пакетов проходят нормально, но некоторые получают эти повторные передачи, и я подозреваю, что это вызывает тайм-аут.
Загрузка cpu сервера высокая (50-100%), в основном из-за базы данных firebird. У облачного провайдера, где размещен сервер, нет SSD-дисков, и мы знаем, что это может быть проблемой.
Странно, что в записи Wireshark мы не видим http-запросов от пользователей. Вот как это выглядит для полученных пакетов:
Когда я попытался поймать запросы с одного конкретного IP, которые не прошли, я получил только повторную передачу TCP (поэтому я не вижу сам запрос). Не уверен, имеет ли это значение, но соединение установлено на порту 443. Вот пример того, как это выглядит:
Возможно ли, что из-за того, что база данных Firebird занята/загрузка процессора высока, http-пакеты отбрасываются на более низкой скорости (через 4-5 секунд) даже без регистрации http-запроса в Wireshark?
Поскольку мы не можем заменить диски на SSD, как вы думаете, может ли модернизация ЦП помочь решить эту проблему?
Есть ли какая-либо конфигурация Apache или Firebird, которая могла бы улучшить производительность?
Какую еще информацию я могу попытаться собрать, чтобы получить больше информации о проблеме?