스왑을 너무 많이 할 수 있습니까?


16

스왑 파티션이 너무 큰지 궁금합니다. 그렇다면 스왑 파티션은 언제 너무 큽니까? 스왑 파티션이 너무 큰 디스크 공간이 있어도 단점은 무엇입니까?

그렇지 않은 경우 권장 스왑 공간보다 많은 이점이 있습니까?


5
명백한 단점은 디스크 공간을 낭비한다는 것입니다. OTOH : "너무 많은"스왑 (예 : 4GB 시스템의 경우 30GB)이있는 경우 오작동하는 앱의 메모리가 훨씬 늦어지고 시스템 속도가 느려집니다. 순서대로 동작하는 앱 (메모리 누수 없음)은 단순히 사용하지 않습니다. (나는 이것이 단순화 된 견해임을 인정한다.)
PerlDuck

@PerlDuck에 동의합니다. "너무 많은 스왑"은 디스크 공간 만 사용합니다. swap 사용을 시작하면 시스템 속도가 느려집니다.이 경우 더 적은 앱을 실행하거나 더 가벼운 앱을 실행하거나 더 많은 RAM을 확보하십시오.
Panther

RAM이 충분하다면 너무 많은 디스크 공간을 사용하면 단점이 있습니까? PerlDuck이 말한 것처럼 오프 코스 "오작동"앱을 제외하고.
An0n

1
VTD 편집의 모든 질문은 근거를 중복에서 주제로 변경하는 것이 너무 광범위하다는 것을 정당화합니다. OP는 분명히 혼란 스럽지만 메타 또는 대화방은 토론하기에 더 좋은 곳입니다.
WinEunuuchs2Unix

3
경우 사람들은 @PerlDuck (팬더)이 약 당신이 스왑에 대한 더 많은 공간을 가지고 효과적으로 무제한 디스크 공간을했다하더라도 참고 무슨 말을 모르는 프로세스를 만들 것입니다 한다고 바로 종료 할을하고, 그렇지 않으면 어떤을 것입니다 신속하게 할 수 자동으로 종료되면 시스템을 오랫동안 크롤링으로 느리게합니다 . PerlDuck의 의견은 대답으로도 효과가 있다고 생각합니다. 우리 가이 질문을 다시 열면, 아마도 필요한 것보다 훨씬 더 많은 스왑을 갖는 단점에 대한 대답을 추가 할 수 있습니다. 단점이 있기 때문입니다.
Eliah Kagan

답변:


8

아니

언뜻 보면 스왑을 RAM을 늘리는 방법으로 볼 수 있기 때문에 스왑을 너무 많이 가질 수 없습니다. 실제로 RAM을 늘리지 않고 다음 과 같이 가장합니다. 8GB의 실제 RAM과 24GB의 스왑 공간이 구성된 경우 프로그램에서 최대 8 + 24 = 32GB의 메모리를 할당하고 사용할 수 있습니다 처음에는 좋은 소리입니다.

그러나

메모리 누수가 있거나 실제로 8GB의 메모리로 실행되지 않는 응용 프로그램 (예 : 비디오 편집)을 실행하면 이러한 응용 프로그램은 해당 스왑 공간을 사용하기 시작하고 스왑이 느립니다. 이러한 응용 프로그램에서 스왑 공간을 적극적으로 사용하면할수록 디스크를 오가는 메모리 이동만으로 시스템 사용량이 증가합니다. 이로 인해 전체 시스템의 응답 성이 크게 느려지고 사용자 경험이 나빠질 수 있습니다.

결국 스왑 공간이 소진되면 일부 응용 프로그램은 메모리 부족 상황에 직면하여 커널의 OOM_Killer에 의해 종료 됩니다.

에서 위키 :

최신 컴퓨터의 일반적인 OOM 사례는 운영 체제가 더 이상 가상 메모리를 만들 수 없을 때 발생합니다. 모든 잠재적 백업 장치가 채워져 있기 때문입니다.

결론

따라서 스왑 공간이 너무 많다는 단점 은 다음과 같습니다. 많을수록이 OOM 상황이 발생하고 지연되고 응답하지 않는 시스템으로 인해 더 오래 고통을 겪게됩니다.

물론 또 다른 명백한 단점은 디스크 공간을 낭비하지만 오늘날에는 그렇게 중요하지 않을 수 있습니다.


엣지 케이스를 고려할 경우 +1 개인적으로, 최대 절전 모드는 최대 절전 모드가 아닙니다. 최대 절전 모드는 곰을위한 것이며 내 시스템은 너무 바쁩니다. ;-) 건배.
Geek

@ElderGeek LOL. 실제로 Eliah Kagan 은 저의 간단한 의견을 답변으로 바 꾸었 습니다. 그는 스왑이 너무 많다는 전술 한 단점이 중요한 것이며 다른 사람들에게도 중요하다고 확신했다. 나는 당신과 함께하고 작은 스왑 구성 (8GB RAM이있는 2GB)을 가지고 있으며 거의 ​​손대지 않습니다.
PerlDuck

비슷한 설정으로 비슷한 결과를 얻었습니다 .2x 스왑 소문 이 마침내 죽기를 바랍니다.
Geek

5

큰 스왑 공간으로 인한 직접적인 단점은 없습니다. 커널에 의해 관리되는 방식으로 스왑 공간의 양이 충분한 양을 초과하면 성능에 영향을 미치지 않거나 무시할 수 있습니다.

"너무 많은"스왑 공간의 유일한 단점은 스토리지에 해당 공간을 사용할 수 없다는 것입니다.


1
@ An0n : 현재 내 컴퓨터에 연결된 ~ 6TB의 모든 스왑 공간을 할당하는 것이 상당히 큰 단점이라고 생각합니다. 모든 음악을 어디에 넣을 까…?
David Foerster

2
@ An0n : 컴퓨터를 부팅하고 유용한 데이터를 저장하지 않는 것이 좋은 점은 무엇입니까? 그것은 고가의 공간 히터처럼 들립니다.
David Foerster

1
@ An0n : 물론, 나는 많은 것을 가정했지만 요점을 놓치고 있습니다. 컴퓨터가 유용한 시스템 상태 (부팅 가능)에 도달하고 사용자가 자신의 개인 데이터에 사용할 수있는 스토리지에 액세스 할 수 있어야한다는 점에 동의 할 수 있습니다. 즉, 할 것을 요구 점유하지 스왑 공간으로.
David Foerster

2
물론 그것은 상대적입니다. "너무 많은"것처럼 상대적인 것입니다. 부팅 가능한 시스템이 있고 모든 여유 공간을 스왑 공간으로 할당하면 여유 공간이 부족하여 더 많은 여유 공간으로 끝나는 방식으로 시스템 구성을 변경할 때까지 더 이상 유용하지 않습니다. 그런 의미에서 스왑 공간은 그 시간 동안 "너무 많아"시스템이 그 시간 동안 쓸모 없게 만듭니다. 어쨌든, 나는 당신과 단어의 의미론을 주장하기 위해 여기에 있지 않습니다.
David Foerster

1
@ An0n 여기서 요점을 강조하기 위해 스왑 공간은 다른 용도로는 사용할 수없는 공간입니다. 디스크 저장 공간은 비용이 듭니다. 디스크 공간이 제한되어있는 경우 (최소 32GB) 가능한 한 많은 공간을 확보하여 음악과 같이 프로그램을 설치하고 파일로 파일을 쓸 수 있습니다. 사람들은 일반적으로 다른 이유로 스왑을 최소로 유지하려고 시도합니다. 스왑은 시스템을 효율적으로 계속 실행하는 데 필요한 것입니다. 그렇지 않으면 사용자에게는 가치가 없습니다. 일반적으로 우리는 시스템이 필요한 리소스 만 사용하기를 원하며 우리가 충분히 놀아 주길 바랍니다.
Zanna

4

디스크의 공간을 적게 차지하는 것 외에 다른 단점은 느끼지 않을 것입니다. 요즘에는 2 배의 개념이 대부분의 시스템에서 램의 양이 오래되었다고 생각합니다. RAM의 변동성으로 인해 데이터를 잃지 않고 PC를 최대 절전 모드로 전환 할 수 있도록 랩톱의 스왑 메모리에 동일한 크기의 램을 사용하는 것이 좋습니다.

스왑 파티션에 RAM 크기의 1 배 이상을 사용하는 것을 고려할 수있는 유일한 경우는 짧은 시간에 RAM 크기를 업그레이드 할 것이라고 생각하는 경우입니다. 또는 일종의 캐시에 저장할 시스템을 사용하려는 경우, 동시에 사용하지 않는 프로그램이 사용하는 메모리의 양.

내 요점이 충분히 명확하기를 바랍니다. 스왑 메모리가 너무 많아서 아무런 문제가 없을 것이라고 생각합니다.

좋은 하루 보내세요!


2
단일 사용자 데스크톱에서 RAM> 2-4Gb 인 경우 스왑을 전혀 사용하지 않습니다.
Panther

1
@Panther 왜 안되죠? 그리고 언제 어떻게 사용하는지에 관한 것이 아닙니다. 크기와 사용법에 관한 것입니다.
An0n


@ElderGeek 안녕, 난 그것을 고려하지 않았다. 나는 당신의 대답을 좋아합니다. 메모리 누수 문제에 대해 몰랐습니다!
zurg

2

최대 절전 모드에는 실제로 얼마나 많은 SWAP이 필요합니까?

최대 절전 모드를 사용할 때 SWAP 크기에 RAM x 2가 필요하다는 오해입니다. 스왑 크기는 사용 된 RAM이 아닌 설치된 RAM 의 크기 여야합니다 . 일반적으로 스왑 크기는 설치된 RAM의 2/5입니다. 사용하는 데 필요한 최소 RAM 양을 확인하려면 다음과 같이하십시오.

$ cat /sys/power/image_size
3153907712

이 8GB RAM 시스템에서 최대 절전 모드를 수행하려면 3GB가 필요합니다.

image_size더 작은 스왑 크기 에 대한 값을 조정하여 실패 위험이 있습니다. 더 큰 스왑 크기를 위해 조정하고 최대 절전 모드 속도를 높일 수 있습니다.

참조 : https://wiki.archlinux.org/index.php/Power_management/Suspend_and_hibernate


1995 년 16MB RAM, 2018 년 16GB RAM의 다른 규칙

16MB Ram을 사용하던 시절에는 720MB 하드 드라이브의 32MB 스왑 용 x 2가 적합했습니다. 이 1995 Washington Post 기사 의 약간의 RAM 및 HDD 기록 .

23 년 후 1995 년의 일부 기술 기사 (아무도 찾지 못했지만)는 새로운 사용자를 오도 할 수 있습니다. 그러나 SWAP = RAM x 2를 권장하는 2007 기사를 찾았습니다 .

1995 년에 32MB 760MB HDD에서 스왑은 HDD의 4 %였습니다. 실제로 스왑 파티션은 1995 년에 많이 사용되었을 것입니다. 오늘날 2018 년에 256GB SSD의 32GB SWAP에 대한 16GB RAM x 2는 SSD의 13 %를 차지하는 것과 같은 의미가 아닙니다. OOM-Killer를 테스트 할 때 강제로 채우지 않으면 8GB SWAP 파티션이 전혀 사용되지 않습니다. Chrome은 컴퓨터가 거의 정지 될 때까지 메모리를 차지합니다. 이것을 막기 위해 어떻게해야합니까? .


총 2 단 규칙 인 2x 규칙의 오해를 지적 해 +1.
Geek

@ElderGeek 감사합니다. 32MB SWAP에 대해 16MB RAM 시간 2가 의미가있을 수있는 이력 섹션을 추가했습니다.
WinEunuuchs2Unix

고려해야 할 또 다른 사항은 SSD 대 HDD입니다. SSD에 많은 양의 읽기 / 쓰기가 필요하므로 SSD의 해당 부분에서 더 빨리 장애가 발생합니까 (또는 신화입니까)? 내 시스템 32GB 램에서 2GB의 벨로시 랩터 드라이브를 SWAP에 사용했지만 최대 절전 모드를 사용할 의도가 없었지만 여전히 이것이 정상인지 확실하지 않으면 스왑이 없었을까요 ??? 그러나 최대 절전 모드 인 경우 4GB이면 충분하지만 20GB의 브라우저를 사용하고있을 가능성은 4GB면 충분하지 않습니까 ???
NZ Dev

@NZDev SSD에 스왑이 있지만 거의 사용되지 않습니다. 내가 마지막으로 확인했을 때 1 년 사용 후에도 여전히 100 % 수명이 남아 있습니다. 남은 수명의 백분율을 보려면 : askubuntu.com/questions/1038701/how-do-i-check-system-health/…
WinEunuuchs2Unix

1

스왑이란 무엇입니까?

실제 메모리 (RAM)가 가득 차면 Linux의 스왑 공간이 사용됩니다. 시스템에 더 많은 메모리 리소스가 필요하고 RAM이 가득 찬 경우 메모리의 비활성 페이지가 스왑 공간으로 이동합니다. 스왑 공간은 적은 양의 RAM이있는 시스템에 도움이되지만 더 많은 RAM을 대체하는 것으로 간주해서는 안됩니다. 스왑 공간은 하드 드라이브에 있으며 실제 메모리보다 액세스 시간이 느립니다.

스왑 공간은 전용 스왑 파티션 (권장), 스왑 파일 또는 스왑 파티션과 스왑 파일의 조합 일 수 있습니다.

스왑은 2 배의 물리적 RAM과 같아야합니다.


장점 :

메모리가 완전히 채워질 때 오버플로 공간 제공 거의 필요없는 항목을 고속 메모리에서 멀리 이동할 수 있습니다.

단점 :

SWAP 파티션의 크기가 동적으로 조정되지 않으므로 하드 드라이브의 공간을 차지합니다 하드 드라이브의 마모를 증가시킬 수 있습니다 반드시 성능을 향상시킬 필요는 없습니다 (아래 참조).


"추가 스토리지와 비교할 가치가없는"에서와 같이 SWAP 파티션이 "도움말하지 않음"인 경우 :

하드 드라이브에 5400RPM 만 있고 RAM이 적 으면 2GB를 초과 할 수 있습니다. 왜 ? 시스템이 지속적으로 SWAP 파티션에 액세스하기를 원했기 때문에 결국 매우 느려집니다. 이제 메모리에 공간이 있어도 SWAP 파티션의 모든 항목을 다시 이동해야합니다. 시스템이 느리게 진행되기 때문에 할당량은 SWAP 파티션에 남아 있습니다. 재부팅으로 만 해결할 수 있습니다. 시스템을 종료하기 전에 SWAP 파티션에서 모든 것을 제거해야하기 때문에 어느 정도 시간이 걸립니다.


** 결론 : **

컴퓨터 를 최대 절전 모드전환 하려면 SWAP 파티션이 있어야합니다. 이 파티션의 크기는 설치된 메모리의 크기와 이미 SWAP 파티션으로 이동 된 항목을위한 공간을 확보하기 위해 추가로 10-25 %가되어야합니다.

작은 성능 향상을 원한다면 (최소 7200rpm 하드 드라이브가있는 경우) 원하는 경우 SWAP 파티션을 추가 할 수 있지만 4GB 미만의 메모리가 설치되어 있지 않으면 필요하지 않습니다. 이것의 크기는 당신이 원하는대로 될 수 있습니다. 그러나 나는 2 배의 RAM을 정확한 것으로 권장합니다. 저장 공간이 부족한 경우.

5400rpm 하드 드라이브가있는 경우 병목 현상으로 인해 컴퓨터 성능이 저하되므로 SWAP 파티션을 만들면 안됩니다. 그러나 SWAP을 원한다면 위에서 설명한 동일한 크기 조정 지침을 사용하여 파티션을 만들 수 있지만 swappiness 값을 훨씬 더 낮은 값으로 변경하십시오.



내 의견 :

그러나 어쨌든 매일 사용하기 위해 Ubuntu를 기본 OS로 사용 하는 경우 RAM 크기의 2 배를 권장 합니다. 오래된 컴퓨터가 있다고해서 우분투를 설치하지 않기 때문입니다. 그러나 시스템을 기본 OS로 사용하려고하기 때문입니다.

대신 시스템 파티션을 계속 실행하도록 조정하는 대신 필요한 경우 추가 하드웨어를 구입하십시오. 게임을 구매하는 경우 설정을 조정하여 "재생 가능"하도록 설정하는 대신 시스템이 "최신"인지 확인하십시오.

공간이 너무 짧거나 나중에 모든 크기를 조정해야하는 대신 여분의 공간, SWAP, 속도, 전력을 확보하는 것이 좋습니다. 당신은 SWAP 또는 공간이 필요하기 때문에 RAM을 구입? 또는 하나의 메모리 슬롯이나 스틱이 고장 나서 램을 빨리 사야합니다.


다시 : 당신의 결론 그것은 말이되지 않습니다, 또는 그것을 넣는 또 다른 방법은 우리가 선을 그리는 곳입니다. 예를 들어 RAM 8GB + 16GB 스왑 : 8GB RAM과 9GB 스왑을 사용하는 경우 여전히 최대 절전 모드가 충분하지 않습니다. 무엇을 제공합니까? 다시 말해서, 어떤 크기로 만들더라도 여전히 더 많이 사용할 수 있습니다. 왜 스왑 파일에 2 개의 전용 공간이 가상 메모리로, 다른 하나는 합계 또는 다른 최대 절전 모드 공간으로 제공되지 않는 이유는 무엇입니까?
NZ Dev

0

실제로 오버 헤드가 있지만 매우 작습니다. 모든 디스크상의 "페이지"에는 참조 카운터가 있으며, 모든 스왑 영역과 관련된 두 개의 구조체가 있습니다. 이것은 커널 메모리에 있으므로 페이징 할 수 없습니다. 아키텍처에 따라 4GB마다 2MB에서 16MB 사이입니다. 나머지는 상당히 동적이므로 사용에 따라 다릅니다.

따라서 충분한 정보를 얻을 수 있지만 페이징 된 주소 공간 자체는 RAM에 약간의 오버 헤드를 발생 시키며, 스왑 된 페이지에 대한 추적이 진행되고 있다는 점을 명심하십시오. vfs가 구조적 정보를 디스크로 오프로드 할 수 있기 때문에 파일 시스템은 약간의 오버 헤드를 부과하더라도 스왑 영역보다 훨씬 효율적입니다 (vfs는 구조적 정보를 디스크로 오프로드 할 수 있음). vmm은 부기를 위해 스왑이 불가능한 메모리를 사용하고있을 것입니다.

다른 단점은 생각할 수 없습니다. 스왑이 너무 적은 OTOH는 페이지를 스왑 할 때 조각화를 일으킬 수 있으므로 더 많은 검색을 요구합니다. 많은 것을 가질 때, 특정 시점 이후에는 개선이 없을 것입니다.

스와핑은 일반적으로 마지막 리소스이므로 (최대 절전 모드 제외), 특히 4GB 이상의 RAM이 있고 때로는 RAM이 너무 큰 경우 (RAM은 64GB) RAM보다 더 많은 스왑 공간을 사용하면 이점을 얻지 못할 수 있습니다. .


죄송합니다, 당신의 마지막 진술 / 문장은 혼란 스럽습니다. 그렇지 않으면 위의 추가 기능이 있습니다.
NZ Dev

@NZDev가 더 나아 졌나요?
Ismael Luceno
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.