SMP (HT) 시스템에서 한쪽 CPU에 몰리는 현상..
글쓴이: supply / 작성시간: 금, 2004/07/09 - 1:27오후
SMP (HT) 시스템에서 한쪽 CPU에 몰리는 현상..
안녕하세요?
제목에서처럼 P4 2.4C를 HT로 사용하고 있습니다.
O/S는 페도라 코어 1 이고요.
이번에 아파치 스트레스 테스를 해 보려고 약간의 부하를 줘 봤습니다만,
아래와 같이 한쪽 CPU에 몰리는 현상이 있네요.
13:16:03 up 3 days, 18:25, 2 users, load average: 0.05, 0.18, 0.59 71 processes: 68 sleeping, 3 running, 0 zombie, 0 stopped CPU states: cpu user nice system irq softirq iowait idle total 29.6% 0.0% 3.6% 0.0% 0.0% 0.0% 166.4% cpu00 29.6% 0.0% 3.7% 0.0% 0.0% 0.0% 66.5% cpu01 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 100.0% Mem: 1031216k av, 854056k used, 177160k free, 0k shrd, 257300k buff 168560k active, 232424k inactive Swap: 1831400k av, 184k used, 1831216k free 83792k cached PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND 15683 apache 16 0 11196 10M 9776 R 4.3 1.0 0:00 0 httpd 15904 apache 15 0 11192 10M 9780 S 4.1 1.0 0:00 0 httpd 15940 apache 15 0 11200 10M 9776 S 2.9 1.0 0:01 0 httpd 15669 apache 15 0 11224 10M 9792 S 2.1 1.0 0:01 0 httpd 15722 apache 15 0 11228 10M 9772 S 1.9 1.0 0:00 0 httpd 15903 apache 15 0 11188 10M 9776 S 1.9 1.0 0:00 0 httpd 15917 apache 15 0 11208 10M 9772 S 1.9 1.0 0:00 0 httpd 15924 apache 15 0 11192 10M 9776 S 1.9 1.0 0:00 0 httpd 13731 apache 15 0 11212 10M 9772 S 1.5 1.0 0:01 0 httpd 15799 apache 15 0 11216 10M 9780 S 1.5 1.0 0:00 0 httpd 15853 apache 15 0 11148 10M 9772 S 1.5 1.0 0:00 0 httpd 15665 apache 15 0 11196 10M 9780 S 0.9 1.0 0:01 0 httpd 15685 apache 15 0 11192 10M 9776 S 0.7 1.0 0:01 0 httpd
한계치까지 부하를 줘도 한쪽에만 부하가 계속 걸리고 나머지 하나는 펑펑 놀고 있습니다.
MySQL 같은 경우에는 알아서 분산을 해 주더군요..
혹시 아파치가 지원하지 않을리도 없고. -_-;
conf 파일을 뒤져봐도 관련 옵션을 찾을 수 없네요.
interrupts도 같이 첨부합니다.
CPU0 CPU1 0: 16224505 16381584 IO-APIC-edge timer 1: 3 0 IO-APIC-edge keyboard 2: 0 0 XT-PIC cascade 8: 1 0 IO-APIC-edge rtc 14: 394910 400612 IO-APIC-edge ide0 15: 2 0 IO-APIC-edge ide1 16: 0 0 IO-APIC-level usb-uhci, usb-uhci 18: 2091239 0 IO-APIC-level usb-uhci, eth0 19: 0 0 IO-APIC-level usb-uhci NMI: 0 0 LOC: 32607156 32607155 ERR: 0 MIS: 0
감사합니다.
Forums:
매우 매우 늦은 답변이지만 여전히 궁금해 하고 계실까봐.(다른 것 검
매우 매우 늦은 답변이지만 여전히 궁금해 하고 계실까봐.
(다른 것 검색하다가 우연히 이 글을 봤습니다.)
멀티 프로세서 에서 한쪽에 몰리는건 커널이 포로세스를 분배 하는데서
효율적으로 분배하지 못해서 입니다.
리눅스의 경우 2.4 커널에서 이런 문제가 있었고 2.6에서 개선됐다고 합니다.
데비안으로 2.6 을 설치하면 irqbalance 라는게 함께 설치되던데, 아마 이놈이 이와 관련된 놈 같습니다.
(프로세스를 idle 프로세서에 할당하는 스케줄러의 성능이 현존하는 OS 중에 리눅스 2.6 이 가장 강력하다는 이야기가 있더군요.)
특히 2.6 에서는 HT 도 고려되어서 기존 커널에 비해 성능향상이 꽤 있다고 하는 군요.
하지만, 제가 제온 2.0G 듀얼에서 HT 기능을 enable 한 상태
즉, 논리적으로 CPU 가 4개가 있는 상태로 2.4 에서 부하테스트와
2.6 에서 부하테스트는 했는데(양쪽다 동일한 작업을 복수개 이용해서)
전체적인 시스템 부하는 둘다 비슷했고 2.6이 프로세서 한쪽에 몰리는
현상이 적더군요.
재 개인적인 결론으론, 전제 효율은 비슷하지만 Client 입장에서 반응 속도가 2.6 이 더 좋을 듯 하다 라는 정도입니다.
댓글 달기