Изменение сервера PostgreSQL изменило характеристики приложения Django - PullRequest
0 голосов
/ 23 декабря 2018

Мне пришлось переключить корпоративный сайт Django 1.11 с корпоративного сервера PostgreSQL 9.4 на кластер AWS RDS Aurora-PostgreSQL 10.Первоначально у меня сложилось впечатление, что это должна быть простая миграция, поскольку я не использовал какой-либо код для конкретной версии.

Сразу после миграции сайт начал ужасно разрушаться.Запросы, которые раньше занимали миллисекунды, внезапно подскочили в 100 раз, вызывая тайм-ауты по всем нитям оружейного оружия.Я также продолжал видеть, что соединения сбрасывались как с RDS, так и с Django.

Он продолжал выглядеть так, как будто это были какие-то настройки, которые мне нужно было бы сопоставить между предыдущим сервером и текущим сервером, но несмотря на привлечение экспертов PostgreSQL и поддержку AWS, тамне было простых ответов (или даже сложных).Наконец, мне пришлось настроить большинство запросов в моем коде Django, чтобы обеспечить стабильность сайта.

В приложении есть несколько запросов, которые ссылаются на внешние отношения, поэтому я использовал ряд prefetch_related и аналогичных приемов, чтобы исправитьпомедленнее.Итак, запрос, который занимал 0,5 секунды, перешел к 80 секундам, а после добавления prefetch_related вернулся к 0,5 секундам.

Несмотря на то, что сайт теперь стабилен, я публикую это в надежде, что какой-то PostgreSQLи / или эксперт Django видит это и признает это признаком некоторой неправильной настройки.Я не в состоянии поделиться примерами запросов и не прошу оптимизации запросов.Вопрос в том, что может сделать запрос в 100 раз медленнее при переходе с одного сервера PostgreSQL на другой без изменения кода приложения?

1 Ответ

0 голосов
/ 23 декабря 2018

Как правило, совместимое с postgres aurora обладает совершенно другими характеристиками производительности, чем ванильные postgres, и конфигурация и настройка для обоих могут быть очень разными.Для вас проще всего было бы использовать AWS RDS для Postgres, а не AWS RDS с Aurora Postgres, если вы хотели получить характеристики производительности, близкие к вашим размещенным postgres.Существует ряд деталей конфигурации, которые вы не поделились и которые могут повлиять на производительность между RDS и автономным сервером, включая настройки VPC, SSL и т. Д., Которые также могут повлиять на производительность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...