Понимание низкой производительности DjangoPython

Программы на Python
Ответить
Anonymous
 Понимание низкой производительности Django

Сообщение Anonymous »

Мой веб-сервер масштабируется, и я использую Sentry Performance, чтобы лучше понять, где дела идут медленно. Одна вещь, которую я не совсем понимаю, это то, откуда может быть такая медлительность, когда общее время выполнения запроса резко отличается от времени, необходимого для получения ответа.
Например, одной из моих конечных точек требуется 40 секунд, чтобы наконец получить ответ пользователю. Вы увидите, что общее время ответа заняло невероятные 44 000 мс, хотя вся работа была выполнена примерно за 1 с (что все еще медленно, но не 44 с).
Редактировать: как Общее примечание: все мои конечные точки делают это — особенностью являются пунктирные точки в конце временной шкалы, где начинаются любые фактические обращения к Django/базе данных. Он просто пустует целую минуту, прежде чем Джанго начнет что-то делать. Это потенциальная ошибка конфигурации винкорна или Ювикорна?
Дополнительная информация:
  • Запуск пушки с uvicorn: поэтический запуск Gunicorn -w 17 myApp.asgi:application -k myApp.uvicorn.AppUvicornWorker --log-level=debug
  • Я получаю около сотни запросов в секунду, что сервер должен быть более чем способен справиться — у него 32 ГБ оперативной памяти и 8 ядер процессора.
AppUvicornWorker:

Код: Выделить всё

class AppUvicornWorker(UvicornWorker):
CONFIG_KWARGS = {"loop": "uvloop", "http": "httptools", "lifespan": "off"}
  • Представления — это просто базовые, полностью стандартные запрошенные ListViewSets Django Rest Framework:

Код: Выделить всё

class UserSerializer(serializer.ModelSerializer):
class Meta:
model = User
fields = ["id", "username", "name"]

class CommentSerializer(serializer.ModelSerializer):
user = UserSerializer()

class Meta:
model = Comment
fields = ["id", "text", "user"]

class CommentsViewSet(viewsets.ViewSet):
def list(self, request):
queryset = Comments.objects.all()
serializer = CommentSerializer(queryset, many=True)
return Response(serializer.data)
Изображение


Подробнее здесь: https://stackoverflow.com/questions/720 ... erformance
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»