PRIMECLUSTER Global File Services 説明書 4.2 (Solaris(TM) オペレーティング環境版) |
目次
索引
![]() ![]() |
第2部 Global File Services ローカルファイルシステム | > 第9章 性能とチューニング | > 9.2 性能チューニング |
GFS ローカルファイルシステムがもつチューニングパラメタについて以下に説明します。
GFS ローカルファイルシステムでは、以下の項目についてチューニングを行うことが可能です。
本設定値の変更は、/etc/system、および mount_sfxfs(1M) 時のオプション(/etc/vfstab の mount optionsフィールドも可)で変更可能です。
/etc/system で変更した場合は、ファイルシステムの大小にかかわらず、指定した値の領域をファイルシステム数分カーネルメモリ上に確保します。
mount_sfxfs(1M) 時のオプションで指定した場合は、該当のファイルシステムに対し指定した値の領域をカーネルメモリ上に確保します(/etc/system で指定した値は無視されます)。
このため、個々のファイルシステムの資源量に応じてチューニングしたい場合には、mount_sfxfs(1M) 時のオプションで設定値を変更することをお勧めします。詳細については、mount_sfxfs(1M) のリファレンスマニュアルを参照してください。
本設定値は、ファイルシステムごとにエクステント管理とディレクトリ情報については指定値×1 キロバイトの領域を、i ノードについては指定値×4 キロバイトの領域をカーネルメモリ上に確保します。
GFS ローカルファイルシステム専用の統計情報表示コマンド sfxstat(1M) を使用し、エクステント、ディレクトリ、ディスク上の i ノードのキャッシュヒット率を調べ、チューニングしてください。なお、sfxstat(1M) の詳細については、リファレンスマニュアルを参照してください。
1つのディレクトリのサイズが GFS ローカルファイルシステムが持つディレクトリのキャッシュサイズを上回ると、該当ディレクトリのエントリ情報の参照、更新が極端に遅くなることがあります。
大きなディレクトリを作成する環境では、ディレクトリのキャッシュサイズを予想されるディレクトリのサイズより大きく設定することを強く推奨します。
チューニングパラメタを変更する方法には、/etc/system を編集する方法と mount_sfxfs(1M) にオプションを指定する方法があります。
mount_sfxfs(1M) には、チューニングパラメタの設定値を変更するために、以下のオプションが用意されています。mount_sfxfs(1M) 時にこれらのオプションに適切な値を指定してください。
- textent=<val>エクステント管理情報をメモリへキャッシュする量を指定します。当コマンドが正常復帰した場合、指定値×1 キロバイトのメモリを獲得します。
- tdir=<val>ディレクトリ情報をメモリへキャッシュする量を指定します。当コマンドが正常復帰した場合、指定値×1 キロバイトのメモリを獲得します。
- tinode=<val>ディスク上の i ノードをメモリへキャッシュする量を指定します。当コマンドが正常復帰した場合、指定値×4 キロバイトのメモリを獲得します。
- tquota=<val>quota 情報をメモリへキャッシュする量を指定します。当コマンドが正常復帰した場合、指定値×1 キロバイトのメモリを獲得します。
以下に指定例を示します。
# mount -F sfxfs -o textent=512,tdir=1024,tinode=512,tquota=256 /dev/dsk/c2t1d0s0 /sfxfs
/etc/system ファイルを vi(1) 等のテキストエディタで編集し、各チューニングパラメタに適切な値を設定してください。
以下に設定例を示します。
set sfxfs:sfxfs_ncache_extent=512 set sfxfs:sfxfs_ncache_directory=1024 set sfxfs:sfxfs_ncache_inode=512 set sfxfs:sfxfs_ncache_quota=256
設定を行わない場合、システムのメモリ実装量に応じて自動的に個数を設定していますので、性能上の問題がない場合には設定を行わないようにしてください。
/etc/system ファイルはシステムにとって重要なファイルですので、修正は慎重に行ってください。
チューニングパラメタの各々についての上限値、下限値を示します。
チューニングパラメタ |
下限値 |
上限値 |
sfxfs_ncache_extent |
192 |
32768 |
sfxfs_ncache_directory |
512 |
16384 |
sfxfs_ncache_inode |
128 |
4096 |
sfxfs_ncache_quota |
64 |
4096 |
また、システムの設定値については GFS ローカルファイルシステムを1つ以上マウントした状態で crash(1M) コマンドを実行することにより確認できます。
以下に確認方法を示します。
# crash <<! od -d sfxfs_ncache_extent od -d sfxfs_ncache_directory od -d sfxfs_ncache_inode od -d sfxfs_ncache_quota !
例えば、以下のように表示されます。
> dumpfile = /dev/mem, namelist = /dev/ksyms, outfile = stdout > 61bf37e8: 0000000576 > 61bf37e4: 0000002048 > 61bf3800: 0000000256 > 61bf380c: 0000000128
ファイルシステム単位に獲得している、以下のメタデータキャッシュ域がすべて使用された状態になった場合、自動的に拡張されます。
ノード全体でのメタデータキャッシュ域のサイズには上限値があり、自動的に拡張することによってカーネルメモリ域を占有しないようにしています。メタデータキャッシュ域サイズの上限値は、64 メガバイトです。
メタデータキャッシュ域サイズが上限値に到達した場合には、以下のメッセージが表示されます。この時、メタデータキャッシュ域の自動拡張は行われず、メタデータキャッシュ域を置き換えて使用します。
sfxfs:0120: mntpoint: meta data cache grow failed because of size limitation
メタデータキャッシュ域サイズの上限値は、チューニングすることが可能です。
/etc/system ファイルにキロバイト単位で設定し、設定後には、ノードを再起動することで有効になります。
メタデータキャッシュ域サイズの上限値をチューニングする場合は、設定値までメモリを獲得するので注意してください。
ノード全体が正常動作するのに必要なメモリ量を圧迫しないように、実装メモリ量からシステムで使用されるカーネルメモリ量、および、アプリケーションが必要とするメモリ量を差し引いたメモリ量を超えない範囲で指定してください。
以下に 128 メガバイトの指定例を示します。
set sfxfs:sfxfs_metagrow_limit=0x20000
目次
索引
![]() ![]() |