All content for KOTELOV Podcast is the property of KOTELOV and is served directly from their servers
with no modification, redirects, or rehosting. The podcast is not affiliated with or endorsed by Podjoint in any way.
Высоконагруженные системы — почему одного Go недостаточно? — Никита Галушко, VK
KOTELOV Podcast
36 minutes
8 months ago
Высоконагруженные системы — почему одного Go недостаточно? — Никита Галушко, VK
📌Наш telegram с невероятными новостями и супер вакансиями https://go.kotelov.com/hl_kotelov_telegram
Наш сайт 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