Назад | Перейти на главную страницу

Медленные запросы при переключении с GoDaddy на AWS

Мой коллега только что перенес наш сервер и базу данных на AWS, и с тех пор несколько запросов выполняются очень медленно. Наш код в основном состоит из PHP, и мы используем базу данных MySQL. Основываясь на некоторых исследованиях, которые я провел, кажется вероятным, что проблема может быть в одном из двух:

1) Aurora не оптимизирована для работы со старым однопоточным кодом, и она может лучше работать с MySQL RDS? (Щелкните Вот чтобы увидеть соответствующую статью)

2) Все индексы необходимо перестроить

Поскольку я понятия не имею, как проверить или справиться с любой из этих вещей (я нуб из БД), я надеялся, что кто-то может помочь мне указать в правильном направлении или иметь некоторые предложения относительно того, что происходит.

РЕДАКТИРОВАТЬ:

Вот вставка для некоторых журналов ошибок, если это полезно: https://pastebin.com/fudCSTux, Я пытаюсь заставить этот сценарий работать, но пока безуспешно. Я счастлив вставить значения из этих переменных, но некоторые из них, похоже, представляют угрозу безопасности, мне придется пройти и отредактировать конфиденциальную информацию.

РЕДАКТИРОВАТЬ 2:

Вот - это pastebin для всей информации о конфигурации базы данных.

Вот - это pastebin для запроса объяснения и отображения информации о создании таблицы.

РЕДАКТИРОВАТЬ 3:

Главный сервер - t2 small. Что касается базы данных, есть мастер, читатель и писатель. Читатель и писатели в настоящее время являются носителями t2, vCPU 2, RAM 4GB, насколько я могу судить, устройств SSD / NVME нет. Я смотрю на консоль AWS services > rds > databases > clicked on instances > configuration > instance class для оценки оборудования.

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

Ваш запрос - выберите * из driver_events, где driverId = '923' и FROM_UNIXTIME (time, '% m-% d-% Y') = '12 -18-2019 'упорядочить по времени desc limit 0,5; - НЕ НУЖНЫ кавычки вокруг driverID. Кавычки вызывают манипуляции с типом данных для каждой строки. Идентификатор драйвера столбца определяется как INT, поэтому кавычки не нужны.

Ваш запрос вакансий выполняется так долго, потому что нет индекса для jobs.time. Предложение: ALTER TABLE jobs ADD INDEX idx_jobs_time (time);

Чтобы сократить время, необходимое для выполнения запросов. Просмотрите мой профиль, сетевой профиль для загрузки БЕСПЛАТНЫХ служебных скриптов для повышения производительности.

Скорость в секунду = RPS

Рекомендации для группы параметров AWS Aurora

thread_cache_size=32  # from 2 to reduce threads_created
innodb_lru_scan_depth=100  # from 1024 to conserve 90% of CPU cycles used by function
innodb_flushing_avg_loops=5  # from 30 to reduce loop delay
read_rnd_buffer_size=192K  # from 512K to reduce handler_read_rnd_next RPS of 12,322

Вы обнаружите, что эти изменения конфигурации значительно УМЕНЬШАЮТ загрузку ЦП и улучшают скорость выполнения запросов.