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.
핵심 내용
- 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.
자주 묻는 질문
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.
linux distributions & architectural deep dives에 대한 Kinetikatech의 지원
저희는 이것을 수백 번 처리했습니다: Declarative rebuilds, rolling-release discipline, immutable images, and real-time kernels, the distribution choices that decide how a Linux fleet behaves under production load. 서버 관리 및 Linux 서버 보안와 함께하면 평가, 구현, 24시간 연중무휴 모니터링, 그리고 중요한 때에 30분 이내 대응이라는 완전한 사이클을 제공합니다.