Я запускаю приложение laravel, которое находится на сервере, отличном от моей базы данных MySQL.
Если я запустил запрос на сервере Mysql, для возврата потребуется 0,00–0,01 секунды. Однако, когда я регистрирую время от начала запроса до конца, оно занимает 0,3 секунды. Весь вызов API занимает от 800 до 1000 мс.
Я изменил my.cnf на skip-name-resolve, у меня включен кеш запросов, я использую IP-адрес, а не доменное имя для подключения.
Я не знаю, что еще попробовать. Это очень простой RestAPI с простыми запросами и ничего сложного, а самая большая таблица в базе данных имеет 9000 строк. Я не думаю, что это проблема с базой данных, это проблема с подключением.
ЦП использует только 1%, а памяти достаточно.
Какие уловки мне не хватает?
Я понял, что низкая производительность была из-за того, что мои серверы находились в разных регионах / центрах обработки данных.
После выполнения traceroute это занимало в среднем 40 секунд, и с 3-мя запросами на транзакцию, которые складывались.
Я создаю новый сервер в том же регионе, и теперь он работает намного быстрее, а типичный ответ составляет 150-200 мс.