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

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

Одна вещь, которую я смог указать, это то, что длина очереди диска avg на сервере SQL очень высока. Средняя длина очереди в среднем составляет 5 и регулярно увеличивается до 10-15. Она никогда не достигает 2,5

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

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

РЕДАКТИРОВАТЬ: Как оказалось, диски были огромным узким местом. Приложение снова работает нормально после перемещения баз данных на отдельный сервер баз данных.

2 ответа

Решение

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

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

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

  1. Avg. Диск с / Чтение
  2. Avg. Disk sec/Write
  3. Чтение диска / сек
  4. Диск пишет / сек

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

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

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

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

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

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

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

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

Другие вопросы по тегам