7.3. Активация и анализ логов профилировщика
Иногда система начинает тормозить и нужно найти проблемную точку. Для этого нужно активировать работу профилировщика. Однако, это дает overhead, поэтому, если вы хотите сделать это на проде, подумайте, а нужно ли это вам.
Чтобы это сделать, нужно в настройках добавить переменные
ENABLE_PROFILING = True (обязательная)
PROFILE_MIN_LOG_TIME = 1 (опционально) время в секундах на длительность запроса, после которой будет создан лог)
PROFILE_DIR (опционально) путь к директории с логами профилировщика. Если не задано, по умолчанию «/app/logs/profiling/»
При работе системы в этом режиме, могут создаваться файлы логов PROFILE_MIN_LOG_TIME секунд, то в директории PROFILE_DIR создается файл лога этого запроса. Просматривать в удобном виде можно следующим образом
https://jiffyclub.github.io/snakeviz/
pip install snakeviz
snakeviz ./logs/profiling/<filename.prof>
Вот это вроде можно, но я не проверял
pip install SquareMap RunSnakeRun
python runsnake.py OpenGLContext.prof
Анализ использования памяти (не проверял)
pip install meliae
from meliae import scanner
scanner.dump_all_objects('/app/logs/memory.dump')
runsnakemem logs/memory.dump