電子設計自動化ワークロード向けに Linux NFS クライアント アクセスを最適化する

このページでは、電子設計自動化(EDA)ワークロード用に Linux NFS クライアント アクセスを最適化する方法について説明します。このドキュメントは、Linux コンピューティング ノードの構成と Google Cloudでの高パフォーマンス EDA 環境の管理を担当するストレージ管理者、クラウド アーキテクト、システム エンジニアを対象としています。

クライアントのベスト プラクティス

Linux ノードとインタラクティブ VM は、NFS 経由で NetApp Volumes をマウントします。クライアント チューニングによってボリューム スループットの上限が引き上げられることはありませんが、メタデータ ストーム、単一のストレージ エンドポイントでのスロットの過負荷、大規模なライブラリでのシーケンシャル読み取りのパフォーマンス低下を防ぐことができます。

クライアントを次の順序で構成します。

  1. カーネルの同時実行(マウント前): Linux NFS の同時実行

    Cluster Toolkit と Slurm コンピューティング イメージの場合は、最初のマウントの前に、コンピューティング イメージまたは起動スクリプトに slot-table 設定を含めます。

  2. マウント オプション(マウント時): Linux NFS マウント オプション

  3. 先読み(マウント後、省略可): 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=262144wsize=262144 が設定されている
信頼性 hardtcptimeo=600、または Google Cloud コンソールのデフォルトを使用する
メタデータの読み込み アプリケーションで許可されている場合は、ライブラリとスクラッチで noatime を使用する
ロック(NFSv3) アドバイザリ ロックを使用せず、ネットワーク ステータス モニター(NSM)が構成されていない場合は、nolock を使用します。
先読み シーケンシャル読み取りが遅い場合は、マウント後に読み取り中心のライブラリで増加させる

通常の運用ワークロードを表す回帰テストを実行しながら、nfsiostat コマンドと パフォーマンスの監視 で説明されているメトリックを使用して、セットアップを検証します。

データ階層別にクライアントを最適化する

次の表に、データ階層別のクライアントの重点分野と一般的なマウント オプションを示します。

階層 クライアント フォーカス 一般的なマウント関連のオプション
ライブラリ GETATTR とメタデータのラウンド トリップを削減する。大きなファイルのシーケンシャル読み取り vers=3hardtcpnoatimersizewsize。データが読み取り専用で、一貫性ルールで許可されている場合にのみ actimeo=600nocto を検討する
一時 多くのライター; 一貫性が重要 vers=3hardtcpnoatime。積極的な属性キャッシュは使用しない。ノードあたりのスロット数を少なく保つ。
ツール ライブラリと同様に、読み取りがほとんど vers=3hardtcpnoatimersize=262144wsize=262144。データが主に読み取り専用で、かつ整合性ルールが許す場合にのみ、actimeo=600noctoを考慮する。クラスタイメージ全体で安定したマウントオプションを維持する。
ホーム 混合小型 I/O Google Cloud コンソールのデフォルト設定で通常は十分です。ホームがスクラッチとエンドポイントを共有している場合は、低位のスロットを使用してください。

Kerberos(sec=krb5krb5i、またはkrb5p)は、ポリシーで義務付けられている場合にのみ使用してください。 Kerberos を nconnect と組み合わせないでください。詳細については、Linux NFS マウント オプション を参照してください。

次のステップ