コメント by 匿名 質問 / tmpディレクトリはどのようにクリーンアップされますか? を見た後、私はそれが16GBのRAMがあり、すべてを使用したことがないため、システムに実装します。
一時ファイルがディスクに書き込まれることはありません。それらはRAMディスクに書き込まれます。
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
を/ etc/fstabに入れました。
私の質問は:
RAMの最大値を/tmp
に設定できますか?そして、その場合、最大量を超えた場合はどうなりますか?ハードディスクドライブに書き込みますか?
私は次のような解決策を読みました:
mkdir -p /tmp/ram Sudo mount -t tmpfs -o size=512M tmpfs /tmp/ram/
しかし、私の理解では、これは永続的な解決策ではありません。永続的にする必要がある場合は、/etc/fstab
構成ファイルに追加する必要があります。
これが正しい解決策である場合、そのマウントコマンドを/etc/fstab
の行に変換するにはどうすればよいですか?
あなたは、絶対に正しい。それに応じたfstabエントリは次のようになります。
tmpfs /tmp tmpfs defaults,noatime,nosuid,nodev,noexec,mode=1777,size=512M 0 0
注意してください:
tmpfs
がいっぱいになると、「スペースが不足しています」というエラーが表示され、物理ハードドライブとして動作します。再起動(したがってキャッシュを空にする)でこれが修正されますが、1つの操作がtmpfs
にあるスペースよりも多くのスペースを最初に消費すると問題が発生する可能性があります。この場合、コンピュータはRAMからディスクへのスワップを開始します。当然、スワップパーティションがあると、システムはクロールを停止します。
これを考慮すると、最近のマシンでははるかに多くのRAMが存在し、はるかに安価になっているため、512MBのサイズは今日でははるかに少ないかもしれません。既に16 GBのRAMを持っているので、tmpfs
にRAMの半分のデフォルト値を使用すると、ほとんどすべてのシナリオで十分です。デフォルト値を使用するには、size=512M
ファイルの/etc/fstab
エントリを省略します。
別のメモ:
以下のように、他のシステムフォルダーをRAMディスクに簡単にマウントすることもできます。
/var/cache
/var/games
/var/log/apt
(defaults,noatime
またはnosuid
なしでmode=
のみを使用してください)
ただし、注意してください:上記と同じルールが適用されます。スペースが不足すると、重大な問題が発生する可能性があります。例えば。/var/log/aptのスペースが不足すると、プログラムをインストールできなくなります。さらに、/var/log
フォルダーをramdiskにロードすると、再起動時にすべてのログファイルが削除されるため、予期しないことが発生した場合にシステムをデバッグできなくなります。したがって、これらの設定は自己責任で使用してください。
編集上の注意:tmpfs
マウントオプションで/run
を削除しました。このフォルダーとそのサブフォルダーはデフォルトでtmpfs
に既にマウントされているためです。
systemd
を使用するシステムでは、tmpfs
を使用してtmp
をマウントするという目標を達成するために、fstabではなくsystemdユニットファイルを使用するオプションがあります。 Ubuntu 16.04システムで、次を実行しました。
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
は次のようになります。
# 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
Systemdは、FuzzyQのfstabアプローチを使用して、fstabエントリをマウントユニットに動的に変換します。どちらのアプローチも優れているとは思いません。
RAMの最大制限を設定するために、size=512M
をOptions
行にコンマで区切って追加する必要があります。