web-dev-qa-db-ja.com

numaとタスクセット

タスクセットを使用して、特定のCPUにいくつかのプロセスを割り当てようとしています。タスクセットを実行すると、プロセスの新しいアフィニティが設定されていることを示す応答が返され、コマンドが機能したように見えます。

ただし、最上位の出力を監視すると(CPUを割り当てようとしているプロセスが高いCPUパーセンテージで実行されている)、プロセスがまだCPUを切り替えているため、タスクセットが機能していないように見えます。

同様の問題をWebで検索すると、Red Hatサイトに投稿が表示されます https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_MRG/1.1/html/Realtime_Tuning_Guide/sect-Realtime_Tuning_Guide -Realtime_Specific_Tuning-Non_Uniform_Memory_Access.html

これは、タスクセットがnuma対応システムでは機能しないことを示しています。これは本当ですか?私はこれを他のどこからも見つけることができませんでした。

私が使用しているタスクセットコマンドは

タスクセット-pc1-2 16723 pid 16723の現在のアフィニティリスト:0-7 pid 16723の新しいアフィニティリスト:1,2

私も試しました:

タスクセット-p0x00000001 16723

OSのバージョンは次のとおりです。

説明:Ubuntu 12.04.1 LTSリリース:12.04

カーネルバージョン:Linux hadoop 3.2.0-29-generic#46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

Cgroupの使用を検討する前に、タスクセットは少なくともプロセスにcpuアフィニティを割り当てるために機能すると思いましたか?

ありがとう、

また、ホストでnumaが無効になっていないことを確認するには http://martincarstenbach.wordpress.com/2012/04/27/little-things-i-didnt-know-difference-between-_enable_numa_support-and- numactl /

詳細/ proc/cmdline

BOOT_IMAGE =/boot/vmlinuz-3.2.0-29-generic root = UUID = 3221e122-b2fb-48b7-b761-16c57ef51f9a roquietsplash vt.handoff = 7

これが物理ホスト上にあることを確認します。

6
jumpercake

コマンド「numastat」を実行します。システムがnumaの場合、結果に表示されます。ご想像のとおり、システムがnumaの場合は、numactlを使用して、さまざまなCPUで実行するようにプロセスを設定します。

2
jim_m_somewhere