Golang Дайджест
7.87K subscribers
36 photos
1 file
165 links
Самое интересное из мира Go: новости, статьи, проекты, сервисы, изменения в языке и др.

Посты публикуются не часто - только самое важное, с чем я лично ознакомился.

Поэтому можно не мьютить канал =)

Обратная связь: @justskiv
Download Telegram
Go memory ballast: How I learnt to stop worrying and love the heap

https://blog.twitch.tv/en/2019/04/10/go-memory-ballast-how-i-learnt-to-stop-worrying-and-love-the-heap/

Очень крутая статья, в которой разработчики Twitch снова борются с Garbage Collector'ом (GC). В статье есть очень крутой ликбез по GC, про некоторые его основы и нюансы.

И всё это закрепляется крутым реальным примером оптимизации, которую можно осознать благодаря понимаю этих самых тонкостей.

Будем честны, далеко не всем это пригодится в реальной работе, т.к. реальная польза будет заметна лишь при большом хайлоаде, но расширять кругозор полезно (а не расширять вредно).
Кроме того, статья поможет разобраться не столько в хайлоаде, сколько во внутреннем устройстве GC, а то ещё более ценно.

Статья написана очень круто — материал довольно сложный, глубокий, но при этом читается довольно легко и интересно.

————

Краткая суть проблемы из статьи: периодически Твич ловит внезапный рост нагрузки. Например, из-за так называемого refresh storm — это когда крупный стример перезапускает стрим, и все его зрители начинают массово обновлять страницу.

Масштабировать такое сложно, т.к. всё происходит слишком быстро, а держать достаточное количество мощностей, работающих постоянно — дорого.

Ребята решили оптимизировать нагрузку на процессор тем, что снизили частоту срабатывания GC. Как именно? Если кратко, то вот так:

func main() {

// Create a large heap allocation of 10 GiB
ballast := make([]byte, 10<<30)

// Application execution continues
// ...
}


Подробное обоснование, объяснение и результаты найдёте в статье 🙃

Ну ладно, спойлер, вот результаты: снижение количества срабатываний GC на 99% и снижение нагрузки на CPU на 30%

Вообще, всё это выглядит как грязный хак и костыли, но авторы уже завели proposal, в котором предлагают ввести флаг, позволяющий решить данную проблему легально.

#article #english #highload #garbage_collector
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍29🤯17🔥1110