Go GOMAXPROCS v Kontajneroch: Problém Detekcie CPU
Go vidí 64 CPU hosta ale váš kontajner má limit 2 CPU. GOMAXPROCS=64 spôsobuje nadmerný context switching a throttling. Tu je riešenie.
8 článkov
Go vidí 64 CPU hosta ale váš kontajner má limit 2 CPU. GOMAXPROCS=64 spôsobuje nadmerný context switching a throttling. Tu je riešenie.
CPU vyzerá OK, ale tail latencia je katastrofálna. Ukážem ako korelovať CFS throttling s latency spikes a prečo odstránenie CPU limitov môže paradoxne pomôcť.
Pri 50k logov/sec JSON serializácia žerie 30% CPU. Štandardná knižnica encoding/json je pomalá. Benchmarkujem zap vs zerolog vs slog so skutočnými číslami.
Rovnaký query, rovnaké parametre, ale prod je pomalý a staging funguje. Ukážem ako reprodukovať generic plan problém s pgBouncer, Java/Go a ako ho fixnúť.
Frontend sa vzdá po 5s ale backend pracuje ďalších 30s. Bez deadline propagácie mrháte resources na odsúdené requesty. Ukážem ako to implementovať v Go.
Sporadické 'connection reset by peer' chyby v produkcii. Ukážem ako nesúlad keep-alive timeoutov medzi klientom a serverom toto spôsobuje a ako to opraviť.
Pridávate Redis len pre distributed locks? PostgreSQL advisory locks môžu stačiť. Porovnávam oba s failure scenármi a performance benchmarkami.
Thread pool 200 lebo to hovorí Stack Overflow? Netflix algoritmus upravuje konkurenciu automaticky podľa latencie. Ukážem ako funguje s benchmarkmi.