Производительность голубые диски, высокая средняя длина очереди

Я сделал, чтобы классический разработчик-системный администратор боролся, где я заявляю, что существует проблема IO на диске общего SQL-сервера, в то время как системный администратор говорит мне, что способность не была достигнута вообще.

1 вещь, на которую я смог указать, состоит в том, что в среднем дисковая длина очереди на SQL-сервере очень высока. В среднем длина очереди имеет в среднем 5 и регулярно пронзает к 10 - 15. Это никогда не достигает ниже 2.5

Системный администратор говорит мне, что это не проблема, потому что диск является дорожкой 6 дисков, и длина очереди по определению плоха, если это выше затем двойная сумма шпинделей. Таким образом, его формула 6*2=12, который ниже затем средние 5.

Его обоснование корректно? Мы можем просто посмотреть на голубой диск как на шпиндель? Константа в среднем длина очереди минуты 5 не является признаком?

Править: Как оказалось, диски были огромным узким местом. Выполнение приложения гладко снова после перемещения баз данных к отдельному серверу базы данных.

3
задан 7 August 2015 в 18:15
2 ответа

Вы немного фокусируетесь на одной метрике!

Диагностика узкого места на одном компоненте редко заканчивается одним счетчиком с полным объяснением.
Есть довольно много отличных руководств для использования perfmon для диагностики проблем с производительностью на SQL сервере.

И, к сожалению, ваш администратор может быть прав, счетчик, который вы выбираете, действительно зависит от оборудования, лежащего в основе. Однако я не могу найти никакой документации, утверждающей, что Azure основан на 6-ти дисковом рейде. Так что, возможно, сосредоточимся на других счетчиках?

  1. Avg. Секунда диска/чтение
  2. Avg. Секунда диска/Запись
  3. Диск Чтение/сек
  4. Диск Запись/сек

Но в качестве окончательной рекомендации. Если ваша единственная рекомендация - это Avg. Disk Queue Length, ваш Сисадмин, вероятно, прав
. Если вы уверены, что это проблема с диском, вы всегда можете попробовать создать места для хранения.

2
ответ дан 3 December 2019 в 05:24

Довольно новое для Azure, но вот мое предложение:

Чем больше дисков Azure, тем лучше будет ваша производительность, это правда. Но я не уверен насчет уравнения. В любом случае, я думаю, что вы лаете не на то дерево...

Azure накладывает искусственные ограничения на такие метрики, как IOPS и Max читает/записывает в секунду, так что длина очереди - это только одна из нескольких метрик, на которые вам нужно посмотреть.

Этот вопрос похож по своей природе на ваш. Он также содержит полезную ссылку на статью Azure SQL performance article. Уверенность в том, что вы будете следовать лучшим рекомендациям Microsoft, может помочь вам улучшить производительность.

Я не уверен, что дальнейшее увеличение количества используемых вами дисков поможет. Из того, что я видел, рост не линейный. Можно ожидать, что IOPS для 6 дисков составит 3000 (6x500), но это больше похоже на 2000

Переход на уровень DS (SSD), возможно, единственный способ получить ту производительность, которую вы ищете, с одной ВМ. Ниже приведена информация о предельных значениях экземпляра Azure: https://azure.microsoft.com/en-gb/documentation/articles/virtual-machines-size-specs/

Наконец, лучший способ улучшить производительность любого приложения - уменьшить зависимость от ввода-вывода. Кэшируйте там, где это возможно. Вы можете попробовать экземпляр с большим количеством памяти.

.
4
ответ дан 3 December 2019 в 05:24

Теги

Похожие вопросы