web-dev-qa-db-ja.com

tmpfsの使用とサイズ変更

私はそのことを理解しようとしています。 80Gストレージのマシンを持っています。それはそのように見えます:

Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   50G  7.1G   43G  15% /
devtmpfs                 3.9G     0  3.9G   0% /dev
tmpfs                    3.9G  1.4M  3.9G   1% /dev/shm
tmpfs                    3.9G  409M  3.5G  11% /run
tmpfs                    3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda1                494M  125M  370M  26% /boot
/dev/mapper/centos-home   26G   23G  3.5G  87% /home
tmpfs                    782M     0  782M   0% /run/user/0

さて、私が読んだものからtmpfsは物理的なストレージをとらず、マシンの仮想メモリを使用しています。それが正しいか?物理ストレージに何らかの影響がありますか?

Tmpfsが物理ストレージに書き込まれるという現実はありますか?次に、マウントされた(/ dev/sda1、/ dev/sda1など...)ディレクトリすべてがtmpfsを共有しますか?または、それぞれが異なるものを取得しますか?

また、tmpfsのサイズを変更しようとしました。やった :

 mount -o remount,size=1G /dev/shm

再起動すると、元のサイズに戻りました。/etc/fstabを次のように変更しました。

tmpfs      /dev/shm      tmpfs   defaults,size=1G

その後:

mount -o remount /dev/shm

それはトリックをしましたが、再起動すると、再び元のサイズに戻りました。何かが足りないと思います。

6
matisa

さて、私が読んだものからtmpfsは物理的なストレージをとらず、マシンの仮想メモリを使用しています。それが正しいか?

正しい、tmpfsはマウントされたファイルシステムとして表示されますが、永続的なストレージデバイスではなく揮発性メモリに保存されます。したがって、これは他の質問に答えることができます。実際には、仮想メモリにのみ依存しているため、物理ストレージをtmpfsに割り当てることはできません。 tmpfsに保存されるものはすべて、ハードドライブにファイルが作成されないという意味で一時的なものです。
メモリ不足の場合に、スワップスペースがバッキングストアとして使用されます。再起動すると、tmpfs内のすべてが失われます。多くのUnixディストリビューションは、ファイルシステムの/ tmpブランチまたは共有メモリに対して、デフォルトでtmpfsを有効にして使用します。

ディストリビューションによっては、/ tmpにtmpfsを使用できます。デフォルトでは、tmpfsパーティションの最大サイズは使用可能なRAMの半分に設定されていますが、この値を無効にすることもできます。oこの例では、最大サイズを明示的に設定して、デフォルトの/ tmpマウントをオーバーライドし、サイズマウントオプションを使用します。 :

/etc/fstab
tmpfs   /tmp         tmpfs   nodev,nosuid,size=2G          0  0

ソース: https://wiki.archlinux.org/index.php/tmpfs

4
klerk

さて、私が読んだものからtmpfsは物理的なストレージをとらず、マシンの仮想メモリを使用しています。それが正しいか?物理ストレージに何らかの影響がありますか? tmpfsが物理ストレージに書き込まれるという現実はありますか?

まあ、それはそれが制限されているスワップ領域を埋めます。参照 tmpfsはスワップするためにオーバーフローしない

次に、マウントされたすべての(/ dev/sda1、/ dev/sda1など...)ディレクトリがtmpfsを共有しますか?または、それぞれが異なるものを取得しますか?

これは、tmpfsがマウントされている場所によって異なります。しかし、それが意図したとおりであれば、すべてのtmpfssは同じメモリを共有するはずです。

何かが足りないと思います。

多分 https://superuser.com/questions/45342/when-should-i-use-dev-shm-and-when-should-i-use-tmp

最近の2.6 Linuxカーネルビルドでは、/ dev/shmをRAMディスクの形式で共有メモリとして提供し始めました。具体的には、メモリに保存され、世界で書き込み可能なディレクトリとして、制限が定義されています。 /etc/default/tmpfs。/dev/shmサポートは、カーネル構成ファイル内では完全にオプションです。これは、FedoraとUbuntuの両方のディストリビューションにデフォルトで含まれており、Pulseaudioアプリケーションで最も広く使用されています。 [強調を削除して追加]

1
serv-inc