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


11

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


흥미로운 질문입니다. 메모리 오버 커밋 설정과 관련이있을 수도 있습니다.
phk

최대 tmpfs 크기는 물리적 + 스왑 인 것 같습니다. 커널 docs에서 이것을 보았습니다 .
Benoit Duffez

답변:


8

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

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를 테스트했습니다.

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

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