Чому мій 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.