Главная > vWorld, Железо > IOPS быстрый расчет СХД для виртуальной инфраструктуры

IOPS быстрый расчет СХД для виртуальной инфраструктуры

На днях достаточно долго не мог понять причину постоянного снижения производительности всей фермы серверов. Проблема оказалась банальной и простой для решения — система хранения данных не обеспечивала должного быстродействия и поэтому «тормозили» абсолютно все сервера одновременно, при этом графики нагрузки ЦП и памяти были абсолютно стабильны без пиков.

Как быстро проверить свою СХД? Много ли еще серверов можно подключить к существующей СХД? Если Ваша инфраструктура серверов малых или средних размеров, то для оценки быстродействия СХД подойдет очень простой алгоритм.

Первое, что следует понять, я не ставлю задачу получить абсолютно точные данные, задача именно оценить возможности инфраструктуры и СХД. Для точного расчета придется погрузится в тему очень глубоко или доверить расчет СХД профессионалам.

Оценка нагрузки на СХД

Для начала оценим, какую нагрузку генерируют наши сервера. Условно разделим их на три группы: высоко нагруженные, средне нагруженные и низко нагруженные. Например, SQL cерверпостоянно обслуживает тысячи запросов от пользователей и содержит десяток баз данных, такой сервер логично отнести к высоко нагруженным. Другая крайность  — контроллер домена. Если у вас 100-200 пользователей, которые периодически входят/выходят из системы, то полностью  нагрузить они сервер не смогут, и скорее всего, доменный контроллер будет простаивать 80% времени.

Поделив все сервера на три группы сделаем элементарный рассчет:

HighLoad x 50 = IOPS1
MedLoad x 30 = IOPS2
LowLoad x 25 = IOPS3

IOPSNEED = IOPS1+IOPS2+IOPS3

Сложив  три числа получим расчетное количество IOPS (IOPSNEED), которое потребляют наши сервера.

Оценка возможности СХД

Мы получили расчетное значение нагрузки, остается понять, обеспечивает ли нужный уровень быстродействия наша СХД?

Хороший SAS Fibre Channel диск выдает примерно 180 IOPS, SATA — всего 80 IOPS. Данные значения актуальны для одного единственного диска подключенного напрямую. Естественно в СХД используются массивы RAID. Стандартный профиль нагрузки 50/50 чтение/запись.  Но в зависимости от назначения использования пропорция может меняться, но для оценки будем придерживаться этого.

Общая формула:

GroupIOPS = (DiskPerf/2 + DiskPerf/2K) * N,

где DiskPerf — производительность диска в IOPS,
K — коэфициент «сложности», характеризует величину накладных расходов на поддержание требуемого уровня массива. Для RAID10 К=2, для RAID5 K-4, для RAID6 K=6,
N — количество полезных дисков в массиве, без учета данных четности. (для RAID5 от общего числа дисков отнимаем один, для RAID6 — два).

Рассчитаем производительность RAID группы из 8 SAS FC дисков в массиве RAID 10.

GroupIOPS = (180/2 + 180/2/2) * 8 = (90 + 45)*8 = 135 *8 = 1080 IOPS

Много это или мало? Давайте обратимся к первому пункту и посмотрим на сколько серверов хватит нашей СХД.

1080/50 = 21 высоко нагруженный сервер
1080/30 = 36 средне нагруженных серверов
1080/25 = 43 ленивца.

P.S. Я также нашел интересный инструмент расчета IOPS, который, возможно, дает более оптимистичные показатели http://wmarow.com/strcalc/.

Categories: vWorld, Железо Tags: , ,
  • http://it-mike.blogspot.com Михайлов Михаил

    Хорошая статья Дима, воспользуюсь ей для обсчёта нагрузки:))

  • DenisO

    Остался вопрос — чем мерять IOPS-ы. Скажем, SQLIO, очень сильно зависит от параметров, и может показывать погоду на марсе, вместо реальной производительности. В идеале, хотелось бы инструмент с одной кнопкой — замерять производительность. А он уж пускай сам гоняет систему с разным характером нагрузки. Есть рекомендации?

  • http://dimka.yz74.ru dimka

    IOMETER — единственная рекомендация, но по поводу одной кнопки «мимо». Придется понять как он работает. IOMETER общепризнанный стандарт для измерения IOPS

  • Mr Markov

    В общем и целом, банально (но очень правильно) нагрузку показывает счетчик средней длинны очереди (стандартный счетчик в Вин) к диску, его можно записать за некоторый временной интервал, а затем просто посмотреть среднее значение. Просто получите правильную стат картинку. Если длинна средней очереди больше 1 то диски не успевают за системой — если это происходит на некотором промежутке времени — имеем тормоз для этого сервера.
    ПС. Дмитрий, спасибо за интересный блог.

  • http://dimka.yz74.ru dimka

    Mr Markov :
    В общем и целом, банально (но очень правильно) нагрузку показывает счетчик средней длинны очереди (стандартный счетчик в Вин) к диску, его можно записать за некоторый временной интервал, а затем просто посмотреть среднее значение. Просто получите правильную стат картинку. Если длинна средней очереди больше 1 то диски не успевают за системой – если это происходит на некотором промежутке времени – имеем тормоз для этого сервера.
    ПС. Дмитрий, спасибо за интересный блог.
    VA:F [1.9.3_1094]Rating: 0 (from 0 votes)

    Вы абсолютно правы, но задача определить возможности хранилища данных. Обычно на них таких счетчиков нет.

  • Mr Markov

    не в полемику — забавы ради.
    Здесь просто — складываем все счетчики по серверам…
    Если к СХД подключено несколько серверов то дисковые операции тормозят сразу на всех одинаково (примерно — с учетом особенностей Р/В конечно ). Т.е если СХД уже есть то счетчики покажут сообразность ее уровня текущей нагрузке — можно грузить дальше или пора добавлять шпиндели.
    Более серьезная проблема — планирование перед покупкой — как правило покупаешь кота в рекламном мешке. Здесь или брать в тест или узнавать у коллег у кого есть такой зверь. У меня например есть EVA4400 на 10 шпинделей по 10к.

  • Артём

    А как считать «IOPS потребляемый» на данный момент? ну или за день к примеру одного физического сервера, что бы прогнозировать сколько надо IOPS от СХД для всей виртуальной среды.

  • http://dimka.yz74.ru Дмитрий

    PerfMon

  • Артём

    Не всегда реальные значения , например когда стоит касперски, счетчики выдают нереальные IOPS в 1900, 2400 из 2 дисков в RAID1

  • Alex

    Спасибо за статью! Очень полезная инфа. Только я не совсем понял почему у вас конфиг на 5м рейде более производителен, чем на 6м.
    «RAID5 K-4, для RAID6 K=6″ По идее 6й рейд должен быть более шустрым из за дополнительного xor диска.

  • Pingback: IT-безопасность » IOPS быстрый расчет СХД для виртуальной инфраструктуры