Go Channels slow down with more CPUs - Grant Stephens, Fastly

  Рет қаралды 1,896

GopherCon UK

GopherCon UK

Күн бұрын

Fastly uses Go extensively in our logging systems. The hosts that handle these logs typically have 128 Cores and 1TB of memory and handle around 1M logs per second. Channels are used extensively in this code, however on these high CPU count hosts there is some unexpected behavior which can cause significant performance bottlenecks. Hitting this bottleneck on a production workload is not fun- customers want their logs now, not later. Building on the channel speed analysis done by Phil Pearl we found that a high core count host’s channel performance could be 10 times slower than low core count machines. This is especially relevant if bottlenecks exist where large parts of the data eventually flow through a single channel.The combination of the high CPU count and high throughput per channel pose some interesting possibilities for solutions as the two factors are interlinked. A number of solutions to this problem exist, however there is no panacea. Batching channels, parallelizing workflows and buffering were all investigated.

Пікірлер: 5
@namandave1359
@namandave1359 4 ай бұрын
what was the last question?
@peppybocan
@peppybocan 5 ай бұрын
Yeah, I don't think Go's scheduler is necessarily optimised and/or built for 128 core scheduling and contention🤔Usually microservices have ~1 core or units of cores. This use case seems a bit of an odd edge case. I would, instead of having 128 cores, downsize the nodes to 32 core ones, which, yes, increases the number of connections but I don't think that's necessarily a problem. 🤔
@sortof3337
@sortof3337 3 ай бұрын
It is kind of still slow on 32 cores even. Also go build times are atrocious on giant project. Recently started work on a huge project with lots of libs and close to 2mil lines of code. Build times are just as bad as rust. :( Also I don't like that it doesn't give you any information when its building stuff. :|
@jcbritobr
@jcbritobr 5 ай бұрын
Thats bizarre...
Building Graphical Go apps is Fyne  Andrew Williams, FyneLabs
58:31
GopherCon UK
Рет қаралды 2,6 М.
Andro, ELMAN, TONI, MONA - Зари (Official Music Video)
2:50
RAAVA MUSIC
Рет қаралды 2 МЛН
How to have fun with a child 🤣 Food wrap frame! #shorts
0:21
BadaBOOM!
Рет қаралды 17 МЛН
I Sent a Subscriber to Disneyland
0:27
MrBeast
Рет қаралды 104 МЛН
Event Driven Workflows - Andrew Wormald, Luno
52:16
GopherCon UK
Рет қаралды 3,4 М.
OpenTelemetry Collector: EVERYTHING you need to know [to get started]
10:07
Writing Code That Runs FAST on a GPU
15:32
Low Level
Рет қаралды 585 М.
Rant: Entity systems and the Rust borrow checker ... or something.
1:01:51
Let's Go Quantum - Sam Burns
58:00
GopherCon UK
Рет қаралды 2 М.
The Return of Procedural Programming - Richard Feldman
52:53
ChariotSolutions
Рет қаралды 66 М.
Blazing Fast Merge with Loser Trees - Bryan Boreham, Grafana Labs
47:49
Why Can't We Make Simple Software? - Peter van Hardenberg
41:34
Handmade Cities
Рет қаралды 231 М.
Andro, ELMAN, TONI, MONA - Зари (Official Music Video)
2:50
RAAVA MUSIC
Рет қаралды 2 МЛН