스왑 크기를 늘리는 방법은 무엇입니까?


17

최근에 서버에 더 많은 램을 넣었으므로 이제 총 24GB의 RAM이 있습니다. 원래 OS를 2GB 스왑 크기로 설정했습니다.

/dev/sdc1               1         281     2257101   82  Linux swap / Solaris
/dev/sdc2   *         282       60801   486126900   83  Linux

2GB는 현재 스왑에 할당되어 있지만 주변에서 읽는 것은 그리 많지 않은 것 같습니다. 24GB 시스템의 경우 최소 10GB의 스왑을 할당하려고합니다.

내 질문은 : OS가 실행되는 동안 할 수 있습니까? 다시 설치해야합니까? OpenSuse 11.3을 사용하고 있습니다

답변:


23

설치시 별도의 스왑 파티션을 작성하기로 결정했습니다. 온라인으로 크기를 조정할 수는 없습니다. 심지어 오프라인으로 크기를 조정하더라도 상당한 시간이 걸리고 / dev / sdc2의 후속 파일 시스템이 손상 될 위험이 있습니다.

이 문제를 해결하는 가장 쉬운 방법은 현재 사용하지 않거나 다른 파티션에 오프라인으로 전환 할 수있는 다른 디스크에 새 스왑 파티션을 만들거나 기존 파일 시스템 내에서 스왑 파일을 사용하는 것입니다. 파일 시스템 오버 헤드로 인한 약간의 성능 저하 .

스왑 파티션 / 파일을 추가하는 일반적인 절차 :

  • 82h 유형의 새 파티션 또는 다음을 사용하여 새 8GB 파일을 만듭니다. dd if=/dev/zero of=/swapfile bs=1M count=8192
  • 사용하여 초기화 mkswap /swapfile또는mkswap /dev/sdXX
  • 사용 swapon /swapfile하거나swapon /dev/sdXX 새 스왑 공간을 사용하려면 각각 온 - 더 - 플라이
  • 재부팅 할 때 새 스왑 공간이 활성화되도록 / etc / fstab에 항목을 추가하십시오.

현재 스왑 파티션은 계속 사용 중이므로 복잡성을 줄이기 위해 제거 할 수 있습니다. swapoff /dev/sdc1순간 사용 을 비활성화하고 참조를 제거하는 데 사용하십시오./etc/fstab


@ synticon-dj 감사합니다. 스왑이 중요한 디스크의 데이터이며 사용할 수있는 다른 디스크가 있습니다. 다른 디스크를 스왑으로 설정하면 성능에 영향을 줄 것이라고 생각하십니까? / dev / sdc1을 교체해야합니까?
x-man

/ dev / sdc2가 많이 사용되는 경우이 I / O는 스왑 I / O와 경쟁합니다. 다른 디스크의 파티션을 스왑으로 추가하면이 디스크에 스왑 I / O로드 만 추가하면됩니다. 스왑 성능에 도움이되는 것은 영향을받는 디스크의 다른 I / O에 필연적으로 해 롭습니다. 즉, 많은 pageout / pagein 요청만큼 시스템 성능에 나쁜 것은 없습니다. 이 메시지가 표시되면 메모리를 추가하거나 시스템의 메모리 사용량을 줄이십시오.
the-wabbit

서로 다른 스핀들에 두 개의 스왑 장치가 있으면 스왑 성능에 도움이됩니다 (하나의 디스크에서 읽고 쓸 수있는 디스크 대신 동시에 주소를 지정할 수있는 두 개의 디스크가 있기 때문에). 이 때문에 어쨌든 스와핑 높은 I / O 활동을 볼 수 있어야하지만, 당신은 관리를 쉽게하기 위해 단지 하나의 장치 / 파티션 / 파일을 사용하여 선호 할 수
더 - wabbit

1
BtrFS를 사용중인 경우 스왑 파일이 작동하지 않습니다. 두 가지 해결 방법은 (1) 루프백 장치를 만들거나 (2) btrfs-swapon을 사용하는 것 입니다.
Diagon

@ the-wabbit /etc/fstab재부팅 할 때 새로운 스왑이 활성화되도록 실제로 어떻게 항목을 작성합니까?
SIGSTACKFAULT

3

이 경우 스왑이 필요하십니까? 나는 당신이 당신의 시스템 시스템에서 무엇을 실행하고 있는지 알지 못하지만, 완전히 스왑을 피하기 위해 서버에 충분한 메모리를 확보하려고 노력합니다 ... 더 많은 메모리 ...)


나는 당신 편입니다. 스왑은 주로 (휘발성) 메모리 소진의 경우 충돌을 막기 위해 사용되며 플래터에 부딪 치기 시작하면 서버가 히트 I / O 및 / 또는 히트 밴드를 현명하게 사용하지만 SSD는 도움이 될 수 있습니다 그들은 현재 RAM보다 적어도 10 배 느리다. DDR3 ECC 1333MHz의 가격은 64GB (8x8GB)의 경우 약 $ 1000입니다.
Shadok

2

디스크를 다시 파티션해야합니다. 리눅스 파티션의 시작 부분을 잘 움직이는 것이 기억 나지 않는다면 부분적으로 지원되지 않지만 리눅스 파일 시스템과 파티션을 축소 한 다음 디스크 끝에서 다른 스왑을 만들 수 있습니다. 시스템이 온라인 상태 일 때는이 작업을 수행 할 수 없습니다.

다른 해결책은 큰 파일을 스왑으로 사용하는 것입니다. (현재 그것이 좋은 아이디어인지 모르겠다.)


모든 파일 시스템을 오프라인에서도 축소 할 수있는 것은 아닙니다. 불행히도 이것은 XFS ( xfs.org/index.php/Shrinking_Support ) 와 같은 널리 사용되는 선택에 영향을줍니다 .
Sven

@Stone은 OS를 다시 설치한다는 의미입니까?
x-man

아니요. 백업을 수행하고 LiveCD를 부팅하고 Linux 파일 시스템을 축소 한 다음 sdc2 파티션을 축소하고 디스크 끝에 새로운 스왑을 만들고 시스템을 재부팅합니다.
Stone

0

1 모든 스왑 프로세스를 끕니다

sudo swapoff -a

2 스왑 크기 조정

sudo dd if=/dev/zero of=/swapfile bs=1G count=8

if = input file
of = output file
bs = block size
count = multiplier of blocks

3 파일을 스왑으로 사용 가능하게 만들기

sudo mkswap /swapfile

4 스왑 파일을 활성화

sudo swapon /swapfile

5 사용 가능한 스왑 금액 확인

grep SwapTotal /proc/meminfo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.