새 서버의 성능 저하


11

우리는 전용 서버 (단일 쿼드 코어, 6GB RAM)에 있었고 새로운 전용 서버 (2 개의 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 값은 항상 매우 낮습니다.

모든 통계, 업데이트 또는 재구성 된 인덱스 등을 업데이트했습니다. 수행 한 테스트 양에 따라이 시점에서 실행 계획을 새 서버에 저장해야합니다. 누락 된 인덱스가있는 경우 (있는 것 같지 않음) 이전 및 새 서버에 동일하게 영향을줍니다. New는 이전에 동일한 데이터의 백업을 복원했습니다.

새 서버의 성능이 더 나을 것으로 예상했지만 더 큰 관심사는로드입니다. 이전 서버가로드 된 상태에서도 더 나은 성능을 발휘할 경우이 새롭고 약간 더 나쁜 서버가로드를 가져 가면 어떻게됩니까?

여기서 또 무엇을 놓칠 수 있습니까?

편집 : MAXDOP가 6으로 설정되었습니다.

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

기존 서버에는 1 개의 Intel Xeon E5620 2.40 GHz 쿼드 코어 8 스레드 (w H / T)가 있습니다. 새 서버에는 2 개의 Intel Xeon E5-2640 2.5GHz 6 코어 12 스레드 (w H / T)가 있습니다.

편집 2 : 최종 분석은 다음과 같습니다.

전원 계획은 고성능이 아니라 균형을 유지했습니다. 그것을 바꾸었다.

Tempdb는 RAID 10이 아닌 RAID 5에있었습니다. 다른 HD를 추가하여 물리적으로 별개의 두 개의 RAID 10 구성을 만들었습니다. 하나는 tempdb와 다른 하나는 다른 것입니다.

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

새 서버로 이동 한 후 모든 인덱스를 다시 작성하십시오. 백업, 복사, 복원의 결과로 매우 조각화되었습니다.

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


O / S의 전원 관리 외에 또한 관련 BIOS 설정이있을 수 있습니다 stackoverflow.com/a/27807572/538763
crokusek

답변:


11

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

내 권장 사항은 tempdb를 raid 10으로 옮기는 것입니다.


4

이것은 매우 일반적인 문제이므로 구체적인 조언을하기가 어렵습니다. 그러나이 상황에 처한 경우 기본부터 시작하여 가장 비싼 쿼리를 확인하십시오. 어떤 기능이 더 오래 걸립니까? 통계 시간으로 쿼리를 실행하는 데 가장 많은 시간을 소비하는 것은 무엇입니까? 초점을 조금 좁 히면 이전 서버와 사물을 비교할 수 있습니다. 또한 확인해야 할 것은 두 서버가 동일한 패치 레벨 (SQL 및 Windows)에 있는지 확인하는 것입니다.


3

글쎄, 당신은 당신의 하드 디스크와 가지고있는 tempdb 파일의 수에 대해 아무 말도하지 않는다. nr of tempdbs = 최대 코어 수 32까지의 일반적인 권장 사항이 있으며 temp db가 동일하게 사용되도록하기위한 스위치도 있습니다.

그러나 깊이 : 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 또한 마이그레이션 중에 테이블 및 인덱스의 패킹을 변경 했습니까? 백업 및 복원은 기본적으로 인덱스의 다른 패딩 (클러스터 된 인덱스 포함)으로 설정 될 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.