Какие другие профилировщики (не pprof) можно использовать для профилирования программ Go?
В Linux инструменты perf могут использоваться для профилирования программ Go. Perf может профилировать и раскручивать код cgo/SWIG и kernel, поэтому может быть полезно получить представление об узких местах производительности native/kernel. На macOS, Instruments Suite можно использовать для профилирования программы Go.
Можно ли профилировать сервисы в производственной среде?
Да. Безопасно профилировать программы в производственной среде (production), но включение некоторых профилей (например, профиля cpu) увеличивает стоимость. Вы должны ожидать снижения производительности. Нарушение производительности можно оценить путем измерения накладных расходов профилировщика перед его включением в производственной среде.
Вы можете периодически профилировать свои сервисы в производственной среде. Особенно в системе с множеством реплик одного процесса, периодический выбор случайной реплики является безопасным вариантом. Выберите производственный процесс, профилируйте его X секунд для каждых Y секунд и сохраняйте результаты для визуализации и анализа; затем периодически повторяйте. Результаты могут быть вручную и/или автоматически просмотрены, чтобы найти проблемы. Сбор профилей может мешать друг другу, поэтому рекомендуется собирать только один профиль за раз.
Читайте также:
- Профилирование в Golang, профили runtime/pprof
- Исследование утечек памяти в Golang с помощью pprof
- Диагностика в Golang
Комментариев нет:
Отправить комментарий