tmpfsを物理メモリ以上に増やすことはどの程度安全ですか?


11

私のサーバーには、2 GBのRAMと120 GBのSSD、さらにストレージ用のいくつかのRAIDアレイがあります。OSはDebian 8(Linux 3.16)です。

私はtmpdir= を持つMySQLに強いアプリケーションを持って/run/mysqldtmpfsます/etc/default/tmpfs

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

これ20%VMは以前は384Mでした。私はいくつかに対して実行したno space left on deviceので、に増やしましたが40%VM、約763Mでもまだ小さすぎます。

RAMを追加する必要がありますが、好奇心から、ここでの制限を知りたいと思います。

  • /dev/sdd1マウントされ/ている場合、約50GBの空き容量があり、かなり高速です(Samsung 850 EVO SSD)。
  • /dev/sdd5 私のスワップパーティションです、それは3.7Gです(fdiskタイプIDは82です)
  • TMPFS_SIZEに設定されています40%VM。つまり/run、763Mです。

これで、tmpfsがスワップできることがわかりました。MySQLで可能な限りRAMに書き込みたいのですが、より多くのメモリが必要な場合は、システムでSSDにスワップできるようにすることができます。

だから私のセットアップで、私がプッシュすることができます/runように。

  • 300M大きい?はい。それがデフォルトでした。
  • 1.5GB大きい?はい、試しました。MySQLは最大1.3GBを使用し、システムは魅力的に機能しました。しかし、それでも物理メモリの半分+スワップパーティション未満です。
  • 2.5GB大きい?これは物理メモリを超えていますが、物理メモリの半分+スワップパーティション未満です。
  • 4GB大きい?これは物理的な半分とスワップにぴったり収まります
  • もっと?10GBのような?空き領域を使用し/てさらにスワップできますか?

安全のための経験則はTMPFS_SIZE、スワップ+物理メモリの半分を超えないようにすることです。スワップパーティションを増やすことなく、これを超えることはできますか?

また、それは置くことが可能である200%VM/etc/default/tmpfs?私はtmpfs(5)これに100%を超えることができるかどうか知らずに読みました。

最後に、/etc/fstab代わりにそれを実行し、触れないでください/etc/default/tmpfs

(私はそれを使っただけだったことを知るためにmount -o remount、まだサーバーを再起動していません)

編集:最後の質問については、変更できる/できることを知っています/etc/fstab(以下のmanページの引用を参照)/etc/default

/ etc / fstabに適切なエントリを作成することで、より複雑なマウントオプションを使用できます。


興味深い質問です。これは、メモリのオーバーコミットの設定にも大きく関係していると思います。
2015年

tmpfsの最大サイズはphysical + swapのようです。カーネルのドキュメントでこれを見ました
Benoit Duffez

回答:


8

私はそれをテストできると思ったので、実行しました:

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.5 GBのファイルを作成 /run
  • 17:20:500Mファイルを削除

合計スワップは、が使用した量だけ減り/runます。

カーネルが再マウントを拒否するのか、予期しない動作をするのかわからないため、VMで10GBをテストします。

私はまだ実際の答えを探していますが、実用的な方法でそれが機能することを示しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.