Django и Mysql высокий процессор. (оптимизация)

У меня есть приложение, которое использует Django rest framework для выставления конечных точек API, и приложение получает ±1000 запросов в секунду (не уверен в количестве).

Приложение Django и БД MySQL находились на виртуальном хостинге, но с начала этой недели сервер стал испытывать проблемы с высоким процессором, и после TSing выяснилось, что причиной проблемы являются процессы python. Поэтому я перенес приложение на VPS с 2 vCPU, 4G Ram и SSD жестким диском.

После перемещения всех данных и выполнения необходимых настроек, приложение работает, но появилась другая проблема с высоким уровнем процессора, но на этот раз для службы Mysqld, и в среднем он составляет 150%.

При проверке вывода команды mytop, qps колеблется между 100 и 200, в то время как в периоды меньшего трафика он составляет 65 (и я не уверен, что он должен быть меньше в периоды меньшего трафика, учитывая, что трафик значительно снизился)

Все запросы ищут одни и те же данные и проверяют, есть ли обновление, я думал об изменении методологии на webhook-based, но данные на моем сервере обновляются максимум каждые 30 секунд, поэтому я подумал, что это не даст лучшего результата.

Есть ли что-нибудь, что можно добавить для оптимизации набора запросов базы данных? Или мне нужно увеличить ресурсы (CPU)?

Вернуться на верх