실제 메모리 이상으로 tmpfs를 늘리는 것이 얼마나 안전합니까?

실제 메모리 이상으로 tmpfs를 늘리는 것이 얼마나 안전합니까?

내 서버에는 2GB RAM과 120GB SSD는 물론 스토리지용 RAID 어레이도 있습니다. 운영 체제는 Debian 8(Linux 3.16)입니다.

tmpdir= 이 있는 MySQL 집중 애플리케이션이 있고 다음을 통해 Debian에서 구성 /run/mysqld되었습니다 .tmpfs/etc/default/tmpfs

# Size limits.  Please see tmpfs(5) for details on how to configure
# tmpfs size limits.
TMPFS_SIZE=40%VM

예전에는 대략 384M 정도였습니다 20%VM. 몇개 있어서 no space left on device늘려봤는데 40%VM763M 정도인데도 너무 작네요.

이제 메모리를 더 추가해야 하는데, 호기심에 여기서 한계를 알고 싶습니다.

  • /dev/sdd1/약 50GB 정도의 여유공간이 있고 꽤 빠른 컴퓨터(Samsung 850 EVO SSD)에 설치
  • /dev/sdd5내 스왑 파티션은 3.7G입니다(fdisk 유형 ID는 82입니다).
  • TMPFS_SIZE로 설정 40%VM, 즉 /run763M을 의미

이제 나는 tmpfs를 교체할 수 있다는 것을 알았습니다. 나에게는 괜찮습니다. MySQL이 가능한 한 많은 RAM에 쓰기를 원하지만 더 많은 메모리가 필요한 경우 시스템이 이를 SSD로 교체하도록 허용할 수 있습니다.

따라서 설정을 통해 다음을 수행할 수 있습니다 /run.

  • 300M 크나요? 예. 이것이 기본값입니다.
  • 1.5GB가 큰가요? 예, 시도해 본 결과 MySQL은 최대 1.3GB의 공간을 사용했으며 시스템은 매우 원활하게 실행되었습니다. 그러나 이는 여전히 물리적 메모리 + 스왑 파티션의 절반 미만입니다.
  • 2.5GB가 큰가요? 이는 실제 메모리보다 크지만 실제 메모리 + 스왑 파티션의 절반 미만입니다.
  • 4GB가 큰가요? 이것은 절반 물리학 + 스왑에 밀접하게 맞을 것입니다.
  • 더? 10GB 정도? 더 많은 공간을 교환 하기 위해 여유 공간을 사용할 수 있나요 /?

경험상 안전한 규칙은 TMPFS_SIZE스왑 + 물리적 메모리의 절반 이상인 것 같습니다. 스왑 파티션을 추가하지 않고 이 이상을 수행할 수 있습니까?

200%VM그리고, 넣어도 되나요 /etc/default/tmpfs? 나는 읽었다tmpfs(5)내가 이것에 100% 이상 헌신할 수 있는지 모르겠습니다.

드디어 들어가고 /etc/fstab만지지 말아야 하나 /etc/default/tmpfs?

(제가 아는 한 이것만 사용하고 mount -o remount아직 서버를 다시 시작하지 않았습니다)

편집: 마지막 질문에 대해서는 수정될 수/수정될 수 있다는 것을 알고 있지만 /etc/fstab(아래 매뉴얼 페이지의 인용문 참조) 지금까지 아무것도 건드린 적이 없기 때문에 모범 사례를 알고 싶습니다 /etc/default.

/etc/fstab에 적절한 항목을 생성하면 더 복잡한 설치 옵션을 사용할 수 있습니다.

답변1

나는 이것을 테스트할 수 있다고 생각하여 다음을 실행했습니다.

sudo mount -o remount,size=2800M /run

매력처럼 작동합니다.

Filesystem      Size  Used Avail Use% Mounted on
tmpfs           2.8G   45M  2.7G   2% /run

그래서 조금 추가했습니다.

fallocate -l 1G /run/test.img
fallocate -l 1G /run/test2.img
fallocate -l 500M /run/test3.img

결과:

Filesystem      Size  Used Avail Use% Mounted on
tmpfs           2.8G  2.6G  208M  93% /run

시스템은 여전히 ​​작동 중입니다. 스왑 가용성이 감소하여 사용되었음을 증명합니다.

교환 가용성 감소

  • 17:10: 2.5GB 파일 생성/run
  • 17:20: 5억 개의 파일 삭제

총 교환량은 사용된 금액만큼 감소합니다 /run.

커널이 재설치를 거부할지 아니면 예상치 않게 동작할지 모르기 때문에 가상 머신에서 10GB를 테스트하겠습니다.

나는 여전히 실용적인 답변을 찾고 있지만 실용적인 접근 방식은 그것이 효과가 있다고 제안합니다.

관련 정보