質問: linuxマルチコアcpu環境においてコアの使われ方について linuxマルチコアcpu環境においてコアの使われ方について マルチコアcpuがlinxu環境において(その他linuxでないプラットフォームにおいても)、 実際に搭載されているcpuのコア数が正常にosに認識されているというだけではなく、 各プロセスの処理に対して複数のコアが適宜効果的に利用されているのかどうか?? ということが知りたく、添付画像に私の疑問点をまとめてみました。 ■ポイント ++++++++++++++++++++++++++++++++++++++++++++++++ 投稿した画像の色がついている4つの矢印は1つ1つそれぞれがdb接続クライアントがmysqlに投げているsql文(クエリ)をイメージしています。 mysqlを起動させているlinux kernelは、このクエリを受け取り自身が管理しているcpuがマルチコアであった場合、どのようなロジックで複数のコアの中から4つのクエリを処理させるcpuコアを選択しているのでしょうか? 例)kernelが未使用のcpuコアを都度選んで1クエリの処理を担当するよう制御している ⇒コアによって処理する数は異なる 例)kernelが4つのクエリに対して4つのcpuコアをラウンドロビン分散させて処理させている。 ⇒コアが処理する数は均等になる ++++++++++++++++++++++++++++++++++++++++++++++++ どなたか、私の疑問についてご存知でしたらご教授いただけますでしょうか。 よろしくお願します。
回答: カーネルバージョンによってスケジューリングが異なりますが、どのバージョンでも、無用なオーバーヘッド低減のために、プロセス単位でcpu時間を割り当てていたと思います。