2016-08-25 6 views
2

Azure SQL에서 실행중인 DB를 매우 심하게 분석하고 있습니다. 1750 DTU를 사용할 수있는 프리미엄급이며, 때때로 DTU를 최대한 활용할 수 있습니다.Azure SQL - DTU CPU 사용량 차이

필자는 저장된 procs를 통해 다양한 querys 및 끔찍한 데이터 액세스 패턴을 확인 했으므로로드가 줄어 들었습니다. 그러나 아래 이미지의 DTU와 CPU 사용량 사이에는 여전히 엄청난 불균형이 있습니다. azure sql의 "Query Performance Insight"에서 볼 수있는 다른 모든 이미지는 대부분의 경우 CPU 사용량과 일치하는 DTU 라인을 보여줍니다. 응용 프로그램을 사용하는 각 사용자에 대해,이 ontop이 앉아 C#을 응용 프로그램을 보면

DTU (in red) to CPU usage per query

, 그것은 SQL 사용자를 생성하고, 연결 문자열에 사용자가 DB에 접근하는 것을 사용한다. 즉, 연결 풀링이 사용되지 않아 SQL Azure DB에서 많은 수의 활성 사용자/세션이 발생합니다. DTU 사용률이 높은 이유가 이것이 유일한 이유일까요?

아니면 Azure 포털에서 볼 수없는 IO와 관련하여 뭔가를 놓칠 수 있습니까?

감사 닐

편집 : 추가 세션과 노동자 이미지! 그 메신저를 기반으로

enter image description here

지금 convinved하지 ..의 세션 비율 무엇인가? 그것의 10 %가 아니라 10 %가 무엇입니까? 허용되는 최대 값은?

Edit2가 : 자세한 통계를 추가 :

일주일 : enter image description here

2~3시간 부하가 높은 : 이 enter image description here

내가 믿는 보라색 스파이크 그래서 무시할 수 색인화입니다 !

+0

쿼리 저장소에서 가장 많은 CPU 시간을 차지하는 부분을 살펴보십시오. – leppie

+0

그래, 내가 그랬지, 내가 첨부 된 사진에서 볼 수 있듯이 상위 20 개의 쿼리에 대한 CPU 사용량은 약 5-10 % 만 사용하면 DTU 사용량이 항상 약 30 % 높고 때로는 급증하는 것을 볼 수 있습니다 100 % DTU 사용에 가깝게 !! 다른 DB는 DTU와 CPU가 일반적으로 서로를 추적합니다. https://acom.azurecomcdn.net/80C57D/cdn/mediahandler/docarticles/dpsmedia-prod/azure.microsoft.com/en-us/documentation/articles/sql-database -query-performance/20160817102412/performance.png – user1957687

+0

쿼리 ID 122가 61.5 %를 사용 중입니다! 상위 5 개를 합치면 122 개를 향상시킬 수 있는지 85 %가 넘을 것입니다. 가능한 경우 쿼리 계획을 게시하십시오. – leppie

답변

1

DTU와 리소스를 이해하려고 시도하는 것은 저의 걸림돌이었습니다. 리소스 사용률 차트를 클릭하고 편집을 클릭하십시오. default resource chart

그러면 모니터링 할 수있는 많은 리소스가있는 슬라이더가 나타납니다. 세션 및 근로자 비율을 선택하십시오. 이 중 하나 이상이 귀하의 문제입니다. 그렇지 않은 경우 추가 할 수 있습니다 : CPU, 데이터 IO, IO 로그 및/또는 메모리 내 OLTP 비율. OK를 누릅니다.

Resource options

이제, 당신이 찾아야하는 쿼리 또는 쿼리의 실제 비용이다. 쿼리가 다른 리소스를 사용하는 방법을 배우면 이러한 성능 문제를 해결하는 데 도움이 될 수 있습니다. 커다란 인서트를 할 때 이것을 배웠고, Log IO를 최대한 활용하고 있었고 나머지는 모두 < 5 % 사용률이었습니다.

연결 풀링에 대한 의견이 있으면 불행히도 응용 프로그램에서 일부 리팩토링을 의미합니다. 적어도이 기능을 사용하면 DTU 비율을 보는 것보다 더 많은 통찰력을 얻을 수 있습니다!

+0

감사합니다. 확실히보아야 할 것이 있습니다 !! – user1957687

+0

ive 님이 그 이미지를 내 원래 대답에 추가했는데, 어떤 방식 으로든 당신에게 잘못된 것으로 보입니까? 나는 노동자가 약간 높다고 생각한다./ – user1957687

+0

당신의 노동자와 세션은 당신의 원래의 증상을 생각했을 때 기대했던 것만 큼 높지 않다. 피크 기간 중 하나 주변의 다른 백분율 (CPU, 데이터 IO 및 로그 IO)으로 다른 이미지를 수집 할 수 있습니까? 그 중 하나는 마지막 이미지를 기반으로 거의 93.23 %이어야합니다. 가장 높은 리소스를 찾으면 더 이상 문제를 해결할 수있는 방법이 있습니다. –