質問のタイトルが変です、すみません。
私は現在サーバーの設計に取り組んでおり、同僚の 1 人から、複数のプロセスを使用する必要があるというコメントがありました。同じマシン上の複数のプロセスにまたがる同じ数のスレッド)
これを引き起こす唯一の原因 (OS のスケジューリングが悪いこと以外) は、競合の増加 (メモリ アロケータなど) によるものですが、それがどれほど重要かはわかりません。
これは「ベストプラクティス」ですか?誰かが私と共有できるベンチマークを持っていますか? もちろん、答えはプラットフォームに依存する可能性があります (HP-UX、AIX、Solaris についてはある程度気にする必要がありますが、主に windows/linux/osx に興味があります)。
もちろん、クラッシュの影響を制限するためのプロセスの分離など、マルチプロセス アーキテクチャを使用する利点は他にもありますが、この質問のパフォーマンスに興味があります。
状況によっては、サーバーは長時間実行されるステートフルな接続を処理するため (そのため、他のサーバー プロセスに移行することはできません)、大量のデータを送り返し、サーバー マシン上で多くのローカル DB 処理を引き起こす可能性もあります。インプロセスで proactor アーキテクチャを使用し、C++ で実装する予定です。サーバーは、再起動する必要なく数週間または数か月実行されることが期待されます (ただし、これは、新しいインスタンスを何らかのプロキシの下で透過的にローテーションすることによって実装される場合があります)。
また、マルチプロセス アーキテクチャを使用します。私の懸念は、プロセスへの接続のスケジュール設定です。