tmpfs를 실제 메모리 이상으로 늘리는 것이 얼마나 안전합니까? 설정을 통해 다음과 같이 할 수 /run있습니다. 300M

내 서버에는 2GB RAM 및 120GB SSD와 스토리지 용 RAID 어레이가 있습니다. OS는 데비안 8 (Linux 3.16)입니다.

내가 가지고있는 MySQL의 강렬한 응용 프로그램이 tmpdir= /run/mysqldA는, tmpfs을 통해 데비안 구성을 /etc/default/tmpfs:

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

예전 20%VM에는 약 384M이었습니다. 나는 몇 개 no space left on device에 대항 하여 그것을 증가 40%VM시켰지만 약 763M에서도 여전히 너무 작습니다.

이제 더 많은 RAM을 추가해야하지만 호기심으로 여기의 한계를 알고 싶습니다.

  • /dev/sdd1에 장착되어 /50기가바이트 자유에 대해 가지고 있으며, 빠른 공정이다 (삼성 850 EVO SSD)
  • /dev/sdd5 내 스왑 파티션이고 3.7G입니다 (fdisk 유형 ID는 82 임).
  • TMPFS_SIZE로 설정 40%VM, 의미 /run는 763M

이제 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에 적합한 항목을 작성하면 더 복잡한 마운트 옵션을 사용할 수 있습니다.



답변

나는 그것을 테스트 할 수 있다고 생각했기 때문에 나는 달렸다.

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 : 500M 파일 제거

총 스왑 금액이 인에 의해 줄어 듭니다 /run.

커널이 다시 마운트를 거부하는지 또는 예기치 않은 동작을하는지 알 수 없기 때문에 VM에서 10GB를 테스트했습니다.

나는 여전히 실제 답변을 찾고 있지만 실용적인 방법으로 효과가 있음을 보여주었습니다.


답변