вторник, 7 апреля 2020 г.

Профилирование в Golang, использование в производственной среде

Какие другие профилировщики (не pprof) можно использовать для профилирования программ Go?

В Linux инструменты perf могут использоваться для профилирования программ Go. Perf может профилировать и раскручивать код cgo/SWIG и kernel, поэтому может быть полезно получить представление об узких местах производительности native/kernel. На macOS, Instruments Suite можно использовать для профилирования программы Go.

Можно ли профилировать сервисы в производственной среде?

Да. Безопасно профилировать программы в производственной среде (production), но включение некоторых профилей (например, профиля cpu) увеличивает стоимость. Вы должны ожидать снижения производительности. Нарушение производительности можно оценить путем измерения накладных расходов профилировщика перед его включением в производственной среде.

Вы можете периодически профилировать свои сервисы в производственной среде. Особенно в системе с множеством реплик одного процесса, периодический выбор случайной реплики является безопасным вариантом. Выберите производственный процесс, профилируйте его X секунд для каждых Y секунд и сохраняйте результаты для визуализации и анализа; затем периодически повторяйте. Результаты могут быть вручную и/или автоматически просмотрены, чтобы найти проблемы. Сбор профилей может мешать друг другу, поэтому рекомендуется собирать только один профиль за раз.


Читайте также:


Комментариев нет:

Отправить комментарий