アプリ版:「スタンプのみでお礼する」機能のリリースについて

Linux-OSでのマルチコア環境で割込み処理の負荷分散を行う、irqbalanceデーモンについておしえてください。
CPU00,01,02,03と4コアで動作してるシステムなんですが、なぜかソフトウェア割込みが特定のCPUにのみ割り込まれちゃいます。
/proc/interruptsを秒間でのぞいてもCPU03だけガシガシとカウントアップされ、まったくもって負荷分散してくれません。
irqbalanceデーモンってどんなロジックで割込みの負荷分散を実現してるのでしょうか?
また、ネットでいろいろ調べると[irqbalanceのOneShotモード]という言葉を見かけます。
一回、分散させてあとは張り付き、みたいなことかかれてるのですが、このモードが有効になってるということでしょうか。。。
このirqbalanceデーモンがこのOneShotモードで動いてるのかどうか、を知るにはドコを確認すればよいでしょうか??
詳しいかた、教えていただけるとうれしいです。

A 回答 (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=

補足日時:2013/06/13 21:01
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!