У меня было 4 диска в наборе RAID10 и 2 запасных диска. Мы отслеживали счетчик среднего диска в секундах на передачу (чтение и запись) perfmon. Мы купили еще 2 диска, восстановили набор RAID10, используя 6 дисков (2 участка), и производительность осталась прежней. Есть ли какое-то ограничение, что RAID10 улучшается только на основе 4-х кратных дисков (4, 8, 12 и т. Д.)?
Я использую Dell R510. Это SQL-сервер. мы сохранили те же файлы на томе.
Я использую энергонезависимую кеш-память Dell Perc H700 1 ГБ.
ADs / T составляет около 200 мс.
Это диски sas 15к по 600гб
Я не знаю, как контроллер Dell PERC определяет пролеты. Он просто спрашивает, сколько дисков я хочу в диапазоне (2 или 3 в данном случае).
Мы добавили шпиндели для увеличения общего времени транзакции. мы перешли с RAID1 на RAID10 (4 диска), и производительность увеличилась вдвое. мы надеялись на 33% прирост. ADs / T рекомендуется не более 20 мс. мы находимся на 100. мы понимаем, что мы не собирались дойти до 20, добавив 2 диска, но поскольку до того, как я был здесь, они были на 400 мс, они будут в порядке в 50-60-х годах.
переводы в секунду около 850
Я понимаю логику добавления дисков, не ускоряющую отдельную передачу данных с данного диска. Но для всех намерений и целей ADs / T (или чтение или запись тоже) является мерой количества времени, которое требуется, чтобы что-то сделать с данным диском / томом в соответствии с Windows. Таким образом, если вся транзакция занимает 40 миллисекунд, но на самом деле она записывается на 4 диска, теоретически она тратит 10 мсек на диск, если выполняется параллельно. Всегда есть шанс, что он записывается так быстро, как только может на один диск, а затем переходит на следующий, но как кто-то может определить, что он делает?
так что время, необходимое для 4 дисков, должно быть пропорционально 6 дискам. окна должны видеть это быстрее, даже если диск достиг максимального потенциала, каждый диск не будет быстрее.
ssd не подходит для нас из-за большого размера наших индексов, общего пространства, которое нам нужно для всех наших файлов sql, и стоимости. Размеров SSD пока нет, хотя для файлов меньшего размера это может иметь смысл.
Если добавление дисков не поможет улучшить скорость, как еще можно объяснить увеличение производительности на 50% при переходе с 2 на 4 диска и ничего при переходе с 4 на 6?
Вам следует глубже изучить статистику производительности SQL, а также статистику дисков. Если у вас много подключений, можно создать несколько файлов TempDB меньшего размера. (читайте об этом, это было для нас большим достижением. http://msdn.microsoft.com/en-us/library/ms175527.aspx) Если у вас коэффициент буферного кэша ниже 93, вам может потребоваться больше памяти. Одной статистики недостаточно, чтобы диагностировать проблему. Существует несколько способов очистки памяти.
Если установлено значение 2008, используйте монитор ресурсов, чтобы определить, какие файлы БД являются самыми загруженными. Установка их на разные шпиндели - лучшее решение для повышения производительности. В частности, если у вас много операций чтения и записи, а не в основном операций чтения, вам следует подумать о том, чтобы получить второй контроллер диска, пару небольших внешних дисков 15 КБ и удалить файлы LOG и TempDB с диска с данными на нем.
Вы можете быть ограничены своей шиной, также подумайте о приобретении многополосного кабеля для увеличения пропускной способности.
Возможно, вы столкнетесь с проблемой шиной или даже процессором, когда сможете обрабатывать данные. Если это действительно узкое место, вы захотите получить еще одну машину, вытащив 2 диска, которые вы добавили, и добавив их в raid10 на другой машине.
На этом этапе вы должны настроить параллельную файловую систему на двух RAID на машинах для дальнейшего повышения производительности (вы должны увидеть значительное увеличение скорости чтения и записи данных)
Все приведенные выше комментарии, особенно "маленький грязный секрет", находятся в процессе.
Советы по производительности SQL RE disk system см. https://serverfault.com/a/359689/13716
Маленький грязный секрет RAID:
Добавление дополнительных дисков увеличивает производительность только в том случае, если узким местом была очередь из-за слишком большого количества задач и недостатка дисков. Это не делает отдельные диски быстрее и фактически увеличивает накладные расходы. В конце концов, чтение данных с диска работает точно так же, как и раньше, и на это уходит столько же времени. Разница в том, что вы можете делать это на нескольких дисках одновременно - что помогает только в том случае, если вы загружаете все диски.
Переход на более скоростной диск (например, SSD), вероятно, немного поможет. Один SSD может превзойти целую коробку с винчестерскими дисками, если проблема заключается в задержке и времени поиска.
Интересное решение, которое все еще находится в стадии разработки, но уже показывает многообещающие результаты, - это решение Facebook. flashcache модуль. Это только Linux, но опять же, если производительность является проблемой, вам все равно не следует использовать Windows. Некоторые тесты, проведенные Вадимом Ткаченко в Percona, показывают, что flashcache может помочь вам около 99% производительности работы на SSD с минимальными затратами - при условии, что ваше распределение попаданий неравномерно распределяется по всему набору данных.