Освен ако не сте положили съгласувани усилия да го игнорирате, може би сте чували, че Microsoft наистина например да преместите голяма част от инфраструктурата на базата данни на SQL Server в център за данни на Microsoft, независимо дали отивате в Azure SQL база данни (която наскоро обсъдих тук), или дали я хоствате на Windows Azure виртуална машина. Microsoft нарича тези постоянни виртуални машини изчислителни екземпляри , и те имат две основни нива, от които да избирате, които включват Basic Compute Tier и Standard Compute Tier. Те описват тези две нива като:
Основно изчислително ниво :Това ново ниво на изчислителни екземпляри е подобно по конфигурация на стандартното ниво с по-ниски цени. Тези случаи не включват балансиране на натоварването и автоматично мащабиране. Те са много подходящи за производствени приложения с един екземпляр, работни натоварвания за разработка, тестови сървъри и приложения за пакетна обработка, които може да не изискват тези функции. Основното изчислително ниво в момента е достъпно само за екземпляри с общо предназначение. Тези случаи варират от Basic A0 до Basic A4.
Стандартно изчислително ниво :Това ниво на изчислителни екземпляри осигурява оптимален набор от изчислителни, паметни и I/O ресурси за стартиране на широк спектър от приложения. Тези случаи включват както възможности за автоматично мащабиране, така и за балансиране на натоварването без допълнителни разходи. Стандартното изчислително ниво е налично в екземпляри с общо предназначение, интензивно с памет и интензивно изчисление. Тези случаи варират от стандарт A0 до стандарт A7.
Има няколко важни предимства за хостване на вашата инфраструктура на SQL Server на Windows Azure виртуална машина. Първо, нямате капиталови разходи за съхранение или хардуер, както и текуща поддръжка на хранилището или хардуера. Второ, нямате разходи за лиценз за ОС или SQL Server (когато използвате SQL изображение от стандартната галерия на Azure VM). Трето, можете да създадете нова Azure VM, която вече има инсталиран SQL Server за няколко минути (въпреки че може да отнеме малко повече време, за да конфигурирате напълно операционната система и екземпляра на SQL Server според вашите точни изисквания). Занапред все още ще зависи от вас да инсталирате актуализации на Windows и SQL Server, но няма да се налага да се притеснявате за неща като актуализации на фърмуер, BIOS или драйвери.
Ако искате да използвате виртуални машини на Windows Azure за хостване на цялата или част от вашата инфраструктура на SQL Server, трябва да сте наясно с текущите подробности за цените, които са налични за конкретния център за данни Azure, който искате да хоствате вашите виртуални машини, тъй като ценообразуването може варират в различните центрове за данни на Microsoft. Понастоящем Microsoft има 13 различни размера на виртуални машини на Windows Azure, както е подробно описано в тяхната страница за виртуална машина и облачни услуги за Azure. На 1 май 2014 г. Microsoft намали почасовите цени за интензивните инстанции с памет (Standard A5, Standard A6 и Standard A7) с 18% в повечето си центрове за данни, а цените, показани в таблица 1, отразяват тези нови, по-ниски цени.
Едноядрен и многоядрен резултат в двете десни колони на Таблица 1 са средните резултати, които наблюдавах с помощта на 32-битовата версия на процесора Geekbench 3.05 и сравнителния тест на паметта на примерен Windows Server 2012 R2 Datacenter Виртуална машина в центъра за данни в източната част на САЩ. Тези резултати може или не могат да бъдат представителни за това, което ще видите.
Размер на VM | Ядра на процесора | Памет (GB) | Почасова цена | Месечна цена | Едноядрен резултат | Многоядрен резултат |
---|---|---|---|---|---|---|
Основно A0 | 1 (споделено) | 0,75 | 0,018$ | ~14$ | 507 | 498 |
Основно A1 | 1 | 1,75 | $0,074 | ~56$ | 679 | 670 |
Основно A2 | 2 | 3,50 | 0,148$ | ~111$ | 709 | 1358 |
Основно A3 | 4 | 7,00 | $0,296 | ~221$ | 717 | 2472 |
Основно A4 | 8 | 14.00 | $0,592 | ~441$ | 724 | 4042 |
Стандарт A0 | 1 (споделено) | 0,75 | 0,020$ | ~15$ | 492 | 502 |
Стандарт A1 | 1 | 1,75 | 0,090$ | ~67$ | 1068 | 1083 |
Стандарт A2 | 2 | 3,50 | 0,180$ | ~134$ | 1069 | 2002 |
Стандарт A3 | 4 | 7,00 | 0,360$ | ~268$ | 1070 | 3593 |
Стандарт A4 | 8 | 14.00 | $0,720 | ~536$ | 1094 | 6446 |
Стандарт A5 | 2 | 14.00 | 0,330$ | ~246$ | 1080 | 2026 |
Стандарт A6 | 4 | 28,00 | 0,660$ | ~492$ | 1080 | 3686 |
Стандарт A7 | 8 | 56,00 | $1,320 | ~983$ | 1056 | 6 185 |
Таблица 1:Избрани спецификации на виртуална машина за Windows Azure в източния център за данни на САЩ
В момента Microsoft разполага с девет центъра за данни, които могат да хостват нови постоянни виртуални машини, които включват Източна САЩ, Западна САЩ, Бразилия Южна (Преглед), Северна Европа, Западна Европа, Източна Азия, Югоизточна Азия, Западна Япония и Източна Япония. Според Microsoft „A1 е най-малкият размер, препоръчан за производствени натоварвания“ и трябва да изберете „виртуална машина с 4 или 8 ядра на процесора, когато използвате SQL Server Enterprise Edition“. Една полезна, макар и донякъде остаряла справка за изпълнение на SQL Server на виртуална машина с Windows Azure е Ръководството за производителност за SQL Server във виртуални машини на Windows Azure, което беше публикувано през юни 2013 г.
Характеристики на виртуалната машина на Windows Azure
Когато погледнете свойствата на CPU в раздела Performance в Windows Server 2012 R2 Task Manager (на фигура 1 и фигура 2), ще забележите, че той съобщава, че използва сравнително стар, 45nm AMD Opteron 4171 HE процесор, работещ на скорост от 2,1 GHz. Този конкретен шестядрен процесор беше представен през юни 2010 г., като част от семейството на Lisbon с два сокета. Суфиксът HE означава, че това е енергийно ефективен модел с "ниска мощност", който не е добър избор за използване на SQL Server, тъй като отстъпва значително количество производителност при сравнително малко намалено потребление на енергия. След като се разрових, ми казаха, че този процесор е специален OEM процесор за центрове за данни на Microsoft.
Фигура 1:Основна виртуална машина A0 в източните данни на САЩ. Център
Фигура 2:Стандартна виртуална машина A7 в източните данни на САЩ Център
Другият голям проблем с този процесор, освен възрастта му и сравнително лошата еднонишкова производителност, е фактът, че има само шест физически ядра. Това е проблем с размерите на Basic A4, Standard A4 и Standard A7 VM, които имат два NUMA възела и общо осем физически ядра. Това би означавало, че VM с такъв размер ще пресече NUMA възел на основния физически хост, което не е добра идея за производителността на паметта. Трудно ми е да повярвам, че Microsoft ще направи това нарочно. Също така ми е трудно да повярвам, че всяка една Azure VM във всеки един център за данни, който съм пробвал досега, използва същия стар AMD процесор. Доста общоизвестно е, че Microsoft има поне три различни поколения хардуер (Gen 1, Gen 2 и Gen 3), които са използвали досега в своите центрове за данни Azure, предлагайки различна производителност на VM. След още няколко запитвания открих, че този процесор AMD Opteron 4171 HE е процесор Azure Gen 2.
Можете да разгледате онлайн базата данни на Geekbench 3 с качени резултати от сравнителния анализ, като търсите системи, използващи процесора AMD Opteron 4171 HE тук. Може да забележите, че всеки един резултат за този процесор изглежда е за виртуална машина на Microsoft, което също е доста любопитно. Windows Server 2012 R2 Task Manager отчита L1 кеша като „N/A“ и дори не изброява размерите на кеша L2 и L3 на тези Azure VM. Друго любопитно доказателство е фактът, че стандартните инстанции имат около 50% по-високи резултати от Geekbench 3 от еквивалентните основни инстанции, когато имат абсолютно същия общ брой процесорни ядра и размери на паметта, както за едноядрен резултат, така и за многоядрен резултат. Тази голяма разлика няма никакъв смисъл, ако основната хост машина всъщност използва същия процесор.
Резюме
Всички тези доказателства първоначално ме доведоха до заключението, че Microsoft вероятно прикрива действителния процесор в хост машината. Мислех, че може да правят това, за да се опитат да попречат на хората да предоставят нарочно множество виртуални машини, докато не им се случи, че виртуалната машина работи на по-нов, по-бърз, хост хардуер. Оказва се, че Microsoft не е толкова умен. Бях уверен, че Microsoft не променя самоличността на процесора в Azure VM. Има по-нови Azure Gen 3 процесори, които може да получите в Azure VM, докато предоставяте нови VM в бъдеще. Друга възможна причина за моите резултати беше, че те вероятно използват някакъв вид управление, за да ограничат производителността на VM до надеждно, еднакво ниво, независимо от основния хардуер на хоста, така че да могат да хостват повече VM на по-малко хардуер с течение на времето. Това би било интелигентен начин на действие за IaaS хостер.
Сравнително ниските резултати в Geekbench 3.05 (вижте фигура 3) дори за най-големите Azure VM означават, че се отказвате от значително количество производителност на процесора и паметта в сравнение с еквивалентен физически сървър с два сокета със същия брой процесорни ядра и памет.
Фигура 3:32-битови резултати от Geekbench 3.05 за стандарт Виртуална машина A4 в център за данни на Източен САЩ
Много работни натоварвания на SQL Server ще работят перфектно с това ниво на производителност на VM, макар и малко по-бавно, отколкото може да сте свикнали. Ако вземете предвид спестяванията на лиценз за SQL Server 2014 Enterprise Edition от осемядрена машина, плюс капиталовите разходи за скромен сървър с два сокета и свързаното с него съхранение, можете да си позволите да стартирате стандартна виртуална машина A7 24×7 за около пет до шест години. Като се има предвид този вид възвръщаемост на инвестициите, виждам, че много организации вземат икономическо решение да преместят поне част от своята SQL Server инфраструктура към Azure Virtual Machines. Докато работното ви натоварване може да работи на 56GB или по-малка виртуална машина и стига да има по-ниска производителност на процесора и паметта от типичен скорошен винтидж лаптоп също е приемливо, това е рационален начин на действие. Microsoft наскоро обяви наличието на по-големи, много по-бързи A8 и A9 VM Compute Intensive Instances, които използват процесори Intel Xeon E5-2670. Това ще бъде огромно подобрение в производителността спрямо процесорите Azure Gen 2.
Ще разгледам I/O производителността във виртуалните машини Azure в предстояща статия.