• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:linuxマルチコアCPU環境においてコアの使われ方について)

LinuxマルチコアCPU環境でのコアの使われ方について

このQ&Aのポイント
  • LinuxマルチコアCPU環境において、各プロセスの処理には複数のコアが効果的に利用されているのかどうかについて知りたいです。
  • 投稿した画像の色がついている4つの矢印は、DB接続クライアントがmysqlに投げているSQL文をイメージしており、Kernelが複数のコアの中からクエリを処理するCPUコアを選択するロジックについて知りたいです。
  • 具体的には、Kernelが未使用のCPUコアを都度選んで1クエリの処理を担当しているのか、あるいは4つのクエリに対して4つのCPUコアを均等に分散させて処理しているのかを知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

カーネルバージョンによってスケジューリングが異なりますが、どのバージョンでも、無用なオーバーヘッド低減のために、プロセス単位でCPU時間を割り当てていたと思います。

taikimuru
質問者

お礼

Murasan759 さん ご回答ありがとうございます。 回答いただいた内容をもとに、 「kernel2.6 スケジューラ」というkeywordでgoogle検索したところ、 このページに行き着き、 http://d.hatena.ne.jp/takaochan/20071206/1196951498 さらに、「O(1)スケジューラ」という keywordでgoogle検索したところ、 このページにたどり着きました。 http://www.itmedia.co.jp/enterprise/articles/0406/11/news001.html さらに、さらに、itmediaの記事の中で「CPUごとのRUNキュー」 というセクションがありましたので、 「RUNキュー」でgoogle検索したところ、 以下のページにたどりつきました。 http://www.nces.is.nagoya-u.ac.jp/NEXCESS/blog/index.php?itemid=240 これで知りたいことの大体は理解できました。 ただ、実際のところ、このロジック通りに、 たとえば4コアある環境で、 「マルチプロセッサシステムに対応したLinuxでは,CPUごとにこのRUNキューを持ちます.そして, RUNキュー間で負荷状態に偏りが出たときは、RUNキュー間で実行待ちプロセスのマイグレートを行い,バランスを取ります.→ロードバランス」 このようにコアのロードバランスがうまくされているのか? について深追いしたいとなった場合、やはり、実環境で調べてみるしかないのでしょうか??

関連するQ&A