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)?