UNIX에서 스왑 메모리 생성에 대한 정보가 필요합니다.

UNIX에서 스왑 메모리 생성에 대한 정보가 필요합니다.

fallocate -l "$memory" "$swapfilename"스왑 파일을 생성하는 명령을 사용하고 있습니다 .

질문이 몇 개 있습니다:

  1. 여러 파일 시스템이 존재하는 경우 스왑 파일은 어떤 파일 시스템에 생성됩니까? 어떤 파일 시스템에서 가져올지 외부적으로 지정할 수 있나요?

  2. 나는 두 개의 파일 시스템을 가지고 tmpfs있으며 rootfs기본적으로 스왑 파일은 rootfs 메모리를 사용하여 생성됩니다. 심지어 tmpfs의 크기도 더 큽니다. tmpfs란 무엇입니까?

  3. 스왑 파일을 생성하기 전에 공간이 있는지 확인하는 방법은 무엇입니까?

[root@rhev6 scripts]# df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs          3.1G  2.8G  123M  96% /
tmpfs           1.5G   76K  1.5G   1% /dev/shm

답변1

파일은 표시된 디렉토리에 생성되며 $swapfilename기본값은 현재 디렉토리입니다. 이 명령은 fallocate사용자가 파일로 무엇을 하려는지 알지 못합니다. 단지 파일을 생성하고 요청된 공간을 할당할 뿐입니다. 파일을 페이징 영역으로 사용하려면 mkswap해당 파일에서 실행해야 합니다.

임시 파일 시스템(작은) 임시 파일을 위한 메모리 기반 파일 시스템입니다. 메모리 기반이기 때문에 공간이 거의 없습니다.임시 파일 시스템파일 시스템.루트 파일 시스템무언가를 설치하기 전에 루트 디렉터리를 저장하는 데만 사용되는 또 다른 메모리 기반 파일 시스템입니다. 프로덕션에서는 일반적으로 디스크 기반 파일 시스템이 설치됩니다 /.

스왑 파일을 디스크 기반 파일 시스템에 배치하려고 합니다.외부 4파일 시스템.

답변2

질문에 순서대로 대답하세요.

여러 파일 시스템이 존재하는 경우 스왑 파일은 어떤 파일 시스템에 생성됩니까? 어떤 파일 시스템에서 가져올지 외부적으로 지정할 수 있나요?

스왑 파일은 모든 로컬 파일 시스템에 배치될 수 있습니다. 이러한 파일 시스템은 물리적 디스크로 지원되어야 합니다.

나는 두 개의 파일 시스템을 가지고 tmpfs있으며 rootfs기본적으로 스왑 파일은 rootfstmpfs의 크기보다 더 큰 메모리를 사용하여 생성됩니다. tmpfs란 무엇입니까?

tmpfs실제 메모리에서 직접 가져온 임시 파일 시스템입니다. 8GB의 물리적 메모리가 있는 경우 tmpfs2GB 파일 시스템을 사용하기로 결정할 수 있습니다. 파일 시스템에서 사용할 수 있는 메모리 양과 실행 중인 시스템에서 사용할 수 있는 메모리 양 tmpfs사이에는 직접적인 균형이 있습니다 .

rootfs최소 메모리 기반 부팅 이미지입니다 . 일반적으로 나는 이것이 진정한 디스크 기반 루트 파일 시스템으로 대체될 것으로 기대하지만 여기서는 그런 일이 일어나지 않습니다.

rootfs또는 파일 시스템 tmpfs에 스왑 파일을 생성 하지 마십시오 !

스왑 파일을 생성하기 전에 공간이 있는지 확인하는 방법은 무엇입니까?

df -h명령은 각 마운트 지점에 사용 가능한 공간을 표시합니다. 물리적 디스크로 지원되고 공간이 충분한 디스크(아무거나)를 선택할 수 있습니다. 작은 스크린샷 조각에는 rootfs및 파일 시스템 만 포함했기 때문에 아무것도 표시되지 않습니다 tmpfs.

답변3

여러 파일 시스템이 존재하는 경우 스왑 파일은 어떤 파일 시스템에 생성됩니까? 어떤 파일 시스템에서 가져올지 외부적으로 지정할 수 있나요?

fallocate명령은 파일을 지정된 크기로 생성, 확대 또는 축소하는 데 사용됩니다. 무엇을 하라고 지시하더라도 파일이 생성됩니다. 또한 파일에 "구멍을 파는" 데 사용할 수 있어 디스크에서 사용하는 블록 수를 줄일 수 있습니다.

저는 tmpfs와 rootfs라는 두 개의 파일 시스템을 가지고 있으며 기본적으로 스왑 파일은 tmpfs의 크기가 더 크더라도 rootfs 메모리를 사용하여 생성됩니다. tmpfs란 무엇입니까?

일반적으로 그렇게 믿어지고 tmpfs있지만아니요가상 메모리 기반 파일 시스템이 아닌 RAM 기반 파일 시스템입니다. 이는 백엔드가 디스크 스왑 영역(파티션 또는 일반 파일일 수 있음)과 다른 목적으로 사용되지 않거나 예약되지 않은 RAM 부분의 합계임을 의미합니다. 물론 스왑 영역을 생성하지 않는다면 tmpfsRAM 기반의 파일 시스템과 유사하다.

스왑 파일을 생성하기 전에 공간이 있는지 확인하는 방법은 무엇입니까?

스왑 파일을 생성하기 전에 충분한 공간이 있는 파일 시스템을 찾아야 합니다. 가상 파일 시스템은 스와핑에 적합 rootfs하지 않습니다 . RAM(ramfs)이 지원될 tmpfsrootfs대규모 스왑 파일을 생성하면 재앙적인 효과가 발생합니다. 그렇지 않으면 tmpfs이 병에서 액체로 채우는 것과 같이 전혀 의미가 없는 스왑 파일을 생성하는 것과 같습니다.

관련 정보