Debian は多数の CPU コアをどのように活用していますか?

Debian は多数の CPU コアをどのように活用していますか?

24コアのVPS(UnixBenchによると、24 CPU)のアカウントを取得しました。

  1. 一般的に、Debian のユニバーサルシェルコンピューティングのために、これらすべてのコアをどのように最大限に活用しますか?
  2. シェルで長期実行アプリケーションを起動するときに、各プロセスが別々のコア(利用可能な場合)で実行されるように特別なものを入力する必要がありますか?それともDebianはこのすべてを処理するのに私が見ることができませんか?

ベストアンサー1

特別な作業を行う必要はありません。カーネルの作業は、どのスレッドがどのCPUで実行されているかを決定することであり、人間よりも優れています。

ただし、少なくとも24個の同時スレッドが実行されず、24個のCPUを持つことは意味がありません。より多くのCPUを使用できるとしても、プログラムが魔法のように速く実行されるわけではありません。複数の並列スレッドを持つようにコード化されたプログラムだけが利点を得ることができます。

N個の同時コンピューティングスレッドを持つプログラムは、最大N個のCPUを使用することで利点を得ることができます(スレッド間の同期に時間がかかるため、N倍速くないかもしれません)。別の対話なしでM個の異なるプログラムを実行すると、M個のCPUを同じように使用することになります(プログラムがマルチスレッドの場合はもっと多い)。

場合によっては、並列性を利用するために手動介入が必要です。複数のデータ処理ジョブを開始する場合は、順次生成されるのではなく、並列に(CPUあたり少し以上のジョブ)生成されることに注意してください。たとえば、ソフトウェアを構築すると、-jオプションがに渡されますmake。他の例と説明を参照してください。

Webサーバーを実行している場合、過負荷用に設計されたすべてのWebサーバーは並列処理を利用するのに役立ちます。 Linuxカーネル最適化のパフォーマンスを評価するときは、Apacheをテストケースとして使用してください。ただし、CPUの並列処理は、他のボトルネック(データベースアクセスや入出力帯域幅による競合など)がない場合にのみ役立ちます。

おすすめ記事