스왑 : 전용 스왑 파티션을 만들거나 스왑 파일을 만드는 것이 더 낫습니까?


9

전용 스왑 파티션을 만들거나 스왑 파일을 만들 때의 이유는 무엇입니까 (예 : / tmp / swap)?

필자의 경우 메모리는 약간 (1GB), SSD의 디스크 공간은 꽤 큽니다 (256GB). 따라서 스와핑은 꽤 정기적으로 발생합니다.

모든 의견에 감사드립니다!

카 스텐


4
교체에 SSD를 사용하면 SSD의 수명이 단축 될 수 있습니다. askubuntu.com/questions/652337/…
— steve

답변:


3

스왑 파티션과 달리 스왑 파일을 사용할 때 볼 수있는 가장 큰 단점은 스왑 파티션을 조각화 할 수는 없지만 생성시 파일 시스템의 스왑 파일이 분할 될 수 있다는 것입니다 순차적 액세스가 느려집니다.


2
SSD는 임의 읽기 페널티가 없으므로 조각난 파일로 인한 피해는 거의 없습니다.
— David King

솔직히 말해서, 그 이후로 스왑 파티션을 선호 해 왔지만 독일에서 여기서 말하는 것처럼 "아무런 비용이 없습니다";-)
— CarstenP

1
구성된 RAM 및 스왑 파티션을 소진 할 수있는 큰 프로젝트가 올 것으로 예상되면 종종 스왑 파일을 임시 사용을 위해 만들지 만 파티션을 유지하고 싶습니다. 이렇게하면 홈 파티션을 재사용 할 수있는 것처럼 Linux 배포판간에 스왑 파티션을 재사용 할 수 있습니다.
— DopeGhoti

1
“파일 시스템에서 파일에 쓸 때 통과 할 더 많은 커널 코드 계층”에 대한 부분은 사실이 아닙니다.“ 커널은 스왑 시간에 스왑 오프셋-> 디스크 블록의 맵을 생성 한 다음 해당 맵을 사용하여 스왑을 수행합니다. 모든 캐싱, 메타 데이터 및 파일 시스템 코드를 무시하고 기본 디스크 큐에 대한 I / O. – Linux-Kernel Archive : Re : 스왑 파티션 및 스왑 파일
— Anthony Geoghegan

1

파일에 대한 I / O 작업은 더 많은 커널 코드 계층 (예 : VFS)을 거쳐야하므로 파일로 스와핑하는 데 더 많은 오버 헤드가 발생합니다. 반면에 더 유연한 설정이며 귀하의 경우에 충분할 수 있습니다.


아마도 나는 스왑 I / O의 화려 함, 오리 및 상황에 익숙해 져야 할 것입니다 ... 리눅스에 대한 좋은 점은 느리고 간단합니까? ^^ : D PS : 글쎄, "느린"것을 잊어 버리
— 세요

“실제로 커널은 스왑 시간에 스왑 오프셋-> 디스크 블록의 맵을 생성 한 다음이 맵을 사용하여 모든 캐싱, 메타 데이터 및 파일 시스템 코드를 무시하고 기본 디스크 큐에 대해 스왑 I / O를 직접 수행합니다. – Linux-Kernel Archive : Re : 스왑 파티션 및 스왑 파일
— Anthony Geoghegan

1

스왑 파일에 대한 액세스는 파일 시스템을 통과하지 않습니다 ... 커널은 어느 디스크 블록이 스왑되는지 알고 있으며 직접 액세스합니다 1 . 그러나 연속되지 않은 파일은 디스크의 다른 영역에 조각이있을 수 있으며 특정 사용에 따라 추가 탐색을 수행하면 전용 파티션보다 속도가 느려질 수 있습니다.

OTOH, 스왑 파티션이없는 클라우드 서버를 처리 할 때 스왑 파티션을 만들 가능성이없는 경우 스왑 파일로 응용 프로그램을 저장할 수 있습니다.


[1] “ 커널은 스왑 시간에 스왑 오프셋-> 디스크 블록의 맵을 생성 한 다음이 맵을 사용하여 모든 캐싱, 메타 데이터 및 파일 시스템 코드를 무시하고 기본 디스크 큐에 대해 스왑 I / O를 직접 수행합니다. – Linux-Kernel Archive : Re : 스왑 파티션과 스왑 파일


fs가 파일 블록을 이동 / 크기 조정하면 어떻게 되나요? 스왑 파일의 경우 적어도 fs 드라이버 상호 작용이 있어야한다고 생각합니다.
— peterh-복 직원 모니카

공감. 이것은 커널이 스왑에 사용되는 디스크 블록에 직접 액세스한다는 것을 나타내는 유일한 대답이므로 허용되는 답변이어야합니다.
— Anthony Geoghegan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.