このページでは、電子設計自動化(EDA)ワークロード用に Linux NFS クライアント アクセスを最適化する方法について説明します。このドキュメントは、Linux コンピューティング ノードの構成と Google Cloudでの高パフォーマンス EDA 環境の管理を担当するストレージ管理者、クラウド アーキテクト、システム エンジニアを対象としています。
クライアントのベスト プラクティス
Linux ノードとインタラクティブ VM は、NFS 経由で NetApp Volumes をマウントします。クライアント チューニングによってボリューム スループットの上限が引き上げられることはありませんが、メタデータ ストーム、単一のストレージ エンドポイントでのスロットの過負荷、大規模なライブラリでのシーケンシャル読み取りのパフォーマンス低下を防ぐことができます。
クライアントを次の順序で構成します。
カーネルの同時実行(マウント前): Linux NFS の同時実行
Cluster Toolkit と Slurm コンピューティング イメージの場合は、最初のマウントの前に、コンピューティング イメージまたは起動スクリプトに slot-table 設定を含めます。
マウント オプション(マウント時): Linux NFS マウント オプション
先読み(マウント後、省略可): Linux NFS 先読み
NFS クライアントの最適化の詳細については、NetApp Volumes 用に Linux NFS クライアントを最適化するをご覧ください。
マウント コマンドとエクスポート ポリシーについては、NFS クライアントを接続するをご覧ください。クライアントを大量に分散するには、複数のストレージ エンドポイントを使用して大容量ボリュームを接続すると EDA アーキテクチャ パターンをご覧ください。
クライアントが多い EDA ファームを最適化する
同じエクスポートを共有する数百または数千のコンピューティング ノードを含む大規模なデプロイでは、次の設定を使用します。これらの構成は、通常単一ホストで nconnect=16 マウント オプションを使用する単一 VM ベンチマーク設定と一致しません。
| 地域 | 推奨される出発地 |
|---|---|
| プロトコル | NFSv4.1 の機能が必要な場合を除き、NFSv3(vers=3) |
| 同時実行(NFSv3) | クライアントあたりの RPC スロットテーブルが少ない(/etc/modprobe.d/sunrpc.conf のエントリが 8 個など) |
| 接続 | ストレージ エンドポイントごとにクライアントごとに 1 つの TCP 接続。nconnect は使用しない |
| 大容量ボリューム | DNS または静的グループでマウントして、複数のストレージ エンドポイントにノードを分散する |
| 転送サイズ | rsize=262144 と wsize=262144 が設定されている |
| 信頼性 | hard、tcp、timeo=600、または Google Cloud コンソールのデフォルトを使用する |
| メタデータの読み込み | アプリケーションで許可されている場合は、ライブラリとスクラッチで noatime を使用する |
| ロック(NFSv3) | アドバイザリ ロックを使用せず、ネットワーク ステータス モニター(NSM)が構成されていない場合は、nolock を使用します。 |
| 先読み | シーケンシャル読み取りが遅い場合は、マウント後に読み取り中心のライブラリで増加させる |
通常の運用ワークロードを表す回帰テストを実行しながら、nfsiostat コマンドと パフォーマンスの監視 で説明されているメトリックを使用して、セットアップを検証します。
データ階層別にクライアントを最適化する
次の表に、データ階層別のクライアントの重点分野と一般的なマウント オプションを示します。
| 階層 | クライアント フォーカス | 一般的なマウント関連のオプション |
|---|---|---|
| ライブラリ | GETATTR とメタデータのラウンド トリップを削減する。大きなファイルのシーケンシャル読み取り |
vers=3、hard、tcp、noatime、rsize、wsize。データが読み取り専用で、一貫性ルールで許可されている場合にのみ actimeo=600 と nocto を検討する |
| 一時 | 多くのライター; 一貫性が重要 | vers=3、hard、tcp、noatime。積極的な属性キャッシュは使用しない。ノードあたりのスロット数を少なく保つ。 |
| ツール | ライブラリと同様に、読み取りがほとんど | vers=3、hard、tcp、noatime、rsize=262144、wsize=262144。データが主に読み取り専用で、かつ整合性ルールが許す場合にのみ、actimeo=600とnoctoを考慮する。クラスタイメージ全体で安定したマウントオプションを維持する。 |
| ホーム | 混合小型 I/O | Google Cloud コンソールのデフォルト設定で通常は十分です。ホームがスクラッチとエンドポイントを共有している場合は、低位のスロットを使用してください。 |
Kerberos(sec=krb5、krb5i、またはkrb5p)は、ポリシーで義務付けられている場合にのみ使用してください。
Kerberos を nconnect と組み合わせないでください。詳細については、Linux NFS マウント オプション を参照してください。
次のステップ
- ベンチマーク結果については、電子設計自動化ワークロードベンチマークを参照してください。