実際のメモリを超えてtmpfsを増やすのはどのくらい安全ですか?

実際のメモリを超えてtmpfsを増やすのはどのくらい安全ですか?

私のサーバーには、2 GB RAM、120 GB SSD、およびストレージ用のRAIDアレイもあります。オペレーティングシステムはDebian 8(Linux 3.16)です。

tmpdir=を持つMySQL集中アプリケーションがあり、次のようにDebianで設定され/run/mysqldました。tmpfs/etc/default/tmpfs

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

以前は約384M程度でした20%VM。いくつかあって増やしてみたno space left on deviceのに40%VM763M程度なのに小さすぎますね。

もうメモリを追加する必要がありますが、好奇心にここで限界を知りたいです。

  • /dev/sdd1/約50GB程度の空き容量があり、かなり高速なコンピュータ(Samsung 850 EVO SSD)にインストール
  • /dev/sdd5私のスワップパーティションは3.7Gです(fdiskタイプIDは82です)。
  • TMPFS_SIZEに設定40%VM、つまり/run763Mを意味します

今私はtmpfsを交換できることがわかりました。私にとっては大丈夫です。 MySQLはできるだけ多くのRAMに書き込もうとしていますが、より多くのメモリが必要な場合は、システムがそれをSSDに置き換えることを許可できます。

したがって、設定では次のことができます/run

  • 300M大きいですか?はい。これがデフォルトです。
  • 1.5GBは大きいですか?はい、試してみたところ、MySQLは最大1.3 GBのスペースを使用し、システムは非常にスムーズに実行されました。ただし、これは物理メモリ+スワップパーティションの半分未満です。
  • 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に適切なエントリを作成すると、より複雑なインストールオプションを使用できます。

ベストアンサー1

私はこれをテストできると思い、次のことを実行しました。

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: 5億個のファイルを削除

総交換量は使用される金額だけ減少します/run

カーネルが再インストールを拒否するのか予期せず動作するのかわからないので、仮想マシンで10GBをテストします。

私はまだ実用的な答えを探していますが、実用的なアプローチはそれが効果的であることを示唆しています。

おすすめ記事