최대 절전 모드에만 스왑 사용


0

스왑 파티션이 /dev/sda1있습니다. 그것은 2GB크기이며 최대 절전 모드로 사용하고 싶습니다. 내 시스템에는 4GBRAM이 있습니다. RAM이 부족하면 커널이 스와핑을 시작하고 응용 프로그램을 종료하기 위해 tty로 전환 할 수도 없습니다. OOM 상태가 아닌 최대 절전 모드에만 스왑을 사용하고 싶습니다. 그래서 나는 OOM 킬러가 항상 교환하지 않고 일부 응용 프로그램을 죽이기를 원합니다. 설정 vm.swappiness=0했지만 도움이되지 않습니다. 어떤 솔루션?


해결책이 없지만 vm.swappiness = 0 설정에 댓글을 달고 싶습니다. vm.swappiness = 0은 커널이 스왑을 시작하기 전에 감히 기다리는 한 대기 함을 의미합니다. 스와핑이 완전히 중단되지는 않습니다.
Mogget

이 작업을 수행하는 방법이 가능합니다. 스왑을 마운트 해제하고 빠르게 최대 절전 모드를 해제해야 할 때. 문제는 KDE 최대 절전 버튼으로 작동시키는 방법입니다.
Nazar554

스왑을 해제해도 램이 부족할 때 발생하는 근본적인 문제에 도움이되지 않습니다. 즉, 스와핑 할 때 시스템이 응답하지 않아 하드 드라이브 문제가 발생할 수도 있습니다. 일부 하드웨어 검사를 실행할 가치가 있습니다.
Journeyman Geek

답변:


0

솔루션이 직접 요청한 것은 아니지만 몇 가지 시도해 볼 수 있습니다.

주석에서 말했듯이 설정 vm.swappiness=0은 커널을 스왑을 사용하기 전에 가능한 한 오래 기다릴 수있게하고 완전히 끄지 않습니다. 나는 이것에 대한 증거는 없지만 vm.swappiness=0당신 을 설정 함으로써 문제가 악화 되고 있다고 생각합니다 .

이것이 사실이라고 생각하는 이유는 커널이 스와핑을 시작하게 만드는 무언가가 발생하면 아마도 모든 것을 정말 빠르게 스왑해야 할 것입니다. 하드 드라이브가 작동하는 속도 때문에 할 수없는 것입니다. 커널이 스왑 할시기를 선택하게하면, 이전에 덜 사용되는 데이터 스왑이 시작되고, 상황이 거칠어지면 한 번에 스왑하기 위해 RAM에서 많은 데이터를 이동할 필요가 없습니다. 일반적으로 이것은 커널 효율성을 증가시킵니다.

최대 절전 모드를 트리거 할 때 이러한 특정 이유로 생성 된 스왑 파티션 또는 스왑 파일을 사용 swapon하고 swapoff활성화 하는 스크립트를 만들 수도 있습니다 . 대부분의 창 관리자는 최대 절전 모드 버튼과 같이 스크립트의 다른 부분이 활성화 될 때 스크립트를 실행하도록 사용자 지정할 수 있습니다. 이 작업을 수행하는 방법은 사용하는 창 관리자에 따라 다릅니다.

세 번째 옵션은 스왑을 항상 활성화하고 대신 OOM 관리자가 활성화되고 강제 종료 프로세스를 시작하기 전에 사용할 수있는 RAM의 양을 줄이는 것입니다. 이것은 가능하지만 어떻게 해야할지 모르겠습니다.

마지막으로 요즘의 RAM 비용을 고려할 때 컴퓨터의 RAM 양을 늘리는 것도 이미 최대치 않은 경우 실행 가능한 옵션입니다.


0

루트의 crontab에 다음을 추가하여 해결 방법을 사용했습니다.

*/5 * * * * /sbin/swapoff -a  && /sbin/swapon -a

최상의 솔루션은 아니지만 스왑 사용량을 최소한으로 유지합니다. 다른 솔루션을 사용하려고 시도했기 때문에 최상의 결과를 얻었습니다.

또 다른 방법은 일시 중지 / 웨이크 업에 사용자 정의 스크립트를 사용하는 것이지만 우분투 (스왑 오프시 깨우기, 최대 절전 모드 전에 교체)로 작동시키는 방법을 찾지 못했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.