RHEL 5.4 커널 2.6.18-164.el5가 있고 Oracle을 사용하는 동안 디스크 성능이 매우 저하되는 현상이 무작위로 발생합니다.
로그에는 아무것도 표시되지 않습니다.
이런 일이 발생하면 CPU 코어가 100% 시스템 시간에서 멈추는 것을 볼 수 있습니다 top
.
Cpu0 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 1.0%us, 0.0%sy, 0.0%ni, 99.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 1.0%us, 0.0%sy, 0.0%ni, 99.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu4 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu5 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu6 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu7 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu8 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu9 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu10 : 0.0%us,100.0%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu11 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu12 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu13 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu14 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu15 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 8097368k total, 5761028k used, 2336340k free, 602024k buffers
Swap: 2088440k total, 0k used, 2088440k free, 3070188k cached
디스크 쓰기를 확인하면 dd
위와 동일한 결과를 얻었습니다.
time dd if=/dev/zero of=1000 bs=2M count=500 conv=fdatasync
79+0 records in
79+0 records out
165675008 bytes (166 MB) copied, 279.746 seconds, 592 kB/s
real 4m40.565s
user 0m0.000s
sys 4m40.521s
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
8557 root 25 0 65212 2640 2548 R 99.8 0.0 3:02.99 dd
정상 작동 중에는 다음을 얻습니다.
500+0 records in
500+0 records out
1048576000 bytes (1.0 GB) copied, 9.24778 seconds, 113 MB/s
real 0m9.249s
user 0m0.001s
sys 0m1.772s
디스크는 MegaRAID SAS9261-8i 컨트롤러에 의해 관리되는 RAID1 구성의 15k RPM SAS 2개입니다.
컨트롤러의 드라이버와 펌웨어를 업그레이드했습니다.
이상한 문제는 시스템이 몇 주 동안 잘 작동하고 모든 디스크 벤치마크에서 좋은 결과가 나온다는 것입니다.
이 열악한 디스크 성능을 디버깅하는 방법은 무엇입니까?
Patrick의 요청에 대해 100%sy 동안의 출력입니다.
top - 14:12:57 up 13 days, 15:49, 3 users, load average: 1.28, 1.48, 1.17
Tasks: 424 total, 2 running, 422 sleeping, 0 stopped, 0 zombie
Cpu0 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu4 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu5 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu6 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu7 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu8 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu9 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu10 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu11 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu12 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu13 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu14 : 0.0%us,100.0%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu15 : 0.0%us, 1.0%sy, 0.0%ni, 99.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 8097368k total, 6167440k used, 1929928k free, 306644k buffers
Swap: 2088440k total, 4k used, 2088436k free, 3638216k cached
mpstat -P 모두 3 1
02:13:19 PM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s
02:13:22 PM all 0.06 0.00 6.50 0.00 0.02 0.00 0.00 93.42 1077.00
02:13:22 PM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 1001.33
02:13:22 PM 1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.00
02:13:22 PM 2 0.00 0.00 0.00 0.00 0.33 0.00 0.00 99.67 43.67
02:13:22 PM 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.00
02:13:22 PM 4 0.00 0.00 0.00 0.33 0.00 0.00 0.00 99.67 16.33
02:13:22 PM 5 0.33 0.00 2.99 0.00 0.00 0.00 0.00 96.68 0.00
02:13:22 PM 6 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.33
02:13:22 PM 7 0.33 0.00 0.00 0.00 0.00 0.00 0.00 99.67 0.00
02:13:22 PM 8 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.00
02:13:22 PM 9 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.00
02:13:22 PM 10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.00
02:13:22 PM 11 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.00
02:13:22 PM 12 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.00
02:13:22 PM 13 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.00
02:13:22 PM 14 0.00 0.00 100.00 0.00 0.00 0.00 0.00 0.00 14.33
02:13:22 PM 15 0.66 0.00 1.00 0.00 0.00 0.00 0.00 98.34 0.00
Average: CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s
Average: all 0.06 0.00 6.50 0.00 0.02 0.00 0.00 93.42 1077.00
Average: 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 1001.33
Average: 1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.00
Average: 2 0.00 0.00 0.00 0.00 0.33 0.00 0.00 99.67 43.67
Average: 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.00
Average: 4 0.00 0.00 0.00 0.33 0.00 0.00 0.00 99.67 16.33
Average: 5 0.33 0.00 2.99 0.00 0.00 0.00 0.00 96.68 0.00
Average: 6 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.33
Average: 7 0.33 0.00 0.00 0.00 0.00 0.00 0.00 99.67 0.00
Average: 8 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.00
Average: 9 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.00
Average: 10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.00
Average: 11 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.00
Average: 12 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.00
Average: 13 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.00
Average: 14 0.00 0.00 100.00 0.00 0.00 0.00 0.00 0.00 14.33
Average: 15 0.66 0.00 1.00 0.00 0.00 0.00 0.00 98.34 0.00
sar -I XALL 3 1 0보다 큰 인터럽트
Average: INTR intr/s
Average: 0 1000.33
Average: 51 7.33
Average: 59 1.00
Average: 75 23.33
Average: 218 61.67
Average: 233 0.33
중단 문제는 없는 것 같습니다.
답변1
문제가 발견되었습니다. vm.zone_reclaim_mode
기본 설정은 1입니다.
sysctl을 통해 비활성화했는데 vm.zone_reclaim_mode=0
그 이후로는 그런 일이 발생하지 않았습니다. 관련 정보가 있는 여러 곳이 있습니다:
- http://blog.fastmail.fm/2010/09/15/default-zone_reclaim_mode-1-on-numa-kernel-is-bad-for-fileemailweb-servers/
- http://www.centos.org/docs/5/html/5.5/Technical_Notes/Known_Issues-kernel.html
- http://www-947.ibm.com/support/entry/portal/docdisplay?lndocid=MIGR-5079940
- http://blog.jcole.us/2010/09/28/mysql-swap-insanity-and-the-numa-architecture/
- http://kevinclosson.wordpress.com/2009/05/14/you-buy-a-numa-system-oracle-says-disable-numa-what-gives-part-ii/
- http://www.pythian.com/news/1324/oracle-performance-issue-high-kernel-mode-cpu-usage/
답변2
시간 dd if=/dev/zero of=1000 bs=2M count=500 전환=fdatasync
...
실제 4미터 40.565초
사용자 0m0.000s
시스템 4분 40초 521초
글쎄, 이는 일반적으로 Oracle을 실행한다는 사실과는 아무런 관련이 없습니다. (/dev/zero는 빠르게 출력을 생성하지만 Unix 파일 시스템에 많은 널 바이트를 쓰는 것은 희소 파일 지원으로 인해 좋은 벤치마크가 아닙니다. - 이 경우에는 성능이 너무 나빠서 문제가 여전히 눈에 띕니다.)
"정상적인" 타이밍도 꽤 느리게 보입니다. 하지만 이러한 타이밍과 성능 저하 사이에는 여전히 큰 차이가 있습니다.
이전 2코어 단일 SATA 상자에서는 다음을 얻습니다.
real 0m6.961s
user 0m0.001s
sys 0m1.459s
디스크 구성을 쉽게 전환할 수 있습니까(예: megaRAID 컨트롤러를 우회하고 mdadm(소프트웨어) raid를 사용합니까? (참고: 이전에 md 장치에서 MySQL을 실행하는 데 몇 가지 심각한 문제가 있었습니다. 이는 저만의 문제일 수도 있습니다/이전 문제) 이제 버그가 수정되었으므로 테스트할 때 최악의 결과를 계획하는 것이 좋습니다.
가끔 성능이 저하되면 디스크가 오프라인 상태가 된 후 재구축될 수 있음을 의미합니다. 보고된 오류가 있습니까?