AIX SMTに悩む
今日も色々とお仕事してきましたが、大きな宿題は残ったまま。今日はMeの悩みを赤裸々に語ってみよう。
AIXはIBMが商用に販売しているUNIX系のオペレーティングシステムで、業務プログラムはPOWER7上で動作している。物理プロセッサ8個搭載しており、同時マルチスレディングSMT(Simultaneous Multithreading)=4で設定しているため、32コア(論理プロセッサ)が使用できるのに、プロセス数の多重度を上げて実行しても、プライマリのコアしか割当たらず、セカンダリ以降の残りのコアが完全にIdle状態になって遊んじゃってる。なんでだろう?とテツ&トモ状態に。
上長はAIXのスケジューラーがQoS(Quality of Service)で設計されているから、同様の処理を実行するようなプログラムだと、ばらけないと言っているんだけど、今一つ納得できない。もう一つの仮説は、業務プログラムが索引ファイルを検索するライトなデータベースもどきの製品を使っており、どうもこの製品が1ノードに1プロセス実行が前提の古い製品で、共用メモリをプロセス間で排他して使用しており、この排他ロック待ちで他のプロセスが待ち状態となり、実行キューに入れられ、スケジューラーはプライマリにしか割り当てられないのではないかと。。。本当かな。。。まあ製品担当者はCPUスケーラブルになってないって明言してるしねえ。
明日はこの検証をするため、再現テストをやるべし。ちょっとその製品の担当部署の協力が必要だけど。。。やっぱ実機で確認しとかないと、後で痛い目会うしなあ。
というわけで、もう寝る。数学の勉強などやる余裕などなし。
今日も色々とお仕事してきましたが、大きな宿題は残ったまま。今日はMeの悩みを赤裸々に語ってみよう。
AIXはIBMが商用に販売しているUNIX系のオペレーティングシステムで、業務プログラムはPOWER7上で動作している。物理プロセッサ8個搭載しており、同時マルチスレディングSMT(Simultaneous Multithreading)=4で設定しているため、32コア(論理プロセッサ)が使用できるのに、プロセス数の多重度を上げて実行しても、プライマリのコアしか割当たらず、セカンダリ以降の残りのコアが完全にIdle状態になって遊んじゃってる。なんでだろう?とテツ&トモ状態に。
上長はAIXのスケジューラーがQoS(Quality of Service)で設計されているから、同様の処理を実行するようなプログラムだと、ばらけないと言っているんだけど、今一つ納得できない。もう一つの仮説は、業務プログラムが索引ファイルを検索するライトなデータベースもどきの製品を使っており、どうもこの製品が1ノードに1プロセス実行が前提の古い製品で、共用メモリをプロセス間で排他して使用しており、この排他ロック待ちで他のプロセスが待ち状態となり、実行キューに入れられ、スケジューラーはプライマリにしか割り当てられないのではないかと。。。本当かな。。。まあ製品担当者はCPUスケーラブルになってないって明言してるしねえ。
明日はこの検証をするため、再現テストをやるべし。ちょっとその製品の担当部署の協力が必要だけど。。。やっぱ実機で確認しとかないと、後で痛い目会うしなあ。
というわけで、もう寝る。数学の勉強などやる余裕などなし。