Debian 시스템에서 다음 없이 동일한 실행 세션에서 RAM을 확보하기 위해 모든 ZRAM 스왑 장치 콘텐츠를 스왑 파일로 이동하려면 어떻게 해야 합니까?
swapoff
ZRAM 데이터가 다시 RAM으로 유출될 위험이 있으므로 먼저 ZRAM을 비활성화합니다(예: 사용 ).swapoff
ZRAM 스왑 장치의 우선순위를 낮추려면 및 순서를 사용하십시오swapon
.- 또는 유사한 방법을 사용하면
dd
스왑 파일에서 데이터의 올바른 컨텍스트를 유지하지 않고 콘텐츠를 복사하여 데이터를 쓸모 없게 만듭니다.
솔루션은 ZRAM 스왑 장치의 데이터가 스왑 파일로 올바르게 전송되고 시스템에서 유효한 스왑 데이터로 인식되도록 보장하여 데이터 손실 위험이나 데이터를 다시 RAM으로 이동하지 않고 RAM 공간을 효과적으로 확보해야 합니다.
위의 제한 사항을 고려할 때 재부팅을 요구하지 않거나 시스템 성능에 큰 영향을 주지 않고 이를 달성할 수 있는 안정적인 방법이 있습니까?
답변1
zram은 RAM의 범용 압축 블록 장치입니다.
스왑과는 전혀 관련이 없습니다. (거의) 특정 코드가 교환되지 않습니다. 올바른 상황에서만 교체하는 데 유용합니다.
이는 다른 스왑 파티션이나 스왑 파일에 대한 zram 특정 마이그레이션 경로가 없음을 의미합니다. 스위칭 시스템 자체도 1:1 스위칭 장치 마이그레이션을 제공하지 않습니다.
누구세요~해야 한다그런 swapoff
다음 커널은 필요한 경우 다른 스왑 장치를 사용하여 간접적으로 마이그레이션합니다. 또는 우선 순위가 더 높은 다른 스위칭 장치를 추가하고 시간이 지남에 따라 우선 순위가 낮은 스위칭 장치가 종료될 때까지 기다릴 수 있습니다.
즉, zram에는 선택적 쓰기 저장 기능이 있습니다.zram: 선택 기능 - 다시 쓰기. 이를 사용하여 (일시적으로) RAM을 확보할 수 있습니다. 그러나 모든 요청은 여전히 zram 장치를 통과하며 새로 작성된 페이지도 RAM에 먼저 들어갈 수 있습니다.
이 기능에 대한 지원은 아직 널리 보급되지 않았습니다(커널에서 활성화되지 않거나 zramctl
지원되지 않을 수 있음 등). sysfs 인터페이스를 통해 수동으로 활성화해야 할 수도 있습니다. 시험해보고 귀하의 필요에 맞는지 확인할 수 있습니다.
zram은 범용 블록 장치이므로 범용 블록 장치 마이그레이션 방법을 적용할 수 있습니다. 이렇게 하면 .dll 없이도 zram 장치를 완전히 제거할 수 있습니다 swapoff
.
예를 들어 RAID 1을 생성하고 mdadm --replace
이를 사용하여 zram에서 물리 파티션으로 이동할 수 있습니다. ( mdadm --force
허용하다단일 디스크 RAID 1 만들기이므로 마이그레이션하지 않을 때는 미러링이 발생하지 않습니다. )
예를 들어 LVM을 여기에 배치하고 이를 사용하여 pvmove
zram에서 물리 볼륨으로 이동할 수 있습니다.
그러나 이것이 단순히 swapoff
.swapoff
(그저 아이디어를 던지는 중입니다. 저는 그 중 어떤 것도 테스트해 본 적이 없습니다.)