Django, приложение postgis, использование процессора подскакивает до 100%
У нас есть django приложение, основанное на местоположении, использующее geodjango, работающее в docker / google cloud vm + sql instance (vm: e2-medium (2 vCPU, 4 GB памяти), sql :1 vCPU, 3.75 GB).
У нас есть представление search_listing_view, которое извлекает списки (41k на данный момент) из базы данных на основе введенного пользователем местоположения (lat, lng) и max_dtaince в км Listing.objects.filter(location__distance_lte=(user_location, D(km=radius)))
, простой запрос к этому представлению заставляет vm cpu использовать почти 100%, когда db cpu никогда не достигает 20% использования.
Вот скриншот верхней команды при выполнении запроса к search_listings_view
мой вопрос: тяжелые вычисления, связанные с операциями расстояния, должны обрабатываться cpu/instance базы данных, а не vm, vm здесь просто запрашивает базу данных, может ли этот всплеск использования процессора быть связан с конфигурацией nginx / gunicorn, я также прифилировал gunicorn preccess с помощью py-spy, prifile.svg: enter link description here