답변:
kubernetes의 아이디어는 인스턴스를 최대한 100 %에 가깝게 묶는 것입니다. 모든 배포는 CPU / 메모리 제한으로 고정해야합니다. 따라서 스케줄러가 포드를 머신에 보내면 스왑을 전혀 사용하지 않아야합니다. 속도가 느려지기 때문에 교환하고 싶지 않습니다.
주로 성능을위한 것입니다.
스왑을 올바르게 사용하지 않는 TL; DR은 게으른 해킹 일 뿐이며 메모리 하위 시스템에 대한 이해가 부족하고 기본적인 시스템 관리 기술이 부족함을 보여줍니다. 인프라 서비스를 설계하고 이러한 시스템을 이해하지 못하는 것은 실패로 끝날 것입니다.
그래서 이것에 대한 논평이 있습니다. 이것은 기능이나 요구 사항보다는 게으름처럼 보입니다. 스왑을 제대로 처리하고 메모리를 분석하며 스왑을 누르지 않고 메모리 하위 시스템을 올바르게 활용하는 방법을 결정하는 것이 절대적으로 가능합니다. 이 도구에는 다양한 도구가 내장되어 있으며 프로세스가 스왑을 매우 쉽게 활용하지 못하므로 성능 포인트가 잘못되었음을 보장 할 수 있습니다. 이 계측기를 사용하지 않는 것은 단순히 게으른 코딩이며 스왑을 완전히 제거하면 시스템 성능이 저하됩니다. 여기서 핵심은 올바르게 사용하는 것입니다. 포드를 디스크로 교체하면 성능에 영향을 미치지 만 디스크 로 교체 해야 할 사항 이 많이 있습니다.
또한 Linux 커널은 스왑을 사용하도록 설계되었으며 완전히 비활성화하면 부정적인 결과가 발생합니다. 이것을 처리하는 더 좋은 방법은 포드를 메인 메모리에 고정하고 디스크로 스왑 할 수 없도록하고 vfs 캐시 압력을 줄여 절대적으로 필요한 경우가 아니라면 스왑되지 않도록하는 것입니다. 주 메모리가 소진되면 MALLOC이 실패합니다.
컨테이너의 프로세스가 실패하거나 컨테이너를 OOM 킬러 (kill killer)로 죽인 프로세스에 따라 약간 비참한 결과가 발생할 수 있습니다. 그러나 이러한 컨테이너에서 실행되는 프로세스는 상태 비 저장 상태와 임시 상태 여야하지만 20 년 동안 실행 된 시스템에서 모든 사람이 의도 한 디자인을 100 % 문자 그대로 따르는 것을 보지 못했습니다.
또한 이것은 비 휘발성 메모리와 같은 미래 기술과 하이브리드 디스크 / 메모리 시스템을 사용하여 주 메모리를 크게 확장하는 데 사용할 수있는 인텔 xpoint와 같은 최신 메모리 시스템을 고려하지 않습니다. 이러한 유형의 시스템을 사용하면 보조 주 메모리로 직접 사용하거나 스왑 파일을 사용하여 성능에 미치는 영향이 거의없는 주 메모리를 확장 할 수 있습니다.
다시 활성화 할 수있는 티켓이 있습니다. 더 많은 통찰력을 얻을 수 있습니다.