Golang and high CPU

Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Golang and high CPU

Post by Сабина »

Кто нибудь в курсе отчего апликейшены написанный на Go вдруг может начать потреблять 100% СPU без каких либо видимых причин ? Речь о AWS, там конечно свои заморочки, но по мониторингу видно что это именно app code .
Из того что я начиталась Go наоборот должен быть CPU efficient. Снять бы по хорошему thread dump в момент кризиса, но как это делается ?
В общем не дайте помереть в невежестве, расскажите как в Go принято high CPU траблшутить?

PS. Там же go routines , и в одном треде их может сотня запускаться, видимо тред дамп тут никак не поможет
https://www.youtube.com/watch?v=wOwblaKmyVw
mskmel
Уже с Приветом
Posts: 946
Joined: 24 Sep 2013 05:58
Location: US\GA

Re: Golang and high CPU

Post by mskmel »

Сабина wrote:В общем не дайте помереть в невежестве, расскажите как в Go принято high CPU траблшутить?
http://lmgtfy.com/?q=golang+profiler" onclick="window.open(this.href);return false;
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Golang and high CPU

Post by Сабина »

mskmel wrote:
Сабина wrote:В общем не дайте помереть в невежестве, расскажите как в Go принято high CPU траблшутить?
http://lmgtfy.com/?q=golang+profiler" onclick="window.open(this.href);return false;
Многое из списка я вчера уже просматривала и насколько я вижу для пользования этими профайлерами нужен code change. В моем случае увы не вариант, мониторить надо беду случившуюся в продакшене.
https://www.youtube.com/watch?v=wOwblaKmyVw
mskmel
Уже с Приветом
Posts: 946
Joined: 24 Sep 2013 05:58
Location: US\GA

Re: Golang and high CPU

Post by mskmel »

Сабина wrote:для пользования этими профайлерами нужен code change. В моем случае увы не вариант, мониторить надо беду случившуюся в продакшене.
Сразу деплоить в продакшен код который диагностируем?
Еще вариант strace, но сильно сложнее будет связи с кодом находить.
Palych
Уже с Приветом
Posts: 13682
Joined: 16 Jan 2001 10:01

Re: Golang and high CPU

Post by Palych »

strace вряд ли поможет с high CPU usage.
Попробовать посмотреть отдельные threads?
Если какой-то из них шалит - смотреть за что он отвечает.
Ну и стараться повторить проблему с помощью load test...
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Golang and high CPU

Post by Сабина »

Palych wrote:strace вряд ли поможет с high CPU usage.
Попробовать посмотреть отдельные threads?
Если какой-то из них шалит - смотреть за что он отвечает.
Ну и стараться повторить проблему с помощью load test...
Этим делом в итоге другие люди занялись ( вышедшие из отпуска и написавшие этот код - и слава богу). Но у меня таки осталось любопытство - там же go routines которых на тред может быть целая куча и именно они и грузят CPU как я понимаю.
https://www.youtube.com/watch?v=wOwblaKmyVw
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Golang and high CPU

Post by Сабина »

mskmel wrote:
Сабина wrote:для пользования этими профайлерами нужен code change. В моем случае увы не вариант, мониторить надо беду случившуюся в продакшене.
Сразу деплоить в продакшен код который диагностируем?
Еще вариант strace, но сильно сложнее будет связи с кодом находить.
О, годится. Спасибо :great:
http://stackoverflow.com/questions/2869 ... -in-golang" onclick="window.open(this.href);return false;
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
wassup
Уже с Приветом
Posts: 736
Joined: 30 Mar 2006 09:08
Location: Arch Linux world

Re: Golang and high CPU

Post by wassup »

Palych wrote:strace вряд ли поможет с high CPU usage.
Попробовать посмотреть отдельные threads?
Если какой-то из них шалит - смотреть за что он отвечает.
Ну и стараться повторить проблему с помощью load test...
Вместо strace лучше использовать 'perf', это полноценный профайлер и для ядра и юзерспейса.

'perf top -p $PID'

Return to “Вопросы и новости IT”