/ tmp dizini için RAM deposunu nasıl kullanabilirim ve bunun için azami RAM miktarını nasıl belirleyebilirim?

80

yorumunu gördükten sonra Anonymous sorusunda / tmp dizini nasıl temizlenir? , 16 GB'lık RAM'im olduğu ve hepsini hiç kullanmadığım için sistemimde uygulanması harika bir fikir olduğunu anladım.

  

Geçici dosyam hiç diske yazılmıyor. RAM diskine yazılıyorlar. / Etc / fstab içinde tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0 koydum.

Sorum şu:

/tmp için RAM Kullanımı için maksimum bir değer ayarlayabilir miyim? Ve bu durumda, maksimum miktar aşılırsa ne olur, sabit disk sürücüsüne yazılır mı?

Aşağıdakileri belirten bir çözüm okudum:

mkdir -p /tmp/ram
sudo mount -t tmpfs -o size=512M tmpfs /tmp/ram/

Ama benim anlayışımda bu kalıcı bir çözüm olmayacak. Kalıcı olmak gerekirse, /etc/fstab yapılandırma dosyasına eklenmelidir.

Bu doğru çözümse, bu bağlama komutunu /etc/fstab 'deki bir satıra nasıl dönüştürebilirim?

    
sordu Dan 07.08.2012 20:20

2 cevap

73

Kesinlikle haklısın. Göre fstab girişi şöyle görünecektir:

tmpfs /tmp tmpfs defaults,noatime,nosuid,nodev,noexec,mode=1777,size=512M 0 0

Lütfen dikkat:

tmpfs dolduğundan, "yeterli alan" hatası vererek herhangi bir fiziksel sabit sürücü gibi davranacaktır. Yeniden başlatma (ve böylece önbelleği boşaltma) bunu düzeltirken, tek bir işlem, tmpfs alan üzerinde olduğundan daha fazla alan harcadığında sorun yaşayabilirsiniz. Bu durumda, bilgisayarınız baştan sona bir takas bölümünüz olduğu düşünüldüğünde, sisteminiz bir ramdan diske değişmeye başlar.

Bunu düşünürsek, günümüzde 512MB'lık bir büyüklük çok daha az olabilir, çünkü modern makinelerde çok daha fazla ram var ve daha ucuz hale geldi. Zaten 16GB'lık bir ram değeriniz olduğundan, tmpfs için ramınızın yarısının varsayılan değerini kullanmanız neredeyse tüm senaryolar için yeterli olacaktır. Varsayılan değeri kullanmak için, size=512M dosyanızı /etc/fstab dosyasında bırakın.

Başka bir not:

Diğer sistem klasörlerini ramdisk'e de kolayca yükleyebilirsiniz, örneğin

/var/cache

/var/games

/var/log/apt (yalnızca defaults,noatime veya mode= olmadan nosuid kullanın)

Ancak dikkatli olun: Yukarıdaki kurallar yukarıdaki gibi uygulanır, alanın tükenmesi büyük sorunlara neden olabilir. Örneğin. / var / log / apt için alan bittiğini düşünün, herhangi bir program yükleyemezsiniz! Ayrıca, /var/log klasörlerinin ramdisk içine yüklenmesi, yeniden başlatıldığında tüm günlük dosyalarınızı siler, böylece beklenmedik bir şey olursa, sisteminizde hata ayıklama yapamazsınız. Bu yüzden bu ayarları kendi sorumluluğunuzda kullanın!

Editöryel not: Bu klasör ve alt klasörleri varsayılan olarak /run dizinine zaten yüklendiğinden tmpfs 'si tmpfs mount seçeneğinden kaldırdım.

    
verilen cevap FuzzyQ 08.08.2012 09:24
23

systemd kullanan sistemlerde, tmpfs 'yı yüklemek için tmp kullanma hedefini gerçekleştirmek için fstab yerine bir systemd birim dosyası kullanma seçeneğiniz vardır. Ubuntu 16.04 sistemimde koştum:

sudo cp /usr/share/systemd/tmp.mount /etc/systemd/system/tmp.mount
sudo systemctl enable tmp.mount
sudo systemctl start tmp.mount

/usr/share/systemd/tmp.mount dosyası şöyle görünüyor:

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
[Unit]
Description=Temporary Directory
Documentation=man:hier(7)
Documentation=http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems
ConditionPathIsSymbolicLink=!/tmp
DefaultDependencies=no
Conflicts=umount.target
Before=local-fs.target umount.target
After=swap.target

[Mount]
What=tmpfs
Where=/tmp
Type=tmpfs
Options=mode=1777,strictatime

[Install]
WantedBy=local-fs.target

FuzzyQ'nun fstab yaklaşımını kullanarak, systemd, fstab girişlerinizi dinamik olarak dinamik birimlere çevirir. Her iki yaklaşımın da daha iyi olduğunu sanmıyorum.

    
verilen cevap Rick Ramstetter 13.08.2016 21:02

Etiketlerdeki diğer soruları oku