새 서버에서의 성능 저하


9

우리는 전용 서버 (단일 쿼드 코어, 6GB RAM)를 사용하고 새로운 전용 서버 (2x 16 진수, 32GB RAM)로 이동합니다.둘 다 Windows Server 2008, SQL Server 2008입니다. 새 서버의 성능은 기존의 느린 서버보다 약간 나쁩니다.

테스트에서 ASP.NET 응용 프로그램은 10 - 20 % 느리게 실행됩니다.STATISTICS IO 및 STATISTICS TIME을 사용하여 비싼 개별 쿼리를 실행하면 새 서버의 경과 시간이 10-20 % 더 커집니다.SQL 쿼리 프로필은 값 비싼 쿼리에서 높은 CPU 사용량을 보여줍니다.

새 서버의 작업 관리자는 sqlserver.exe가 22GB RAM을 소비하지만 CPU 값은 항상 매우 낮게 유지된다는 것을 보여줍니다.

모든 통계, 재구성 된 인덱스 또는 재구성 된 인덱스 등을 업데이트했습니다. 지금까지 수행 한 테스트의 양을 감안할 때 실행 계획은 새 서버에 저장되어야합니다.누락 된 색인이있는 경우 (나는 존재하지 않는다고 생각합니다) 이전 및 신규 서버에 동등하게 영향을 미칩니다.새로운 데이터는 이전 데이터와 동일한 데이터의 복원 된 백업을 갖습니다.

나는 새로운 서버의 성능이 더 좋아질 것이라고 기대 했었지만, 더 많은 관심이 부하 일 것입니다.이전 서버가 부하가 걸린 상태에서 더 나은 성능을 발휘한다면이 새롭고 약간 나쁜 서버가 그 부하를 처리해야 할 때 어떤 일이 발생합니까?

그 밖의 무엇을 내가 여기에서 놓칠 수 있었느냐?

수정 : MAXDOP 6로 설정하십시오.

이전 서버에는 동일한 물리적 드라이브 (RAID 10)에 OS, 데이터베이스 및 tempdb가 있습니다.총 4 개의 15k 3 Gb/s 3.5 인치 SAS. 새 서버에는 RAID 1의 OS, RAID 10의 데이터베이스, RAID 5의 tempdb의 세 가지 드라이브 세트가 있습니다. 총 9 개의 15K 6Gb/s 2.5 인치 SAS.

이전 서버에는 인텔 Xeon E5620 2.40GHz 쿼드 코어 8 스레드 (w/T)가 1 개 있습니다. 새 서버에는 2 개의 인텔 제온 E5-2640 2.5GHz 6 코어 x 12 코어 (H/T)가 있습니다.

편집 2 : 여기에 최종 분석 :

전원 계획은 균형 잡힌 것이지 고성능이 아닙니다.끝났어.

Tempdb는 RAID 10이 아닌 RAID 5에있었습니다. 두 개의 물리적으로 별개의 RAID 10 구성을 만들기 위해 또 다른 HD를 추가했습니다. 하나는 tempdb 용이고 다른 하나는 다른 모든 것입니다.

바이러스 검색에서 SQL 관련 파일 (mdf, ldf, ndf, bak)을 제외했습니다.

새 서버로 이동 한 후 모든 색인을 다시 작성하십시오.그들은 매우 분열되어있었습니다 - 아마도 백업, 복사, 복원의 결과로?

그리고 나는 프로세서 점프가 그다지 크지 않다는 것을 깨달았습니다.쿼리가 훨씬 빠르게 실행되지는 않지만 더 많은 프로세서, 더 많은 코어, 더 많은 RAM이 있으면 확장 성이 향상됩니다.

10

RAID 5는 RAID 10보다 느립니다. 특히 쓰기가 많은 작업 부하의 경우.따라서 일반적으로 SQL Server에는 물론 tempdb에 대해서도 권장되지 않습니다.이것만으로도 성능 차이를 쉽게 설명 할 수 있습니다.

내 권장 사항은 tempdb를 RAID 10으로 이동하는 것입니다.


4

이것은 매우 일반적인 문제이므로 구체적인 조언을하기가 어렵습니다.그러나이 상황에 빠지면 기초부터 시작하여 가장 비싼 쿼리를 확인하십시오.어떤 기능이 오래 걸리나요?통계 시간을 사용하여 검색어를 실행하는 데 가장 많은 시간을 소비하는 것은 무엇입니까?포커스를 좁히면 이전 서버와 비교할 수 있습니다.또한 확인할 사항은 두 서버가 동일한 패치 수준 (SQL 및 Windows)에 있는지 확인하는 것입니다.


3

글쎄, 당신은 당신의 하드 디스크와 tempdb 파일의 수에 관해 아무 말도하지 않습니다.nr의 tempdbs = 코어의 개수가 32 개까지이며, temp dbs가 똑같이 사용되도록하기 위해 스위치를 놓는 것이 일반적인 권장 사항입니다.

그러나 indepth : http://www.sqlskills.com/BLOGS/PAUL/post/A-SQL-Server-DBA-myth-a-day-%281230%29-tempdb-should-always-have-one-data-file-per-processor-core.aspx 또한 마이그레이션 중에 테이블 및 인덱스의 패킹을 변경 했습니까?백업 및 복원이 클러스터 된 인덱스를 포함하여 인덱스의 다른 패딩으로 기본값 설정 될 수 있습니다.