Linux Distributions & Architectural Deep Dives
Linux Memory Subsystem Tuning
Memory behavior on a modern Linux host is governed by cgroups v2 limits, reclaim pressure, and the OOM killer's scoring. Defaults favor the whole machine, not a single microservice. Tuning means giving each workload a bounded budget, understanding how swap interacts with latency, and making out-of-memory events predictable instead of random.
Points clés
- Set memory.max per service so one workload cannot starve its neighbors.
- Track memory.current and memory.pressure to see reclaim before it becomes an outage.
- Tune swappiness against workload behavior, since databases and caches respond differently.
- Reserve memory with memory.min for critical services that must survive pressure.
- Understand oom_score_adj and set it deliberately for essential and sacrificial processes.
- Enable per-cgroup swap accounting so limits reflect real usage.
- Watch page cache behavior, because container memory stats include cache and confuse dashboards.
- Load-test at the limit and confirm the failure mode is graceful, not a kernel panic or a hung node.
Questions fréquentes
Does lower swappiness always improve performance?
No. It helps latency-sensitive services but can hurt workloads that benefit from reclaiming cold pages.
Why did the OOM killer kill the wrong process?
Its choice follows memory score and cgroup context, which often differs from what operators expect.
Should containers set memory limits?
Yes, or the scheduler and kernel have no basis for isolation or eviction decisions.
How do I detect memory pressure early?
Watch PSI metrics and reclaim counters, not just free memory.
Comment Kinetikatech vous aide avec linux distributions & architectural deep dives
Nous l'avons résolu des centaines de fois : Declarative rebuilds, rolling-release discipline, immutable images, and real-time kernels, the distribution choices that decide how a Linux fleet behaves under production load. Avec Gestion de serveurs et Sécurité des serveurs Linux, vous bénéficiez du cycle complet : nous évaluons, nous déployons, nous surveillons jour et nuit et nous répondons en 30 minutes quand cela compte.