/proc/interrupts 정보 해설좀 부탁합니다

netkwak의 이미지

           CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7       
  0:  289747169  287270858  292908817  292901623  292902150  292902051  292901666  292901914    IO-APIC-edge  timer
  4:    2335616    2170700    1607501   15069559     457022     693024    1476520    7607272    IO-APIC-edge  serial
  7:          0          0          0          0          0          0          2          0    IO-APIC-edge  parport0
  8:          0          0          1          0          0          0          0          0    IO-APIC-edge  rtc
  9:          0          1          0          0          0          0          0          0   IO-APIC-level  acpi
 14:    4022149    3993618   35086180   10008806    5659754    4579423   16295617    4059135    IO-APIC-edge  ide0
 16:    8699850    2338620    2561518    2872248   11075794   12021679    3234859    2972928   IO-APIC-level  3w-9xxx, uhci_hcd:usb5
 17:          0  838374660         17          0          0          0          0          0   IO-APIC-level  uhci_hcd:usb4, eth0
 18:          0          0          0          0          0          0          0          0   IO-APIC-level  ehci_hcd:usb1, uhci_hcd:usb2
 19:   86880374          0          0          0          0          0         26          0   IO-APIC-level  uhci_hcd:usb3, eth1
NMI:          0          0          0          0          0          0          0          0 
LOC: 2334465546 2334465545 2334465544 2334465543 2334465542 2334465541 2334465540 2334465539 
ERR:          0
MIS:          0

운용중인 서버가... 메모리, CPU자원, HDD I/O 에 여유가 있음에도 불구하고...
시스템 과부하가 발생합니다.

그래서 /proc/interrupts 를 해보니 위와 같은 결과가 나오네요.

그런데, 저 결과를 어떻게 해석해야 하는지 통 모르겠어서...
고수님들의 자문을 구합니다.

도와주세요 ㅠㅠ

#혹시 필요한정보가 있다면 모두 올리겠습니다.

김정균의 이미지

흠.. 혹시 ethernet driver가 tg3 이고 top 에서 iowait 이 높지 않나요? CentOS 5.3 또는 RHEL 5 revision 3 이라면.. 커널 버전을 확인 하시고, 최신 커널로 올리시기 바랍니다.

이 문제가 맞다면, ping을 하시면 주기적으로 엄청나게 늦은 reponse time이 나올 겁니다. 아니라면 패스 ~~

netkwak의 이미지

며칠동안 검색해서 알아낸게...

1. 통신량이 많아지면 eth0, eth1 에 대해 8개의 코어가 부하를 분산해야 정상인데..
계속 코어 하나로 처리하고 있는 점

2. 인텔 홈페이지에서 해당 드라이버의 설치 메뉴얼을 참조해서 커맨드를 입력해도 반영되지 않는 점

이네요.... ㅠㅠ

이하는 간단한 시스템 정보입니다.

-----------------------
#uname -r
2.6.15-1.2054_FC5smp
-----------------------
#ethtool -i eth0
driver: e1000e
version: 0.5.11.2-NAPI
firmware-version: 2.1-12
bus-info: 0000:04:00.0
------------------------
cat /var/log/dmesg | egrep eth
0000:04:00.0: eth0: (PCI Express:2.5GB/s:Width x4) f6f9c118M
0000:04:00.0: eth0: Intel(R) PRO/1000 Network Connection
0000:04:00.0: eth0: MAC: 5, PHY: 5, PBA No: 2050ff-0ff
0000:04:00.1: eth1: (PCI Express:2.5GB/s:Width x4) f6fa0118M
0000:04:00.1: eth1: Intel(R) PRO/1000 Network Connection
0000:04:00.1: eth1: MAC: 5, PHY: 5, PBA No: 2050ff-0ff
irdeal의 이미지

eth0 인터럽트를 cpu0만 처리하는것 같은데 이게 정상은 아닌것 같은데...어떻게 해결해야 할까요?

#ethtool -i eth0
driver: bnx2
version: 1.7.9-2
firmware-version: 1.8.0
bus-info: 0000:05:00.0
 
#uname -r 
2.6.18-128.4.1.el5PAE
 
#cat /proc/interrupts
 
           CPU0       CPU1
  0:    1704586    2764345    IO-APIC-edge  timer
  1:          2          1    IO-APIC-edge  i8042
  8:          1          2    IO-APIC-edge  rtc
  9:          0          0   IO-APIC-level  acpi
 12:          2          2    IO-APIC-edge  i8042
 14:         14         11    IO-APIC-edge  ide0
 66:         15          8   IO-APIC-level  ehci_hcd:usb1, uhci_hcd:usb2, uhci_hcd:usb4
 74:          0          0   IO-APIC-level  uhci_hcd:usb3
 82:    2245256       2772   IO-APIC-level  megasas
 90:   54400886          0         PCI-MSI  eth0
NMI:          0          0
LOC:    4373914    4373913
ERR:          0
MIS:          0

May The Force Be With You
irdeal

May The Force Be With You
irdeal

bushi의 이미지

경험상 irqbalance 데몬이 처리하는 대로 내버려 두는 편이 좋더군요.
일반적인 데스크탑에서는요.

       The  purpose  of irqbalance is to distribute interrupts accross cpus in
       an smp system such that cache-domain affinity  is  maximized  for  each
       irq.  In other words, irqbalance tries to assign irqs to cpu cores such
       that each irq stands a greater chance of having its  interrupt  handler
       be  in  cache  when  the irq is asserted to the cpu.  This raises a few
       interesting cases in which the behavior of irqbalance may be  non-intu-
       itive.   Most  notably,  cases  in  which  a  system has only one cache
       domain.  Nominally these systems are only single cpu environments,  but
       can  also  be found in multi-core environments in which the cores share
       an L2 cache.  In these situations  irqbalance  will  exit  immediately,
       since there is no work that irqbalance can do which will improve inter-
       rupt handling performance.  This is normal and not cause  for  concern.
       For  more information regarding irqbalance, please visit http://irqbal-
       ance.org/

/proc/irq/*/smp_affinity
를 이용해서 수작업으로 CPU를 배분할 수 있습니다.

sudo su -c "echo 00000002 > /proc/irq/90/smp_affinity"

하시면 irq 90 이 CPU 1 으로 돌려집니다.

fedora 에선 /etc/sysconfig/irqbalance 가 irqbalance 데몬의 설정파일입니다.
irq 별로 제한을 하지는 못하지만 CPU 별로 제한을 할 수는 있습니다.

OTL

netkwak의 이미지

TOE를 지원하는 고가의 랜카드의 경우라면 가능하다는 정보는 있지만...
일반적인 서버용 기가비트 랜카드로는 적용할 방법을 못 찾겠네요 ㅠㅠ

여기서 포기하고 다른 방법을 찾아봐야 할 듯 싶습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.