मैं कैसे जान सकता हूं कि कौन सा IRQ उच्च CPU उपयोग के लिए जिम्मेदार है


20

मैंने डिस्क नियंत्रक विफलता के कारण एक सर्वर को एक मेनबोर्ड से दूसरे में स्थानांतरित कर दिया है।

तब से मैंने देखा है कि कोर में से एक 25% लगातार आईआरक्यू को जाता है लेकिन मैंने खुद को यह जानने में कामयाब नहीं किया है कि आईआरक्यू उसके लिए जिम्मेदार है।

कर्नेल एक Linux 2.6.18-194.3.1.el5 (CentOS) है। mpstat -P ALLदिखाता है:

18:20:33     CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
18:20:33     all    0,23    0,00    0,08    0,11    6,41    0,02    0,00   93,16   2149,29
18:20:33       0    0,25    0,00    0,12    0,07    0,01    0,05    0,00   99,49    127,08
18:20:33       1    0,14    0,00    0,03    0,04    0,00    0,00    0,00   99,78      0,00
18:20:33       2    0,23    0,00    0,02    0,03    0,00    0,00    0,00   99,72      0,02
18:20:33       3    0,28    0,00    0,15    0,28   25,63    0,03    0,00   73,64   2022,19

यह / खरीद / व्यवधान है

cat /proc/interrupts 
           CPU0       CPU1       CPU2       CPU3       
  0:        245          0          0    7134094    IO-APIC-edge  timer
  8:          0          0         49          0    IO-APIC-edge  rtc
  9:          0          0          0          0   IO-APIC-level  acpi
 66:         67          0          0          0   IO-APIC-level  ehci_hcd:usb2
 74:     902214          0          0          0         PCI-MSI  eth0
169:          0          0         79          0   IO-APIC-level  ehci_hcd:usb1
177:          0          0          0    7170885   IO-APIC-level  ata_piix, b4xxp
185:          0          0          0      59375   IO-APIC-level  ata_piix
NMI:          0          0          0          0 
LOC:    7104234    7104239    7104243    7104218 
ERR:          0
MIS:          0

मैं कैसे पहचान सकता हूं कि कौन सी IRQ उच्च CPU उपयोग का कारण बन रही है?

संपादित करें:

से आउटपुट dmesg | grep -i b4xxp

wcb4xxp 0000:30:00.0: probe called for b4xx...
wcb4xxp 0000:30:00.0: Identified Wildcard B410P (controller rev 1) at 00012000, IRQ 177
wcb4xxp 0000:30:00.0: VPM 0/1 init: chip ver 33
wcb4xxp 0000:30:00.0: VPM 1/1 init: chip ver 33
wcb4xxp 0000:30:00.0: Hardware echo cancellation enabled.
wcb4xxp 0000:30:00.0: Port 1: TE mode
wcb4xxp 0000:30:00.0: Port 2: TE mode
wcb4xxp 0000:30:00.0: Port 3: TE mode
wcb4xxp 0000:30:00.0: Port 4: TE mode
wcb4xxp 0000:30:00.0: Did not do the highestorder stuff
wcb4xxp 0000:30:00.0: new card sync source: port 3

1
यह एक तारांकन सर्वर है? क्या dmesg | grep -i b4xxpदिखाता है?
टिम कैनेडी

@TimKennedy: हाँ यह है। मैंने अपने प्रश्न को यह दिखाने के लिए संपादित किया है कि dmesg क्या दिखाता है।
eproyectos

जवाबों:


21

खैर, चूंकि आप विशेष रूप से यह जानना चाहते हैं कि किस नंबर के लिए IRQ जिम्मेदार है mpstat, आप यह मान सकते हैं कि यह स्थानीय व्यवधान टाइमर (LOC) नहीं है, क्योंकि ये संख्या काफी बराबर है, और फिर भी mpstat0% पर कुछ cpus दिखाता है। आईआरक्यू।

यह IRQ 0 को छोड़ देता है, जो कि सिस्टम टाइमर है, और जिसके बारे में आप कुछ नहीं कर सकते हैं, और IRQ 177, जो आपके b4xxp ड्राइवर से जुड़ा हुआ है।

मेरा अनुमान है कि IRQ 177 आपका अपराधी होगा।

यदि यह समस्या पैदा कर रहा है, और आप अपने व्यवहार को बदलना चाहते हैं, तो प्रयास करें:

  1. उस कार्ड का उपयोग करने वाले सॉफ़्टवेयर को अक्षम करना, और देखें कि क्या व्यवधान कम हो जाता है।

  2. सिस्टम से उस कार्ड को हटाकर, और ड्राइवर को उतारकर, और देखें कि क्या सुधार हुआ है।

  3. उस कार्ड को दूसरे स्लॉट में ले जाएं और देखें कि क्या मदद करता है।

  4. सॉफ़्टवेयर के लिए अपडेट किए गए ड्राइवर या पैच की जांच करें।

यदि यह कोई समस्या नहीं है, और आप बस उत्सुक थे, तो आगे बढ़ें। :)


एमबी बदलने के बाद समस्या उत्पन्न हुई। हो सकता है कि कार्ड को दूसरे पीसीआई स्लॉट में बदलने की कोशिश की जाए।
eproyectos

इस पृष्ठ की जाँच करें: IRQ मुद्दों सहित समस्याओं की पहचान करने के लिए अच्छी जानकारी प्रदान करने के लिए Voiceip-info.org/wiki/view/Asterisk+PCI+bus+Troublesourcing
टिम केनेडी

4
watch -n1 -d cat /proc/interrupts

यह ओपी पूछ रहा है कि वास्तविक सवाल का जवाब नहीं है।
हेमेयेल

इस तरह आप सबसे व्यवधान बदलाव देखते हैं, मैं जानता हूँ कि जब समस्या निवारण यह मुझे मदद किया था वास्तव में मुद्दा यह है कि इस विषय में वर्णित किया गया था।
sjas

4

BP410P 4 BRI लाइन्स वाला एक ISDN कार्ड है, यदि सभी चार लाइनें जुड़ी हुई हैं, तो आपको एक समय में चार सिंक पैकेट मिलने चाहिए और जब कॉल किए जा रहे हों, तो आपके पास 8 वॉयस चैनल सक्रिय हो सकते हैं, जो सभी पैकेट भेज रहे हैं, आदि।

अगर आपको बिना किसी कॉल के हाई IRQ काउंट मिल रहा है तो यह 2 बुरी चीजों का लक्षण हो सकता है:

  1. ऑपरेटर के साथ एक सिंक समस्या है, आपको खराब आवाज की गुणवत्ता भी मिलनी चाहिए।
  2. IRQ लाइनें परस्पर विरोधी हैं, इस मामले में आपका ata_piix(ide / sata) उसी लाइन का उपयोग कर रहा है जिसमें BP410P कार्ड है, ड्राइवरों को यह बहुत पसंद नहीं आ सकता है, इस मामले में पिछले उत्तर का सुझाव देने की कोशिश करें और कार्ड को दूसरे स्लॉट में बदलें। ।

डिबग करने के लिए आप BRI केबलों को हटाने का भी प्रयास कर सकते हैं और देखें कि क्या इससे कोई फर्क पड़ता है।


+1मैं आपकी सलाह की जाँच करूँगा। धन्यवाद
eproyectos

1
वाह, चौंकाने वाला। पिछली बार मुझे नब्बे के दशक के मध्य में कार्ड-जॉकी खेलना था। तब से 'कार्ड-जॉकी' शब्द का इस्तेमाल भी नहीं किया गया है। मैंने सोचा कि यह सब हमारे पीछे अच्छी तरह से था, एपीआईसीआई, एमएसआई आदि के साथ क्या था
एलेक्सियो

2

मैंने कुछ समय पहले खुद को ऐसी स्थिति में पाया था, और मैंने irqtopआसानी से निगरानी करने के लिए एक छोटा सा उपकरण लिखा था कि क्या चल रहा है। यह मूल रूप से एक ही काम कर रहा है watch -n 1 cat /proc/interrupts, एक अच्छे आउटपुट के साथ।

स्रोत कोड यहां उपलब्ध है: https://gitlab.com/elboulangero/irqtop

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.