ランキュー(run queue)は、CPUによる処理を待っている実行可能スレッドのキューのこと。Solarisでは、ディスパッチャキュー(dispatcher queue)と呼ばれることが多い。
マルチプロセッサシステムでは、カーネルは個々のCPUのためにランキューを提供しており、スレッドを同じランキューにキューイングし続けようとする。CPUはスレッドのデータをキャッシングしており、スレッドは同じCPUで実行され続ける可能性が高いということである。スレッドデータが格納されているキャッシュをウォーム度のあるキャッシュと呼び、特定のCPUを選ぼうとするアプローチをCPUアフィニティ(CPU affinity)と呼ぶ。CPUアフィニティは、キュー操作のためのスレッド同期(ミューテックスロック)のコストも取り除けれる戦略である。ランキューがグローバルですべてのCPUが同じランキューを共有することになれば、同期が必要になってスケーラビリティが大きく損なわれる。
- 作者: Brendan Gregg,西脇靖紘,長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2017/02/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る