스왑 공간이란 무엇입니까?
추천크기스왑 공간을 위해?
어디이점디스크 파티션 대신 파일을 스왑 공간으로 사용하시겠습니까?
어떻게 얻을 수 있나요?정보내 컴퓨터의 메모리 사용량은 어떻습니까?
어느도구이 목적을 위해 파일을 만들어야 합니까?
내가 어떻게 할만들다파일을 교환하시겠습니까?
내가 어떻게 할삭제파일을 교환하시겠습니까?
어떻게 설정해우선순위스왑 공간이 여러 개 있으면 어떻게 되나요?
시스템이 스왑 공간을 더 많거나 적게 사용하도록 만드는 방법(교환성), 주 메모리(RAM)와 비교하면?
답변1
1.스왑 공간이란 무엇인가요?
교환이란 변화, 출퇴근, 교환, 이전, 대체, 변형, 거래를 의미합니다. (출처: 메리엄-웹스터 사전)
스왑 공간(파일 또는 파티션)은 실제 메모리(RAM)의 확장인 가상 메모리 유형입니다. 이는 컴퓨터의 저장 장치(HD 또는 SSD)에 있습니다. HD와 SSD의 데이터 전송 속도는 RAM보다 느리기 때문에 운영 체제(OS)에서는 RAM이 부족한 경우에만 이를 사용합니다.메모리가 부족하면 컴퓨터가 정지되거나 충돌할 수 있습니다.
2. 교환 규모
스왑 영역으로 할당(예약)된 크기는 기본적으로 4가지 측면에 따라 달라집니다.
- 컴퓨터에 메모리가 얼마나 있습니까?
- 운영 체제 및 실행 중인 애플리케이션에 필요한 RAM의 양입니다.
- 컴퓨터의 HD 또는 SSD에 사용 가능한 공간이 얼마나 됩니까?
- 컴퓨터를 최대 절전 모드로 전환하는 경우.
일반적으로 RAM 크기를 두 배로 설정하는 것이 좋습니다.
3. 파티션에 비해 파일의 장점
파일은 유지 관리 목적에 더 적합합니다. 쉽게 크기를 조정하고 다시 할당할 수 있습니다. 반면에 파티셔닝은 어렵거나 불가능할 수도 있습니다.
4.정보 검색
사람이 읽을 수 있는 형식(-h)으로 총 메모리 정보를 표시합니다.
free -h
스왑 파일/파티션 정보 표시:
sudo swapon
스왑 파티션은 일반적으로 /dev/sda3
; 이고 스왑 파일은 일반적으로 루트 디렉터리(/)에 위치하며 이름은 "swapfile"( /swapfile
)입니다.
5. 파일 생성 도구
DD: 파일을 복사하고 변환하는 유틸리티입니다. 할당된 공간을 빈 블록으로 채웁니다. 연속된 파일을 만듭니다.
오류 위치: "운영 파일에 할당된 디스크 공간"(맨페이지). 파일에 공간을 할당하지만 해당 공간을 블록으로 채우지는 않습니다. 불연속(희소) 파일을 만듭니다.
커널의 스왑 파일 구현은 파일 시스템의 도움 없이 파일에 직접 쓸 수 있을 것으로 예상합니다. 이는 Btrfs와 같은 파일 시스템의 취약한 파일 또는 쓰기 중 복사 파일에 발생하는 문제입니다. cp(1) 또는 truncate(1)와 같은 명령은 취약한 파일을 생성합니다. 이러한 파일은 swapon에 의해 거부됩니다. fallocate로 생성된 사전 할당된 파일은 파일 시스템에 따라 취약한 파일로 해석될 수도 있습니다. Linux 4.18부터 XFS는 사전 할당된 스왑 파일을 지원합니다. 스왑 파일을 생성하는 가장 이식 가능한 솔루션은 dd 및 /dev/zero를 사용하는 것입니다.
(출처: swapon 맨페이지)
DD이 특정 유형의 파일은 취약점을 포함할 수 없기 때문에 스왑 파일을 생성하는 가장 권장되는 방법입니다.
인용하다:
- Fallocate 및 dd로 파일 교환
- fallocate를 사용하여 생성된 파일에 어떤 취약점이 존재합니까?
- 희소 파일이란 무엇이며 왜 필요한가요?
- 데비안 위키: 교환
- 아치 위키: 교환
6. 스왑 파일 생성 과정
a) 파일(8GB)을 생성합니다.
sudo dd if=/dev/zero of=/swapfile bs=1MiB count=$((8*1024))
매개변수:
- if = 입력 파일(표준 입력)
- of=출력 파일
- bs = 블록 크기
- 개수 = 블록 수
b) 접근 권한을 제한합니다.
루트 사용자(파일 소유자)에게만 읽기 및 쓰기 권한을 부여하십시오.
sudo chmod 600 /swapfile
c) 파일을 교환 가능하게 만들기
sudo mkswap /swapfile
d) 시스템의 스왑 파일을 엽니다.
sudo swapon /swapfile
e) 변경 사항을 영구적으로 적용
파일 시스템 테이블 끝에 다음 줄을 추가합니다(시스템 테이블):
/swapfile none swap sw 0 0
sudo nano /etc/fstab
매개변수:
- filesystem = 스왑 파일의 경로 및 이름(
/swapfile
) - 마운트 지점 = 파일 시스템 내부에 마운트됨(
none
) - 유형 = 스왑 파일임을 나타냅니다(
swap
). - 옵션 = 스왑파일 옵션(
sw
) - 덤프 = 이 예와 관련 없음(
0
) - 합격 = 이 경우에는 관련 없음 (
0
)
7. 스왑 파일 삭제
a) 스왑 파일을 닫습니다.
sudo swapoff /swapfile
b) 스왑 파일 삭제
sudo rm /swapfile
c) 변경 사항을 영구적으로 적용
파일에서 해당 항목을 주석 처리하거나 삭제합니다 fstab
.
sudo nano /etc/fstab
네가 원한다면스왑 파티션 삭제, fdisk, parted, gparted, gnome 디스크 또는 유사한 도구를 사용해야 하는 제거 단계를 제외하고 스왑 파일 제거 지침을 따르십시오.
네가 원한다면스왑 파일 크기 변경, 닫고(
swapoff
), 동일한 이름과 새로운 크기로 새 파일을 만들어 덮어쓴 다음, 스왑 가능하게 만든 다음(mkswap
), 엽니다(swapon
). 동일한 이름을 사용하는 경우fstab
업데이트가 필요하지 않습니다.
8. 스왑 공간의 우선순위
(스왑 공간이 하나만 있는 경우 이 섹션을 무시하십시오.)
여러 개의 스왑 공간(파티션 또는 파일)이 있는 경우 어떤 스왑 공간이 더 높은 우선 순위를 갖고 있으므로 미리 사용해야 하는지 커널에 표시해야 할 수 있습니다.
우선순위 범위는 0부터 32767까지입니다. 숫자가 높을수록 우선순위가 높아집니다.
기본 우선순위는 -2입니다. 지정하지 않으면 자동으로 설정됩니다.
여러 스왑 공간의 우선순위가 동일한 경우 서로 바꿔서 사용됩니다.
fstab
우선순위는 파일의 해당 라인 으로 설정되어야 합니다.
/swapfile none swap sw,pri=5 0 0
여기서 "pri"는 "우선순위"를 나타내고 "5"는 이 예에서 사용된 수준을 나타냅니다.
9. 교환성
swappiness 매개변수는 콘텐츠를 물리적 메모리에서 스왑 디스크로 이동하는 커널의 경향을 제어합니다.(Ubuntu 커뮤니티 도움말 위키: Exchange FAQ). 보다 구체적으로 말하면 런타임 메모리 교체와 시스템 페이지 캐시에서 페이지 제거 간의 균형을 변경하는 것은 Linux 커널의 속성입니다. Swappiness는 0에서 100(포함) 사이의 값으로 설정할 수 있습니다. 값이 낮을수록 커널은 가능할 때마다 스왑을 피하려고 시도하고 값이 높을수록 커널은 스왑 공간을 적극적으로 사용하려고 시도합니다.(Red Hat 고객 포털 - 기술 자료).
기본 스왑 값은 60입니다. 이는 대부분의 데스크톱에 적합합니다. 그러나 서버는 목적에 따라 10 또는 1과 같은 더 낮은 값을 사용할 수도 있습니다.
값 0은 "최후의 수단으로 스왑 공간 사용"을 의미합니다.
값이 100이면 스왑 공간이 RAM으로 사용됩니다.
교환가치 확인
cat /proc/sys/vm/swappiness
간략하게 변경하다
일시적으로 값을 10으로 변경합니다. 세션이 다시 시작되면 재설정됩니다.
sudo sysctl vm.swappiness=10
지속적인 변화를 가져오다
지속적으로 변경하려면 "vm.swappiness=10" 줄을 사용하여 아래 파일을 편집하세요.
sudo nano /etc/sysctl.conf