web-dev-qa-db-ja.com

zfsとsolaris11:RAMの消費を減らす方法は?

Sudo echo ::memstat | Sudo mdb -k
Usage Type/Subtype                      Pages    Bytes  %Tot  %Tot/%Subt
---------------------------- ---------------- -------- ----- -----------
Kernel                                 291425     1.1g 17.5%
ZFS                                    844447     3.2g 50.7%

zfsは3Gを超えていますが、最大2Gを消費するようにARCを設定しました

cat /etc/system
set zfs:zfs_arc_max = 2147483648
set zfs:zfs_arc_min = 1073741824

もちろん再起動します。

バージョンは11.4ベータ版です

1
elbarna

zfs_arc_maxは明らかに非推奨になりました。 https://docs.Oracle.com/cd/E53394_01/html/E54818/chapterzfs-3.html#scrolltoc を参照してください。

ZFSメモリ管理パラメータ

このセクションでは、ZFSメモリ管理に関連するパラメータについて説明します。

user_reserve_hint_pct

説明

アプリケーションで使用するために予約されているメモリの量をシステムに通知します。したがって、キャッシュが時間の経過とともに増加するにつれて、ZFSARCキャッシュで使用できるメモリの量が制限されます。

このパラメータを使用すると、管理者は将来のアプリケーションの要求に備えて、使用可能な空きメモリを大量に確保できます。 user_reserve_hint_pctパラメーターは、zfs_arc_maxパラメーターの代わりに使用して、ZFSARCキャッシュの増大を制限することを目的としています。

注-このパラメータの調整のガイダンスについては、My Oracle Support(MOS)のドキュメント1663862.1、Oracle Solaris11.2のZFSとアプリケーション間のメモリ管理を確認してください。データ・タイプ

符号なし整数(64ビット)

デフォルト

専用システムを使用して、既知のメモリフットプリントを持つアプリケーションのセットを実行する場合は、パラメータを、OracleデータベースのSGAの合計など、そのフットプリントの値に設定します。

パラメータに値を割り当てるには、My Oracle Support(MOS)のドキュメント1663862.1に記載されているスクリプトを実行します。再起動後もチューニングを持続させるには、–pオプションの使用方法についてスクリプト出力を参照してください。

範囲

0-99

単位

パーセント

動的

はい

このパラメータの設定は、実行中のシステムで動的に調整できます。

いつ変更するか

上方修正の場合、初期値がアプリケーション要件に対して時間の経過とともに不十分であると判断された場合、またはシステムでのアプリケーション需要が増加した場合は、値を増やします。この調整は、スケジュールされたシステムメンテナンスウィンドウ内でのみ実行してください。値を変更したら、システムを再起動します。

下方調整の場合、アプリケーション要件で許可されている場合は値を減らします。一度に5%を超えないように、値を少しだけ減らすようにしてください。

コミットメントレベル

不安定

.。

zfs_arc_max

説明

ZFSアダプティブ置換キャッシュ(ARC)の最大サイズを決定します。 ただし、user_reserve_hint_pctを参照してください。

私の意見では、これは大きな後退です。ハード制限は、単なる「ヒント」に置き換えられます。 hard制限には、非常に、非常に、非常に正当な理由があります。

(文書化されていないARCハード制限が本当にあるのだろうかと思います。Sun/ OracleにはZFSでそのようなことを行ってきた歴史があります。「ZFSは常にディスク上で一貫しています!fsckなどは必要ありません。デバッグツール。いいえ、できません。WE言わないでください。なぜああ、なぜ私たちを信じないのですか?!?!ああ、うーん、ああ、ええ、ここにzdbがあります。私たちは何年も内部で使用しているので、かなり成熟しています... ")

3
Andrew Henle