Высоконагруженные системы — почему одного Go недостаточно? — Никита Галушко, VK
Description
Наш сайт https://go.kotelov.com/website_kotelov
Отправить CV hr@kotelov.com или https://kotelov.com/hr/ 
Как VK проектирует код для многоядерных систем? Вроде все ресурсы CPU в твоём распоряжении, но код все равно работает медленно.
На Highload++ мы поговорили с Никитой Галушко, старшим инженером в VK — о том, как правильно работать с многопоточностью и многоядерными системами и почему чаще всего хваленный go мешает, а не помогает, если у тебя сотни тысяч соединений и 56 ядер.
— как выжать максимум из процессора? 
— как распределять потоки по ядрам? 
— как перехитрить ограничения в Go?
— можно ли управлять ядрами напрямую? 
📌Смотри, что нашел -- тг-канал Никиты https://t.me/b1tw1se
📌 Ссылки на доклады Никиты: 
Секреты высокой производительности в многоядерных системах ☠️ https://golangconf.ru/moscow/2024/abstracts/13125
Выжимаем из Go максимум производительности  https://www.youtube.com/watch?v=QMC9Kg4Ogxg
📌Что обсуждали
Ссылка на пейпер BRAVO https://arxiv.org/pdf/1810.01553 
Реализация BRAVO на Go https://github.com/puzpuzpuz/xsync 
Интересные пейперы (тот самый аккаунт в X) https://x.com/pvldb
00:00  Никита Галушко, старший инженер VK 
01:42  Почему высокопроизводительные системы написаны на Go?
03:46  Какой нужен процессор для многоядерной архитектуры?
08:03  Как писать структуры данных для управления высокопроизводительными системами?
09:29  Какие проблемы возникают в мьютексах?
18:00  Как правильно искать ответы на сложные вопросы в разработке?
21:53  Зачем вообще тогда нужен Go, если фатализация на ассемблере?
24:23  Что будет, если указать, на каком конкретном ядре запускать процесс?
25:31  C, Rust, Zic — свободные языки, а Go ограничивает разработчика?
28:41  Есть ли зависимость от операционной системы?
29:49  Где искать ответы и какие метрики собирать? 
34:43   Блиц:
AMD или Intel?
Windows, Linux или Mac?
#интервью #Highload #финтех #айти #kotelov #котелов #ВалерийКотелов #kotelovpodcast








