דילוג לתוכן הראשי

Azure SQL DB tiers comparison

Hi All
In the last few month Brent Ozar gae us 2 masterpiece blogs related to Azure SQL DB:
 
 
In this blog Brent compared the abilities of Azure SQL DBs to load Data - he compared all combinations of vCors tiers. (When I asked him about comparing the Standard\Premium tiers, he told me to do it.... :-) )
 
 
In this blog Brent showed us that in the vCors world the storage throughput has limit and there is not need to pay so much money when you need to upload lots of data.
 
So I took have taken up his challenge and done a comparison in Azure SQL DB in Standard\Premium tiers.
I have created a new DB with 1 Table.
I have generated 7 GB of DATA, and created the file in my local on premise drive (Yes, do not kill me, I did not had the time to put it on azure), and uploaded it via BCP command.
 
bcp "TableName" in "T:\MyTable.bcp"  -S"myservername.database.windows.net" -UUserName@myservername -P"Password" -n -d"DBName"
 
After each test I have truncate the table and changed the tier.
 
Here are the main results:
  
 
Rows/second
Time(MS)
Cost per month
S2
             4,071
           18,184,812
 $                    73.0
S4
             4,083
           18,129,531
 $                  294.0
S6
             9,007
              8,219,047
 $                  588.0
S9
           18,733
              3,952,062
 $              2,354.0
S12
           15,054
              4,917,703
 $              4,415.0
P1
             3,670
           20,168,375
 $                  456.0
P4
           22,851
              3,239,875
 $              1,825.0
P11
           22,188
              3,336,688
 $              6,868.0
P15
           24,487
              3,023,344
 $            15,698.0
 
It is clearest to see if we view the results in a chart of cost vs Rows\Second.
 
 
What does the Charts shows us?
Most cost effective is S9 tier, but as we would expect P15 is the fastest  
 
Below are various graphs of resource utilization for each tier.
 
S2 tier Log IO and Data IO took time
 
 
S4 Had only LOG IO issues
 
S6 - the same chart.
 
S12 Log IO is 100% and I have also added the DTU.
P4 looks the Same


 
 
P11 start to change Log IO was 100% only for a short time
 
 
P15 \ P11 \ P4 on the same Chart
 
 
 
In conclusion - Just as Brent found, Log IO is the bottleneck, the storage write operations. 
Log IO is the bottleneck but you get what you pay for, the more you pay the more I/O. Therefore the effects of the Log IO bottleneck are reduced the more resources/money you throw at the problem.
 
Next time I will test reads operations and CPU's
 
Have a good day.

תגובות

  1. as I can see in your data(and base on some of my experience),
    as you said, the most cost effective is the S9 tier.
    there is not much difference compare to the higher Px tiers, certainly not something that worth the cost.

    השבמחק

הוסף רשומת תגובה

פוסטים פופולריים מהבלוג הזה

ועוד קצת על ניהול פיתוח לענן

היום עקב תקלה קטנה מול מיקרוסופט בוצע disable לחשבון. הדבר גרם לאתר לא לעבוד וכמובן 3 רולים נוטרלו. כשחזרו לחיים נדרשנו לעשות מחדש deploy ל 3 הרולים. (רוצים הסבר קטן לעבודה על הענן? ובכן תמצית הדבר הוא שכשאנו עוקפים נהלים שאנו יצרנו בשרתים שלנו מיקרוסופט - לא מרשים לעקוף וכך הכל חייב להתנהל לפי הספר... מה שתעלה לענן זה מה שירוץ ואם תשנה - השינויים יימחקו...) הבעיה החלה כאשר הסתבר שלא כל קבצי ה deploy נשמרו על מכונת הגירסה וכי אחד הקבצים שודרג לגירסא חדשה שטרם עלתה לענן.... הדבר גזל 4 שעות בנסיון להחזיר את הגירסה... מסקנתי היא כי חייב להיות נוהל שמירת קבצי deploy מיד אחרי העלתם לענן - ובכך לשמור גיבוי לעת צרה - נכון - אל תצעקו עליי - בוצע לייבל ב TFS - ואפשר למשוך ולקמפל - אבל תראו לי עובד אחד שעשה את זה תוך חמש דקות....? יש לציין לטובה את ה SQL Azure - שלו - לא קרה כלום כל העת... כל הכבוד ל SQL... ובנימה יותצר רצינית - אל תשכחו לגבות כל מה שעולה ... - במיוחד אצלך . אגב בענן עצמו - זה כבר יגובה אל דאגה... ערב טוב

על בעיות של ניהול פיתוח לענן

על ניהול סביבת פיתוח מול הענן:   הבעיה המרכזית בניהול פיתוח לענן שייכת לתחום הבדיקות  - שום ענן מקומי ושם אימולטור אינו מדמה במאה אחוזים את מה שקורה בענן עצמו. בכל רכיבי הבדיקות, על בעיה זו ניתן להתגבר בשיטת עבודה טובה והקמת מערכת בדיקות בענן עצמו. על ניהול גרסאות מול הענן:    במידה ואתם עובדים מול לקוחות רגילים ומול לקוחות הרוצים מוצרים בענן  - מהי הדרך הטובה ביותר לנהל את הפיתוח כך שאפשר יהיה לתחזק את שתי המערכות ואת שתי סביבות הבדיקות? אפשר לומר כי מטרת מנהל הפיתוח היא להקים סביבת פיתוח אחת - אם הדבר לא אפשרי צריך למצוא את הפתרון לסינכרון 2 הסביבות. Check List -   למנהל המבולבל - מה הצוות צריך לבצע לפני העלאה לענן: על הפרוייקט להיות מקומפל בסביבת VS2010 - רצוי 64 Bits ולא 32. יש להריץ בענן מקומי (אימולטור) ולראות שהכול עובד כהלכה במידה ואתה משתמש ב Registery או ב Event Log עליך ליצור קובץ StartUp command שבעצם ירוץ בעליית ה Role וייצור את מה שצריך במחשב המיועד לך בענן. יש ליצור חבילה להעלאה - רצוי לשמור חבילה זו עם מספר ותיאור כללי. יש להעלות את החבילה ולבדוק שהכול רץ ועו