![최대 절전 모드에서 다시 시작할 때 메모리/스왑 페이지 상태 복원](https://linux55.com/image/77189/%EC%B5%9C%EB%8C%80%20%EC%A0%88%EC%A0%84%20%EB%AA%A8%EB%93%9C%EC%97%90%EC%84%9C%20%EB%8B%A4%EC%8B%9C%20%EC%8B%9C%EC%9E%91%ED%95%A0%20%EB%95%8C%20%EB%A9%94%EB%AA%A8%EB%A6%AC%2F%EC%8A%A4%EC%99%91%20%ED%8E%98%EC%9D%B4%EC%A7%80%20%EC%83%81%ED%83%9C%20%EB%B3%B5%EC%9B%90.png)
저는 Linux 최대 절전 모드 지원을 좋아하며, 제가 사용해 본 모든(물론 약간 오래된) 하드웨어에서 매우 잘 작동합니다. 완전히 종료하고 켜는 것보다 선호합니다.
하지만 최대 절전 모드에 관한 한 가지 점이 한동안 나를 괴롭혔습니다. 최대 절전 모드 시스템은 다시 시작할 때 항상 느리고 응답하지 않습니다. 전원을 켠 후 속도는 그다지 빠르지 않습니다. 이는 오래된 하드웨어로 인해 더욱 악화되지만 최신 시스템에서는 약간 더 심각한 수준으로 발생합니다.
이는 커널이 [커널 수준] 작업에 필요한 페이지만 작업 메모리로 다시 스왑하고, 커널의 기본 작업 상태를 복원하고, 개별 프로세스가 필요한 페이지를 다시 스왑하는 동안 사용자 공간이 RAM을 잠시 동안만 소모하도록 하기 때문인 것으로 보입니다. 작업 기억은 그 자체의 힘으로 진행됩니다.
이것은 실제로는 잘 작동하지 않습니다. 왜냐하면 시스템이 처음에는 대규모 프로세스가 모든 것을 디스크로 완전히 스왑하도록 강제하는 것처럼 작동하기 때문입니다. 화면의 모든 내용은 빠르게 다시 전환되지만 다른 프로세스로 전환할 때는 몇 초 정도 기다려야 합니다.그것또한 메모리로 다시 교체되었습니다. 오래된 하드웨어(제 경우에는 Core 2 ThinkPad T60)에서는 "몇 초"가 몇 분이 될 수도 있습니다.
얼마간 생각한 끝에 저는 최근 이 문제에 매우 간단한 해결책이 있다는 것을 깨달았습니다. 즉, 디스크와 RAM의 페이지를 표시하는 태그를 기록한 다음 복원할 때 이 정확한 상태를 복원하는 것입니다. 물론, 복구 프로세스에 10초 정도 더 걸릴 수 있지만 상관없습니다. 빠른 시스템을 갖추겠습니다.
그러한 기능을 활성화하는 모호한 커널 컴파일 옵션이 있는지 또는 이 동작을 근사화하기 위해 설정할 수 있는 일부 구성이 있는지 궁금합니다.
노트:실행 가능한 솔루션이 없다고 생각합니다 swapoff -a; swapon -a
. 일시 중지된 사용자 공간이 다시 시작되면 로드된 모든 프로세스가 코드를 실행하려고 시도하고 RAM으로 다시 교체하려고 애쓰므로 많은 디스크 I/O가 발생합니다. 스왑 영역을 파괴하려고 시도하면 허리케인이 악화될 뿐이며 실제로 커널 복구를 완료하는 데 시간이 더 오래 걸립니다.모두사용자 공간 이전에 RAM을 복원하십시오.