성능이 더 좋은 것은 무엇입니까? 디스크 내부에 가까운 파티션은 액세스 시간이 느려질 수 있으므로 드라이브가 OS와 스왑 파티션간에 전환 될 때까지 기다려야합니다.
반면, 스왑 파티션은 모든 파일 시스템을 우회하여 디스크에 직접 쓸 수 있으므로 파일보다 빠릅니다.
성능 트레이드 오프 란 무엇입니까?
고정 된 크기의 스왑 파일을 갖는 것이 얼마나 큰 차이가 있습니까?
스왑 파티션으로 변경하는 것이 더 길지만 스왑 파일을 사용하는 경우 스왑 파일을 사용하는 경우 스왑 파티션에있을 때 성능이 더 좋아 집니까?
답변
-
하드 디스크의 경우 데이터는 실린더 당 더 많은 섹터를 갖는 디스크의 외부 영역에 더 가깝게 저장되기 때문에 처리량과 탐색이 디스크의 시작 부분에 비해 더 빠릅니다. 따라서 디스크 시작 부분에 스왑을 만들면 성능이 향상 될 수 있습니다.
-
2.6 Linux 커널의 경우 스왑 파티션과 조각화되지 않은 스왑 파일 간에 성능 차이가 없습니다 . swapon에 의해 스왑 파티션 / 파일이 활성화 되면 2.6 커널은 스왑 파일이 저장된 디스크 블록을 찾아서 스왑 할 때 파일 시스템을 전혀 처리 할 필요가 없습니다.
따라서 스왑 파일이 조각화되지 않은 경우 동일한 위치에 스왑 파티션이있는 것과 같습니다. 또는 다른 방법으로 스왑 파티션 원시를 사용하거나 파일 시스템으로 포맷 한 다음 모든 공간을 채우는 스왑 파일을 만들면 동일한 성능을 얻을 수 있습니다. 디스크의 어느 쪽이든 스왑에 사용되는 연속 영역이 있기 때문입니다. 커널이 직접 사용합니다.
따라서 파일 시스템이 최신 상태 일 때 스왑 파일을 만들면 (그래서 조각화되지 않고 볼륨의 시작 부분에 있는지 확인) 성능은 볼륨 바로 전에 스왑 파티션을 갖는 것과 동일해야합니다. 또한 볼륨 중간에 스왑 파일을 만든 경우 양쪽에 파일이 있으면 스왑을 원치 않기 때문에 성능이 향상 될 수 있습니다.
Linux에서 스왑 파일이 조각화되지 않고 만들어지고 확장되지 않으면 최소한 ext3 / 4와 같은 일반 파일 시스템에서는 조각화 될 수 없습니다. 항상 동일한 디스크 블록을 사용하며 이는 연속적입니다.
전용 스왑 파티션의 유일한 장점은 확장해야 할 때 조각 모음이 보장된다는 것입니다. 스왑이 확장되지 않으면 새로운 파일 시스템에서 생성 된 파일에는 추가 파티션이 필요하지 않습니다.
답변
실제로 스파 스 파일을 사용하지 않는 한 큰 차이는 없습니다 .
dd를 사용하여 “정상”파일을 작성하면 단일 실행으로 파일이 할당되며 (가능한 경우) 스파 스 파일을 작성하면 10GB 파일이 있지만 실제로 모든 공간을 사용하지는 않습니다. mkswap이 어쨌든 공간을 할당하지는 않지만 확실하게 스왑 파일이 시간이 지남에 따라 디스크의 일부와 같이 연속 섹터를 할당하지 않고 필요에 따라 블록을 할당합니다. 시간에 따른 조각화 (물론 디스크 사용량에 따라 다름)
내부적으로 리눅스 커널은 스왑 파일의 기본 블록에 어느 정도 직접 액세스 할 것입니다-지금 당장 발생하는 링크를 찾을 수 없습니다. 누군가 더 공식적인 것을 찾지 않으면이 링크를 믿어야합니다. 지금 당장 내가 할 수있는 것은 :
이 모든 것은 2.6 라인의 Linux 커널에만 적용됩니다.
최적의 성능을 원한다면 (그리고 실제로 무엇입니까? … 스와핑이 느리고 기간이 짧습니다. 최상의 성능을 위해 스왑하지 않도록 RAM을 늘리십시오 ) 파티션을 사용하고 싶을 것입니다.
답변
이것은 흥미로운 질문이며 이것에 대해 많은 것을 읽었습니다. 일반적으로 스왑 파티션은 기본 파일 시스템으로 인해 파일보다 낫습니다. 그러나 항상 스왑 크기를 늘려야하는 경우 파일이 더 좋습니다. 커널 2.4까지는 스왑 파티션이 파일보다 빠르다고 생각되었지만 커널 2.6의 개선으로 성능은 거의 동일합니다.
내가 인터넷에서 찾은 것.
http://www.go2linux.org/swap-file-vs-swap-partition
과
http://www.sunmanagers.org/pipermail/summaries/2005-November/006913.html
답변
스왑이 일시 중지 / 슬립 상태 일 때 스왑에 데이터를 기록하는 구성으로 랩톱을 실행하지 않는 한 지금은 현재 단계에 있다고 생각합니다. 스왑은 실제로 “마지막 수단”으로 간주해야합니다. 가장 좋은 방법은 디스크에 페이징되지 않도록 충분한 RAM을 상자에 넣는 것입니다.
즉, 파일이 더 유연하지만 파티션이 성능면에서 더 좋은 방법 일 것입니다. 7200+ RPM 스핀들에 있는지 확인하십시오.
답변
우리의 생각은 스왑 파일이 조각화되고 조각화가 스왑 액세스를 느리게 할 수 있기 때문에 파티션이 더 나은 방법이라는 것입니다. 물론 정적 크기의 스왑 파일을 정의하는 것은 거의 같은 일이지만 주관적으로 더 깔끔한 것처럼 보입니다.
이 방법이 진정한 방법입니까? 연습이 10 년 전에 설립 되었기 때문에 아마도 아닐 것입니다. 그 사이에 드라이브 기술의 유일한 주요 변경 사항은 우리가 사용하는 RAID 컨트롤러의 복잡성입니다. 드라이브 크기가 증가하면 우리가 생성 한 스왑 파티션이 18GB 드라이브가 표준으로 출하 될 때보 다 드라이브 시작에 더 가까워 지므로 스왑 속도가 이전보다 훨씬 빨라졌습니다.
물론, ESX 기반 Windows 시스템에서 스왑 파일의 위치는 완전히, 전리품입니다. 스왑 파일과 물리적 디스크 플래터 사이에는 가상화 계층이 너무 많아 중요하지 않습니다. 그러나 우리는 표준이기 때문에 별도의 파티션에 보관합니다.
답변
스왑 파일을 사용하면 파일 간 메모리 변환에 약간의 추가 메모리가 사용될 수 있습니다. 우리는 1GB 스왑 당 1MB 미만의 메모리에 대해 이야기하고 있습니다. 파일 시스템 캐시는 스왑 된 데이터를 캐시하지 않고 조직 데이터 만 캐시하며, 이는 추가 메모리 요구 사항의 대부분이어야합니다.
게다가 나는 당신이 한 번의 추가 헤드 검색의 1000 배에서 한 번을 제외하고는 합리적인 성능을 잃을 것이라고 의심합니다.
재미있는 점은 zswap을 동적으로 확장되는 스왑 파일과 함께 사용하면 사용하지 않는 동안 적은 비용으로 스왑 작업의 속도를 크게 높일 수 있습니다.