두 개의 스왑 파일이 필요합니다. 하나는 SSD 드라이브(SSD 스왑 파일)에 있고 다른 하나는 HDD 드라이브(HDD 스왑 파일)에 있습니다. 내 SSD의 읽기/쓰기 속도가 HDD의 약 4배이기 때문에 두 개의 스왑 파일로 최대 속도를 얻으려면 HDD-SWAP보다 SSD-SWAP에 4배의 데이터 양을 할당하는 시스템이 필요합니다. 예를 들어 시스템에 5GB의 스왑 공간이 필요한 경우 ssd-swap에서 4GB, hdd-swap에서 1GB를 사용하고 싶습니다. 그러나 내 실험에서 알 수 있듯이 기록된 날짜의 양은 두 스왑 파일 모두에서 동일합니다(예제에 언급된 각 스왑 파일당 2.5GB).
한 가지 해결책은 SSD에 4개의 스왑 파일을 생성하고 HDD 드라이브에 1개의 스왑 파일을 생성하는 것입니다. 그러면 시스템은 위의 예에서 각 스왑 파일에 1GB의 데이터를 기록하여 SSD에 4GB가 기록되고 SSD에 1GB가 기록됩니다. HDD에 기록됨). 그러나 나는 덜 채워진 파일 시스템을 선호하기 때문에 두 개의 스왑 파일을 사용하는 것을 선호합니다.
이러한 결과를 얻기 위해 Linux 스왑 파일 구성에 어떤 방법이 있습니까?
답변1
첫째, 일부 사람들은 SSD로 전환하는 것이 나쁜 생각이라고 주장할 것이라는 점을 지적할 가치가 있습니다. 예전에는 SSD의 쓰기가 심각하게 제한되었을 때 그랬지만 지금은 그렇지 않습니다. (대부분의 SSD는 쓰기 내구성이 용량의 1,000배 이상으로 평가되며 스왑 파일은 일반적으로 A의 작은 부분만 차지합니다.) , 정기적으로 교체하지 않고 최신 시스템에서 교체하면 안 되는 경우에는 더욱 악화됩니다. 구체적인 예를 들자면, 오늘날의 일반적인 250GB SSD는 쓰기 용량이 100TB를 훨씬 넘는 것으로 평가됩니다. 올바르게 구성된 시스템과 일반적인 데스크탑 또는 서버 사용량의 기본 스왑 동작을 사용하면 하루 평균 스왑 사용량은 몇 MB가 됩니다. 이는 장치 등급의 1/100000 미만을 의미합니다. 또한 대부분의 문제는 discard
스왑 영역 항목에 옵션을 지정하거나 해당 옵션을 명령에 추가하여 완화할 수 있습니다./etc/fstab
-d
swapon
둘째, 이와 같은 스태거 스위칭 장치를 사용하여 인지된 성능을 향상시키는 것은 기술적으로 불가능합니다(이 답변에 대한 귀하의 답변에 따르면 귀하가 원하는 것으로 보입니다). 비유로 설명하는 것이 가장 쉽습니다. 두 사람이 당신을 위해 물건을 보관하고 있다고 상상해 보세요. 한 사람은 많은 물건을 매우 빠르게 저장하고 매우 빠르게 돌려받을 수 있는 반면, 다른 사람은 몇 가지 물건만 저장할 수 있습니다. 더 느리게. 한 번에 많은 항목을 저장해야 하고 한 번에 모두 검색해야 하는 경우 가장 좋은 방법은 각 항목에 비례적인 양을 할당하여 얻은 항목을 저장하는 데 동일한 시간이 걸리도록 하는 것입니다. 그러나 개별 항목을 저장하고 검색해야 하는 경우 때로는 느린 사람에게 시간을 낭비하게 되므로 이 전략이 무너집니다. 이 경우 가장 좋은 접근 방식은 자주 저장하고 검색해야 하는 항목을 빠른 항목에 제공하고, 자주 필요하지 않은 항목을 느린 항목에 제공하는 것입니다.
디스크로 교체하는 것은 두 번째 경우와 같습니다. 두 가지 제약 조건을 추가하고 정기적으로 필요한 것이 무엇인지, 필요하지 않은 것이 무엇인지 알 수 없습니다(실제 시스템 사용에서 몇 가지 아이디어를 얻을 수 있지만 이 방법은 매우 어렵습니다. 결과적으로 아무것도 작동하지 않습니다.) 얼마나 많은 양을 저장해야 하는지 알 수 없습니다. 이 경우 공간이 있는 한 빠른 사람에게 모든 것을 저장하고 느린 사람에게 초과분을 저장하는 것이 가장 효율적입니다.
따라서 거의 모든 경우에 하드 드라이브보다는 SSD로 교체하는 것이 더 좋습니다. 다행히도 실제로 Linux를 사용하면 이 작업을 수행하는 것이 매우 쉽습니다. 스왑 공간(파일 및 파티션)은 선호하는 사용 순서를 결정하는 매우 임의적인 우선순위를 가질 수 있습니다. 이는 options 및 -p
의 옵션을 사용하여 설정 됩니다 . 기본적으로 모든 것의 우선순위는 -1입니다. 즉, 활성화된 순서대로 사용된다는 의미입니다. 음수보다 높은 우선순위를 설정하면 항목이 사용되는 순서를 제어할 수 있습니다. 높은 우선순위의 스왑 영역(최대 32767)은 낮은 우선순위의 스왑 영역 이전에 사용되고, 동일한 우선순위의 영역은 낮은 우선순위의 영역 내에서 사용됩니다. 라운드 로빈(RAID0 설정과 비슷하지만 블록 단위가 더 크고 병렬화가 없음)swapon
prio=
/etc/fstab
더 느린 장치에 일부 데이터를 저장하고 싶다고 가정하면, 더 빠른 장치에 공간이 있더라도 모든 영역을 -1 이상의 동일한 우선순위로 설정하여 그렇게 할 수 있지만 안타깝게도 예, 여러 개가 필요합니다. (이론적으로는 루핑 장치나 장치 매퍼 대상을 사용하여 정말 창의력을 발휘할 수 있지만 실제로는 그럴 가치가 있는 것보다 더 많은 문제가 있습니다).
주제에서 조금 벗어났지만 스왑 파일이 루트 사용자 및 그룹의 소유이고 루트만 읽고 쓸 수 있는지 확인하십시오. 그렇지 않으면 임의의 사용자가 시스템을 쉽게 손상시킬 수 있습니다(또는 접근해서는 안되는 데이터에 액세스할 수 있습니다).