分散ユーザースペースファイルシステム(GlusterFS)を使用していますが、GlusterFSプロセスが常に必要なコンピューティング能力を備えていることを確認したいと思います。
私のグリッドの各実行ノードには2つのCPUがあり、CPUごとに4つのコア、コアごとに2つのスレッドがあります(Linuxでは16の「プロセッサー」が見られます)。
私の目標は、GlusterFSプロセスが信頼性が高く、応答性が高く、高速であるために十分な処理能力を備えていることを保証することです。 (ここにはマーケティングはなく、システム管理者の夢だけです;-)
私は2つの主要なポイントを考慮します:
特定の「プロセッサ」にGlusterFSインスタンスをバインドすることを考えました。
私はそれを確認したいと思います:
しかし、I/Oはどうですか?大量のデータ(数テラバイト)を処理するため、多くの中断が発生します。
これらの操作をプロセッサに分散するにはどうすればよいですか? 「ベストプラクティス」とは何ですか?
コメントしてくれてありがとう!
ユーザースペースを特定のプロセッサに固定すると、パフォーマンスの一貫性が向上する場合があります。しかし、カーネルではありません。 (チェック タスクセット )
可能であれば、ユーザースペース/カーネルの切り替え(すでにOSパフォーマンスの測定可能な要素)をプロセッサ間通信/同期の問題に変えることになります。桁違いに悪化します。
edit:「カーネルのピン留め」のアイデアを削除したので、はるかに合理的です。はい、タスクセットを使用してすべてのグリッドプロセスを開始し、1つまたは2つのCPUをGlusterFS用に空けておくことができます。同様の例として、Xenシステムでは、すべてのI/Oを処理するDom0用に1つのCPUを予約する「ベストプラクティス」と見なされます。
そのため、本番環境でFuseファイルシステムを使用したくありません...代わりにPVFS2を使用しています。