
내 Debian Stretch 시스템에는 RAM이 많습니다. 현재는 SSD에서 암호화된 스왑 파티션을 사용하고 있지만, 일반적인 조건에서는 메모리 부족으로 인해 사용할 수 있을 것이라고는 전혀 예상하지 못합니다.
그러나 여기 Snakedoc의 의견에 따르면 스왑을 완전히 끄는 것은 나쁜 생각입니다.
스왑을 완전히 비활성화하는 것은 결코 "안전"하지 않습니다. 96GB 이상의 RAM이 있는 시스템에서도 최소 512MB의 스왑을 실행하는 것이 좋은 안전 조치입니다. 뭔가가 이상하게 실행되고 예기치 않게 모든 램을 잡아먹는 경우 불필요한 프로세스를 종료할 수 있는 시스템 시간을 제공합니다. 스왑을 비활성화한 대안은 커널 패닉입니다.
그래서 'RAM 디스크'용으로 0.5G와 같은 일부 RAM을 예약하고 이를 스왑 파일로 사용하여 SSD에 쓰기를 저장할 수 있다고 생각했습니다.
어떻게 해야 하나요? 어떤 이유에서든 나쁜 생각인가요?
답변1
나는 그 이유가 안정성 때문이라고 말하고 싶지 않습니다. 그것은 일반적인 오해입니다. 시스템 RAM + 스왑이 가득 차면 실제로 스왑이 없을 때와 동일한 증상이 나타납니다.
- 설명할 수 없는,큰속도 저하(시스템이 RAM을 요청하는 프로세스를 잠시 잠그고 누군가가 필요한 RAM을 해제할 수도 있음)
- OOM(메모리 부족) 킬러에 의해 종료된 프로세스입니다.
유일한 차이점은 스왑이 없으면 이러한 증상이 발생한다는 것입니다.갑자기, 스왑의 경우 스왑이 채워진 후에만 발생합니다. 따라서 시스템이 완전히 응답하지 않게 되기까지 지연 시간이 훨씬 더 길어집니다.
이것이 스왑을 갖는 것이 왜 유용한 첫 번째 이유입니다.
두 번째는 덜 알려져 있지만 실제로는 훨씬 더 중요합니다.
일반적으로 스왑을 사용하면 RAM이 충분하지 않은 경우에도 시스템 속도가 느려지지 않고 속도가 빨라집니다.
그 이유는 다음과 같습니다. RAM이 있는 시스템이 실제로 프로세스에서 사용되지 않는 것은 무엇입니까? 하드 디스크를 캐시하여 시스템 속도를 높이는 데 사용됩니다.
스왑이 있는 경우 기본적으로 시스템은 거의 발생하지 않는 메모리 페이지를 교체하고 해당 공간을 디스크 캐시에 사용할 수 있습니다.얼마나 빨리 발생하는지는 VM 설정과 경험적 방법에 따라 다르지만 정말 훌륭합니다(내가 아는 한 Linux는 이런 의미에서 최고입니다).
하드 디스크가 SSD에 있는 경우 이 두 가지 인수에 실제로 영향을 미치지 않습니다(물론 훨씬 더 빠르고 탐색 시간이 없는 디스크를 사용하면 모든 것이 가속화되지만).
나는 주로 스왑 파티션에 대해 오래된 황금률을 사용합니다. 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에는 기본적으로 기존 스왑도 없습니다. 심지어윈도우그리고맥 OS요즘은 스왑을 사용하기 전에 압축된 RAM을 사용합니다.
CPU는 HDD보다 훨씬 빠르게 데이터 압축을 풀 수 있기 때문에 시스템 스왑이 시작되면 시스템 응답성을 확실히 느낄 수 있습니다. 차이점은 SSD에 내재된 것이 아니지만벤치마크 결과는 여기기본 lzo 알고리즘을 사용하는 zram은 여전히 더 빠른 것 같습니다. 당신은 쉽게 변경할 수 있습니다lz4 알고리즘이는lzo보다 거의 5배 빠릅니다.약간 낮은 압축비로
또한 있습니다zswap
다른 메커니즘을 사용하지만 여전히 압축된 데이터를 RAM에 저장합니다.
추가 읽기
답변3
@peterh의 답변을 고려하면 아마도 좋은 해결책은 오래된 HDD를 시스템에 넣고 스왑을 포함하여 스크래치 공간으로 사용하는 것입니다. 이렇게 하면 마지막 0.5G까지 모든 RAM을 시스템에 사용할 수 있습니다. 노트북 HDD는 3.5인치 드라이브보다 에너지 효율적일 가능성이 높습니다.