추가 읽기

추가 읽기

내 Debian Stretch 시스템에는 RAM이 많습니다. 현재는 SSD에서 암호화된 스왑 파티션을 사용하고 있지만 일반적인 상황에서는 메모리 부족으로 인해 사용할 수 없을 것 같습니다.

그러나 Snakedoc의 의견에 따르면 스왑을 완전히 끄는 것은 나쁜 생각입니다.

스왑을 완전히 비활성화하는 것은 결코 "안전"하지 않습니다. RAM이 96GB 이상인 시스템의 경우에도 최소 512MB의 스왑을 실행하는 것이 좋은 안전 조치입니다. 무언가가 비정상적으로 작동하고 실수로 메모리를 모두 소모하는 경우 시스템에 불필요한 프로세스를 종료할 시간이 주어집니다. 스왑을 비활성화하는 대신 커널 패닉이 발생합니다.

스왑을 영구적으로 안전하게 종료하고 공간을 확보하는 방법은 무엇입니까? (데비안 제시에서)

그래서 0.5G와 같은 일부 메모리를 "RAM 디스크"로 예약하고 이를 스왑 파일로 사용하여 SSD에 쓰기를 저장할 수 있다고 생각했습니다.

어떻게 해야 하나요? 어떤 이유로 이것이 나쁜 생각입니까?

답변1

나는 그 이유가 안정성 때문이라고 말하고 싶지 않습니다. 그것은 일반적인 오해입니다. 시스템 메모리 + 스왑 공간이 가득 차면 스왑 공간이 없는 것과 거의 동일한 증상이 나타납니다.

  1. 설명 할수 없다,속도가 느려집니다(시스템이 메모리가 필요한 프로세스를 잠시 잠그고 누군가가 필요한 메모리를 해제할 수도 있음).
  2. OOM(Out of Memory) 킬러에 의해 프로세스가 종료되었습니다.

유일한 차이점은 교체하지 않으면 이러한 증상이 발생한다는 것입니다.갑자기, 교환의 경우 교환이 완료된 후에만 발생합니다. 따라서 시스템이 완전히 응답하지 않게 되기까지 지연 시간이 더 길어집니다.

이것이 스왑이 유용한 첫 번째 이유입니다.


두 번째는 덜 알려져 있지만 실제로는 더 중요합니다.

일반적으로 스왑을 사용하면 컴퓨터 속도가 느려지지 않지만 메모리가 훨씬 적더라도 속도가 빨라집니다.

이유는 다음과 같습니다. 시스템의 RAM이 실제로 프로세스에서 사용되지 않습니까? 하드 드라이브를 캐시하여 시스템 속도를 높이는 데 사용됩니다.

스왑이 있는 경우 실제로 시스템은 아주 적은 수의 메모리 페이지를 스왑 아웃하고 해당 공간을 디스크 캐시에 사용할 수 있습니다.얼마나 빨리 발생하는지는 VM 설정과 경험적 방법에 따라 다르지만 정말 훌륭합니다(내가 아는 한 Linux는 이러한 의미에서 최고입니다).


하드 드라이브가 SSD에 있는 경우 실제로 두 매개변수에 영향을 미치지 않습니다(단, 탐색 시간이 0인 더 빠른 디스크를 사용하면 확실히 모든 속도가 빨라지지만).

나는 주로 오래된 스왑 파티션 황금률을 사용합니다. 즉, RAM으로 스왑 공간을 2배 더 많이 사용합니다. 이는 스왑 조각화를 방지하기 위한 것입니다(스왑 파일의 블록은 파일 시스템의 파일처럼 조각화될 수 있음). 귀하의 경우 RAM은 많지만 탐색 시간이 0인 값비싼 하드 드라이브가 있는 경우 스왑 조각화는 문제가 되지 않으므로 적은 것만으로도 충분할 수 있습니다. SSD가 몇 개 있는지 모르겠습니다. RAM 사이트의 1배 또는 0.5배이면 충분할 것입니다.


내 생각에는 이 "최소 512M 스왑 공간" 제안은 좋지 않습니다. 사용하는 스왑 공간의 양은 시스템 매개변수(디스크 비용, RAM 양, 디스크 수, 하드 디스크 검색 시간 등)에 따라 달라져야 합니다. 이 512M은 "황금률"이 아니라 "마법의 숫자"이며 일반적으로 사용하면 의미가 없습니다.

답변2

SSD 시스템에서 교체용으로 HDD를 사용하는 것은 좋은 생각이 아닙니다. 속도가 느릴 뿐만 아니라, 액세스하는 데 시간이 더 오래 걸리고, 더 많은 전력을 사용하며, 최신 SSD보다 안정성이 떨어질 수 있습니다. 오늘날의 SSD는 5년 보증을 제공하며 매일 수백 GB를 쓰더라도 쉽게 8~10년 동안 지속될 수 있습니다.

하지만 그게 최고야사용zram및 SSD의 작은 백업 스왑 파티션일 수도 있음. 다양한 Linux 배포판과 ChromeOS, Android에서는 수년 동안 기본적으로 zram을 활성화해 왔습니다. Android에는 기본 레거시 스왑 기능조차 없습니다. 심지어윈도우그리고애플 시스템이제 스왑을 하기 전에 압축된 RAM을 사용합니다.

CPU는 HDD보다 훨씬 빠르게 데이터 압축을 풀기 때문에 시스템이 스왑을 시작하면 시스템의 반응성이 얼마나 빠른지 확실히 느낄 수 있습니다. 차이점은 SSD에 고유한 것이 아니라 다음을 기반으로 합니다.벤치마크 결과는 여기에 있습니다.기본 lzo 알고리즘을 사용하면 zram이 여전히 더 빠른 것 같습니다. 당신은 쉽게 변경할 수 있습니다lz4 알고리즘이것은lzo보다 거의 5배 빠릅니다.약간 낮은 압축률

게다가zswap다른 메커니즘을 사용하지만 여전히 압축된 데이터를 RAM에 저장합니다.

추가 읽기

답변3

@peterh의 답변에 따르면 오래된 HDD를 컴퓨터에 연결하고 스왑 공간을 포함한 스크래치 공간으로 사용하는 것이 좋은 해결책일 수 있습니다. 이렇게 하면 마지막 0.5G까지 모든 메모리를 시스템에서 사용할 수 있습니다. 노트북 HDD는 3.5인치 드라이브보다 에너지 효율적일 수 있습니다.

관련 정보