Tmpfs'yi fiziksel bellekten daha fazla arttırmak ne kadar güvenli?


11

Sunucumda 2GB RAM ve 120GB SSD ve ayrıca depolama için bazı RAID dizileri var. İşletim sistemi Debian 8'dir (Linux 3.16).

Debian tarafından yapılandırılan tmpdir= /run/mysqldolan MySQL yoğun bir uygulama var :tmpfs/etc/default/tmpfs

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

Bu 20%VM, yaklaşık 384M idi. Birkaçına karşı koştum no space left on device, bu yüzden arttırdım 40%VM, ancak yaklaşık 763M ile bile hala çok küçük.

Şimdi daha fazla RAM eklemeliyim, ama meraktan, buradaki sınırları bilmek istiyorum.

  • /dev/sdd1takıldığında /yaklaşık 50GB boş alan vardır ve oldukça hızlıdır (Samsung 850 EVO SSD)
  • /dev/sdd5 benim takas bölümüm, 3.7G (fdisk tip kimliği 82)
  • TMPFS_SIZEayarlanır 40%VM, yani /run763M

Şimdi biliyorum ki tmpfs değişebilir, ki bu benim için iyi. Mümkün olduğunca MySQL'in RAM'e yazmasını istiyorum, ancak daha fazla belleğe ihtiyaç duyuyorsa, sistemin SSD'de takas etmesine izin verebilirim.

Yani kurulumumla şu şekilde olabilir miyim /run:

  • 300M büyük mü? Evet. Varsayılan buydu.
  • 1.5GB büyük mü? Evet, denedim, MySQL 1.3GB'a kadar kullandı ve sistem bir cazibe gibi çalıştı. Ancak bu hala fiziksel bellek + takas bölümünün yarısından daha az.
  • 2.5GB büyük mü? Bu fiziksel bellekten daha fazla, ancak fiziksel belleğin yarısından az + takas bölümüm.
  • 4GB büyük? Bu yarım fiziksel + takas sıkıca sığacaktı
  • Daha? 10GB gibi mi? /daha fazla takas için boş alan kullanabilir mi?

Ben güvenlik için başparmak kuralı TMPFS_SIZEtakas + yarısı fiziksel bellek daha büyük değil sanırım . Takas bölümünü arttırmadan bunun ötesine geçebilir miyim?

Ayrıca, koymak mümkündür 200%VMiçinde /etc/default/tmpfs? Buna tmpfs(5)% 100'den fazla koyup koyamayacağımı bilmeden okudum .

Son olarak, /etc/fstabyerine yapmalı /etc/default/tmpfsmıyım?

(sadece bunu yaptığımı bilmek için mount -o remount, henüz sunucuyu yeniden başlatmadım)

Düzenleme: son soru için, ben biliyorum / tarafından değiştirilmiş olabilir /etc/fstab(adam sayfasından aşağıdaki alıntıya bakın), ancak ben /etc/defaultşimdiye kadar hiç bir şey dokunmadım çünkü en iyi uygulamayı bilmek istedim .

/ Etc / fstab içine uygun bir girişin oluşturulmasıyla daha karmaşık montaj seçenekleri kullanılabilir.


İlginç soru. Sanırım bu da bellek fazla ayar ayarı ile ilgili olabilir.
phk

Maksimum tmpfs boyutunun fiziksel + takas olduğu görülüyor. Bunu çekirdek belgelerinde gördüm .
Benoit Duffez

Yanıtlar:


8

Sadece test edebileceğimi düşündüm, bu yüzden koştum:

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

Bir cazibe gibi çalıştı:

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

Bu yüzden biraz doldurdum:

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

Sonuç:

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

Sistem hala çalışıyor. Takas kullanılabilirliği düştü, bu da kullanıldığını kanıtlıyor:

takas kullanılabilirliği düşüşü

  • 17:10: içinde 2,5 GB dosya oluşturun /run
  • 17:20: 500M dosyasını kaldırın

Toplam takas, alınan miktar kadar azaltılır /run.

Bir VM'de 10GB'ı test ederim, çünkü çekirdeğin yeniden şarjı reddedeceğini mi yoksa sadece beklenmedik bir davranışın mı olacağını bilmiyorum.

Hala gerçek bir cevap arıyorum, ama pragmatik yol bunun işe yaradığını gösterdi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.