
Linux-OSでのマルチコア環境で割込み処理の負荷分散を行う、irqbalanceデーモンについておしえてください。
CPU00,01,02,03と4コアで動作してるシステムなんですが、なぜかソフトウェア割込みが特定のCPUにのみ割り込まれちゃいます。
/proc/interruptsを秒間でのぞいてもCPU03だけガシガシとカウントアップされ、まったくもって負荷分散してくれません。
irqbalanceデーモンってどんなロジックで割込みの負荷分散を実現してるのでしょうか?
また、ネットでいろいろ調べると[irqbalanceのOneShotモード]という言葉を見かけます。
一回、分散させてあとは張り付き、みたいなことかかれてるのですが、このモードが有効になってるということでしょうか。。。
このirqbalanceデーモンがこのOneShotモードで動いてるのかどうか、を知るにはドコを確認すればよいでしょうか??
詳しいかた、教えていただけるとうれしいです。
No.1ベストアンサー
- 回答日時:
>このirqbalanceデーモンがこのOneShotモードで動いてるのかどうか、を知るにはドコを確認すればよいでしょうか??
Redhat系列なら/etc/sysconfig/irqbalance辺りでしょうかね。
ウチのだと…timer割り込みはCPU0が処理しているみたいですが。
# 半角スペースは削られるので崩れて見えますけど、下記の通り。
cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
0: 909419869 17594 17590 17587 IO-APIC-edge timer
1: 2 1 2 3 IO-APIC-edge i8042
8: 2 0 1 2 IO-APIC-edge rtc
9: 0 0 0 0 IO-APIC-level acpi
12: 2 0 1 2 IO-APIC-edge i8042
50: 0 0 0 0 IO-APIC-level ehci_hcd:usb1, uhci_hcd:usb2
58: 7778 0 8769346 0 PCI-MSI ahci
66: 188 0 0 11459104 PCI-MSI eth0
82: 287 0 0 0 PCI-MSI snd_hda_intel
177: 0 0 0 0 IO-APIC-level uhci_hcd:usb5
185: 0 0 0 0 IO-APIC-level uhci_hcd:usb4
193: 0 0 0 0 IO-APIC-level uhci_hcd:usb3
NMI: 0 0 0 0
LOC: 909529896 909529930 909529923 909529935
ERR: 0
MIS: 0
SATAはCPU2が、EthernetはCPU3が処理している…っぽいですな。
CPU1だけヒマしているようにも見えますが。
ちなみに、もう1台のサーバで確認するとtimerはCPU0が処理していました。
# やっぱりCPU1は割り込み回数が極端に少なかったですが。
http://hagio.org/wiki/index.php/Linux/%E6%99%82% …
ってことで、ソフトウェアクロック を別のCPUに振るのは正確性に欠ける…ってことで、使用CPUが変動しないように制御でもしているんじゃないですかね?
/proc/irq/0/smp_affinityの値は00000001でしたし。
# 0000000fに変更してみてもCPU0しか使われないですな。
この回答への補足
>>このirqbalanceデーモンがこのOneShotモードで動いてるのかどうか、を知るにはドコを確認すればよいでしょうか??
>Redhat系列なら/etc/sysconfig/irqbalance辺りでしょうかね。
ありがとうございます。みてみたら、こんなになってました。
↓これは、、、yesになってないので、、ONESHOTにはなってないということですよね。。
↓
# irqbalance is a daemon process that distributes interrupts across
# CPUS on SMP systems. The default is to rebalance once every 10
# seconds. There is one configuration option:
#
# ONESHOT=yes
# after starting, wait for a minute, then look at the interrupt
# load and balance it once; after balancing exit and do not change
# it again.
ONESHOT=
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PICのSleepからの復帰に関して
-
マイコン C言語 割り込み処理...
-
プリントスクリーンの自動化
-
【組込み】割り込み中のstatic...
-
インバウンドで迷惑している人...
-
VB.NET スレッドからのイベント...
-
Macターミナルで実行中のプログ...
-
TCP/IP通信時のサーバーからの受信
-
powershell を使いカレントディ...
-
C# シリアル通信でデータ受信...
-
フレームワーク「4.8.1」で、[S...
-
家電製品の電力周波数を変える機械
-
10進数をBCDに変換する方法
-
バックグラウンドのプロセスの...
-
RPG パラメーターについて
-
スティーブ・ジョブズはプログ...
-
【C言語】再帰が時間がかかる...
-
スレッドにて同一メモリの書き...
-
VBSの処理中一旦処理を止めて再...
-
バッチファイルでPINGログ取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
このレジの並び方は間違ってま...
-
CPU負荷率の安全な上限と計...
-
スーパーのレジで並んでいたら...
-
電車で待機列の割り込みについ...
-
【組込み】割り込み中のstatic...
-
VB6でSendKeyを利用したTab移動...
-
マイコン C言語 割り込み処理...
-
pic 複数の割り込み関数 切り分...
-
USJでの割り込み
-
PICマイコンでエンコーダパルス...
-
H8マイコンで割り込みが任意の...
-
CPUの処理量を減らすコーデ...
-
定周期での割り込み
-
割り込みハンドラの処理の簡素化
-
マイコンのメインルーチン内でw...
-
PIC12F683から移植
-
VB.NET スレッドからのイベント...
-
PICで内部タイマーを使わずカウ...
-
VBAのDoEventsが上手く動きません
-
順番待ちで並んでいる時、割り...
おすすめ情報