Чому мій Azure SQL Server такий повільний?


10

Наразі у нас є ВМ, який дуже недооцінений, і пропонуємо перейти до віртуальної віртуальної машини з кращими характеристиками. Проблема в тому, що Azure VM набагато повільніше, ніж оригінальний VM, хоча він має більш високу специфікацію.

Оригінальний сервер - це двоядерний VM з 2 Гб пам'яті, який також є веб-сервером. На ньому працює Microsoft SQL Server Web Edition 2008 R2, і оскільки цей сервер використовується для інших речей, нам довелося обмежити максимальну кількість серверів у SQL сервері до 512 Мб .

Новий сервер - це 4-ядерний VM із 7 Гб пам'яті, який є лише сервером бази даних. Він працює з Microsoft SQL Server Standard Edition 2008 R2, і ми не обмежили об'єм пам'яті, який може використовувати SQL Server.

Це один з двох серверів, створених у дзеркальному середовищі, але база даних, на якій я виконую тести, не відображається. Інші бази даних на цьому сервері наразі не отримують багато трафіку (насправді, Монітор активності не показує активності на інших БД, поки я виконував ці тести).

Я розумію, що проблема з віртуальними машинами Azure полягає в тому, що жорсткі диски - це мережевий ресурс, який би став джерелом сповільнення, але він все ще повільніше, навіть якщо в статистиці IO є 0 фізичних показань.

Я дотримувався порад щодо налаштування на цій сторінці в Azure VM, включаючи зачистку дисків (два диски на диск) та розміщення файлів журналу та даних на окремих накопичувачах.

Єдине, що я не робив - це стиснення сторінок, обмеження автоматичного зростання на базі даних та переміщення журналу помилок сервера SQL та каталогі файлів трасування на диски даних. Я ще не робив цього на старшому сервері.

На старому сервері цього налаштування не було зроблено, і файли журналу та даних знаходяться на одному диску, який не є смугастим.

База даних на поточному сервері становить 65 ГБ (45 даних і 20 журналів), що було трохи занадто великим, щоб перенести на новий сервер, тому я тестую на меншій БД (6 даних та 13,5 журналу)

Результати на старому сервері CPU time = 1311 ms, elapsed time = 1057 ms.та на новому сервері - CPU time = 1281 ms, elapsed time = 2525 ms. це лише один запуск, але результати є репрезентативними для того, що я зазвичай бачу.

Здається, у нового сервера постійно проходить час, значно більший, ніж час процесора. Це питання, і чи можу я щось зробити, щоб відстежити, що його викликає?

Які ще дії можна зробити, щоб дізнатися, чому цей сервер працює так повільно, коли схоже, що він повинен бути швидшим, ніж старий сервер?


1
Maxdop 1? Ви порівняли плани виконання, взяли до і після статистики очікування та перевірили на блокування?
Аарон Бертран

1
Скільки накопичувачів даних? При стандартному сховищі сторінок, кожен накопичувач обмежений меншим рівнем 300 IOPS в базовому рівні або 500 в стандартному, що набагато менше, ніж на попередньому спінінг-диску. Необхідно мати якомога більше дисків (vhd), щоб максимально збільшити IOPS та пропускну здатність. Ви можете використовувати простори зберігання Windows, щоб уникнути необхідності створювати окремий файл даних на кожному диску.
Дан Гузман

У нового сервера є 4 смуги VHD на два накопичувачі, тому у мене є 1000 IOPS для журналів і 1000 IOPS для даних.
Стів Кей

Стандартний VHD-блог для зберігання сторінок забезпечує лише пропускну здатність 30 Мб / сек за рахунок дроселювання, так що це всього лише 60 МБ / сек агрегат. Подумайте про створення ВГД даних до 420 Мб / с та зйомку серед усіх.
Дан Гузман

Я можу мати лише 8 дисків, оскільки це екземпляр A3, тому мені доведеться перейти на A4, щоб зробити те, що вдвічі більше ціни. Я не думаю, що це проблема приводу, хоча, як тести, перш за все, було 0 фізичних показань, перелічених у статистиці IO.
Стів Кей

Відповіді:


2

Що варто, я закінчила зміну VM в Azure з типу A на тип D, а потім приєднала інший диск і перемістила TEMPDB на цей диск. Отже, моя остання VM тепер - стандарт D2 із 7 ГБ оперативної пам’яті та трьома дисками даних, один для файлів MDF, інший для файлів LDF та новий диск TEMPDB.

Я відмовився намагатися зрозуміти з А3 деякі речі, про які ви згадали, і просто оновити віртуальну машину. Я навіть перейшов з A2 на A3, і хоча я знайшов деякі вдосконалення, я в кінцевому рахунку змінився на D2 VM.

У документі, який ви заявили, Microsoft рекомендує D3 для Enterprise Edition або D2 для Web або Standard Edition та використовувати Premium Storage, серед іншого, у контрольному списку на початку документа.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.