Наразі у нас є ВМ, який дуже недооцінений, і пропонуємо перейти до віртуальної віртуальної машини з кращими характеристиками. Проблема в тому, що 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.
це лише один запуск, але результати є репрезентативними для того, що я зазвичай бачу.
Здається, у нового сервера постійно проходить час, значно більший, ніж час процесора. Це питання, і чи можу я щось зробити, щоб відстежити, що його викликає?
Які ще дії можна зробити, щоб дізнатися, чому цей сервер працює так повільно, коли схоже, що він повинен бути швидшим, ніж старий сервер?