Как контролировать использование процессора и оперативной памяти для каждого запроса в Django - PullRequest
1 голос
/ 27 мая 2019

Я использую сервер Django Rest Framework на Google Cloud Platform. Большинство моих запросов - пост-запрос. Я хочу проанализировать, какой запрос использует сколько памяти и сколько ЦП в среднем. Есть ли способ проанализировать это?

Мой код API выглядит следующим образом:

class GetAudioDialogue(APIView):

    def post(self, request):
        ...

1 Ответ

0 голосов
/ 27 мая 2019

У меня нет опыта анализа этого, но я нашел несколько возможных вариантов.

Пользовательское промежуточное ПО, использующее psutil

Можно написать собственное промежуточное программное обеспечение, которое отслеживает использование памяти для каждого запроса процесса и отвечает. Пример этого можно найти в этом StackOverflow - Вопрос

Pympler

Как их Репозиторий Github заявляет:

Инструмент разработки для измерения, мониторинга и анализа поведения памяти объектов Python в работающем приложении Python.

Предлагает способы отслеживания памяти в Django, отслеживание экземпляров классов, отдельных объектов и многое другое. Более подробную информацию можно найти в соответствующих документах

Valgrind

Как официальный сайт заявляет:

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

Требуется некоторая настройка. Информацию о том, как настроить его для Python, можно найти в этом StackOverflow - Вопрос

...