여러 스왑 파일의 목적은 무엇입니까

여러 스왑 파일의 목적은 무엇입니까

전부는 아니지만 대부분의 Linux 배포판을 설치하는 동안 하드 드라이브는 기본적으로 스왑 파티션을 포함하도록 파티션됩니다.

이 동작은 다음에 의해 변경될 수 있습니다.swapon -p priority

매뉴얼 페이지에 따르면 우선 순위는 다음과 같습니다.

PRIORITY
Each swap area has a priority, either high or low. The default priority is 
low. Within the low-priority areas, newer areas are even lower priority 
than older areas.
All priorities set with swapflags are high-priority, higher than default. 
They may have any non-negative value chosen by the caller. Higher numbers 
mean higher priority.

Swap pages are allocated from areas in priority order, highest priority 
first. For areas with different priorities, a higher-priority area is 
exhausted before using a lower-priority area. If two or more areas have the 
same priority, and it is the highest priority available, pages are 
allocated on a round-robin basis between them.

As of Linux 1.3.6, the kernel usually follows these rules, but there are 
exceptions

여러 개의 스왑 파일이 필요한 이유는 무엇입니까?
시스템 관리자가 여러 교환을 구성하는 것이 일반적인 관행입니까?

답변1

스핀들이 하나만 있는 경우에도 스왑 영역이 여러 개 있어야 하는 데는 여러 가지 이유가 있습니다(파일일 필요는 없음).

20-20 돌이켜보면:단일 스왑 영역이 있는 머신을 배포했지만 결국 그것만으로는 충분하지 않다는 것을 깨닫게 됩니다. 머신을 마음대로 재배포할 수는 없지만할 수 있는파티션 레이아웃을 다시 실행하는 것이 옵션이 될 때까지 다른 스왑 영역(아마도 파일)을 만듭니다.

스왑 영역의 크기를 조정하거나 이동하려면 다음을 수행하십시오.스왑 영역의 크기를 조정할 수 없습니다(예:에반 티트먼). RAM이 충분하지 않으면 swapoff새 스왑 영역을 생성하고 다시 생성 할 수 없습니다 . 스왑 영역을 해제하기 전에 스왑 아웃된 모든 페이지를 RAM으로 이동해야 합니다. 따라서 임시 스왑 영역(원래 스왑 영역)을 만들고 모든 페이지가 이전 스왑 영역에서 임시 스왑 영역으로 이동될 때까지 기다린 다음 원래 스왑 파티션의 크기를 조정한 다음 크기가 지정된 스왑 파티션과 임시 스왑 파티션의 크기를 조정합니다. 교체된 페이지는 임시 교체 영역에서 크기가 조정된 페이지로 복사된 다음 완료됩니다. 스왑 영역을 이동하는 경우 준비 영역도 필요하지 않습니다. 새로운 것, 오래된 것, 모든 것이 움직였습니다.swaponswapoffswapoffmkswapswaponswapoffmkswapswaponswapoff

엄청나게 빠른 교환:최신 디스크 채택영역 비트 레코드. 디스크의 첫 번째 영역이 가장 빠릅니다. 디스크를 측정하고 드라이브의 첫 번째 가장 빠른 영역을 덮는 파티션을 생성할 수 있습니다. 예상되는 스왑 크기보다 작을 수 있습니다. 따라서 동일한 기술을 사용하여 여러 디스크에 여러 파티션을 추가할 수 있습니다.

미친 빠른 교환, 속편:또는 디스크에서 가장 빠른 영역이 어디에 있는지 알고 나면 첫 번째 영역에 우선 순위가 높은 스왑 영역을 만들고 두 번째 영역에 우선 순위가 낮은 스왑 영역을 만드는 식으로 계속할 수 있습니다. 이렇게 하면 스위칭 시스템이 자동으로 모든 빠른 디스크 간의 로드 밸런싱 영역을 인식하여 더 빠른 영역을 선호하고 필요한 경우 느린 영역을 오버플로 영역으로 사용합니다.

대칭형 로드 밸런싱:서버와 같은 많은 스핀들로 구성된 잘 구축된 시스템에서 나는 각 디스크의 시작 부분을 차지하는 여러 개의 스왑 파티션을 갖고 싶습니다(이를 활용하기 위해).영역 비트 레코드). 모두 동일한 우선순위를 가지므로 커널은 스위치의 로드 밸런싱을 수행합니다. 하나의 스핀들은 100MB/s를 제공할 수 있지만 모든 스핀들을 교환하면 그 속도의 몇 배를 얻을 수 있습니다. (순진하게 말했다)

병목 현상 인식 로드 밸런싱:그러나 실제로는 다른 병목 현상이 있습니다. 예를 들어, 16개 디스크로 구성된 서버에는 각각 4포트 승수 기능이 있는 6Gbps SATA 포트 4개가 있고 4개의 디스크가 대역폭을 공유할 수 있습니다. 이를 이해하면 포트 1-4의 디스크 1이 가장 높은 우선 순위를 갖고 포트 1-4의 두 번째 디스크가 두 번째로 높은 우선 순위를 갖도록 스왑 공간을 구성할 수 있습니다. 이렇게 하면 스왑 로드의 균형이 유지되지만 스왑 공간을 압도하지는 않습니다. 포트 승수.

다양한 기능을 갖춘 장치 간 교체:(Luke가 언급했듯이) 귀하의 시스템이 새로운 서버가 아니고 수년에 걸쳐 유기적으로 성장해 왔다면 다른 시스템보다 훨씬 빠른 블록 장치를 가질 수 있습니다. 먼저 가장 빠른 장치로 전환한 후 다음으로 빠른 장치로 전환해야 합니다.

사이즈 노트:(의지하다데이비드 코헨) 모든 스왑을 하나의 드라이브에 넣으면 드라이브에 여유 공간이 남을 수도 있습니다(2001년 제품인 것처럼 들리지만 오래되었거나 내장된 장치가 많아 문제가 될 수 있습니다). 이를 모든 드라이브에 분할하면 위에서 언급한 다른 모든 이점 외에도 드라이브당 디스크 공간 사용량이 향상됩니다. 축당 몇 기가바이트를 잃는 것과 디스크에서 300기가바이트를 잃는 것은 또 다른 문제입니다.

긴급 상황:박사 학위 논문을 제출하는 데 96시간이 주어졌습니다. 그리고 최종 실험(노벨상을 받을 수 있고 이름 뒤에 대소문자가 혼합된 펑키한 문자를 사용할 수 있는 실험)이 진행 중입니다. 놀라운 속도로 기억력이 고갈됩니다. 스왑 공간이 부족합니다. 생성한 스왑 파일은 기본 스왑 장치보다 우선순위가 낮습니다. 커널은 이를 오버플로 스왑 공간으로 사용합니다. 설치도 할 수 있어요교환이 작업은 자동으로 수행되므로 대규모 emacsLaTeX 실행을 위한 충분한 스왑 공간도 확보할 수 있습니다.

다양한 미디어를 통한 교환:Linux는 문자 장치로 교체할 수 없지만 SSD(참고: SSD로 교체하고 싶지 않을 수도 있음), 수십 가지 유형의 회전식 하드 드라이브, 플로피 디스크(예), 물리적 및 가상 미디어 등 다양한 미디어가 있습니다. 플로피 디스크를 교체할 수 있습니다. Unix를 사용하면 언제든지 자신의 발을 쏠 수 있습니다.DRBD볼륨, iSCSI, LVM 볼륨, LUKS 암호화 파티션 등(이러한 초현실적이고 놀라운 계층 조합 포함 - 병렬 포트 ZIP 드라이브, iSCSI, IEEE802.3ad 통합 이더넷을 통해 LVM에서 LUKS를 교환합니까? 문제 없습니다. 더러운 변태입니다. ). 이는 틈새 요구 사항을 지원하도록 설계된 틈새 시나리오입니다.

답변2

(적어도 내가 아는 한) 스왑 파일이나 스왑 파티션을 사용하는 동안에는 스왑 파일을 확장할 수 없습니다. 사용 가능한 스왑 영역이 거의 채워지면 추가 스왑 파일을 생성해야 할 수도 있습니다.

또한 시스템에 4GB의 스왑 공간이 필요하고 2개의 2GB 저장 장치가 있는 경우 최소 2개의 스왑 영역을 사용해야 합니다.

답변3

다중 속도 디스크 드라이브. 더 빠른 것을 먼저 사용하도록 설정할 수 있으며, 느린 것이 실패하면 느린 것이 먼저 사용됩니다.

답변4

1995년에 나는 다양한 유형의 최적화 인식을 실험했습니다. 다양한 유형의 CPU에서 알려진 비트와 알려지지 않은 비트를 동적으로 변경하는 유틸리티를 사용해 보았고 메모리 블록 크기, 디스크 블록 크기 및 파티션 크기도 사용해 보았습니다.

제가 PC에서 본 최고의 성능 향상은 각각 스왑 파일 또는 스왑 파티션이 있는 15개의 512MB 파티션에서였습니다. 1024MB 파티션은 512MB 파티션보다 훨씬 느리며, 256MB 파티션이 더 빠를 것 같습니다. 이는 Windows에서 작동하며, Linux에서는 30개가 넘는 스왑 파티션(스왑 스핀들)을 활용하려면 약간의 학습이 필요합니다. 이는 SSD에 가장 적합합니다. 디스크는 하나만 필요하지만 두 개가 더 좋습니다. 하나는 운영 체제용이고 다른 하나는 스왑 파티션 및 임시 파일용입니다.

문제는 일단 모든 것이 다양한 유형의 메모리 RAM, 스왑 파일 등에 로드되면 컴퓨터를 재부팅하여 취약한 프로세스를 다시 시작하는 것이 부담이라는 것입니다. 제가 말하는 구성을 사용하면 15일 동안 쉽게 컴퓨터를 떠날 수 있습니다. 스핀들을 교체하기 전에. 매일 컴퓨터에 메모리가 부족해지면 재부팅합니다. 이제 처음으로 컴퓨터를 다시 시작하면 속도가 느려지고 모든 것을 메모리에 로드하고 다시 스왑 파일에 넣어야 한다고 생각합니다. 이 구성에 대한 스왑 파일에 포함되면 평가가 더 빨라집니다.

관련 정보