понедельник, 22 марта 2010 г.

Оптимальный stripe-size для RAID-массива

Очень часто задают вопрос о том, как правильно выбрать stripe-size для того или иного массива. Как посчитать, а что будет если на массиве и SQL, и файловый сервер. А если SQL работает с дисками блоками по 8КБ, а RAID-контроллер не позволяет задать такой страйп, то наверное все теперь будет работать неоптимально и вообще наверное нужно искать такой контроллер, где stripe в 8КБ можно задать? На самом деле, все это не совсем так. То что какое-то конкретное приложение общается с дисками блоками по ххКБ вовсе не означает, что именно такой stipe-size будет оптимальным. Поэтому практически всегда на вопрос “как настроить, чтобы было лучше”, следует простой ответ: “оставьте то значение, которое предлагается по умолчанию”. Разработчики прошивки тратят много времени на оптимизацию кода прошивки, тратят много сил на обеспечение высокой производительности. Но все эти оптимизации наилучшим образом работают как раз на выбранных в качестве “default” значениях. До недавнего момента я все это говорил, ссылаясь исключительно на свое понимание вопроса, но на днях представитель Adaptec в своем блоге разместил точно такой же совет:

While there is credibility in doing the maths and trying to match the stripe size to the OS/application requirements, the reality is that the defaults will “normally” walk all over specifying a particular size. Why? Because our engineers spend a lot of time in making the defaults work best. We aim to make an out-of-the-box experience for the majority of users, and put a lot of effort into making the product work without a user having to be a rocket scientist to use it.

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

P.S. Здесь речь идет о внутренних RAID-контроллерах. В “больших” системах есть свои особенности, связанные с работой кэша, и там оптимизация настроек может дать более заметный эффект.

4 комментария:

  1. Небольшое замечание:
    Дефолтные настройки расчитаны на типовые диски, но если иметь ввиду диски с размером блока 4KB, как последние WD, или (особенно) SSD, то предусматриваемая производителем возможность изменения размера страйпа очень полезна...

    ОтветитьУдалить
  2. Дефолтный страйп у адаптека и так 256к...

    ОтветитьУдалить
  3. Анонимный25 мая 2010 г., 19:30

    А вот у меня, почему то, на nforce 4 Ultra, стандартный размер чередования 64 КБ

    ОтветитьУдалить
  4. Значит так нравится его разработчикам. Хотя сравнивать софтовую поделку с нормальным контроллером имхо не стоит...

    ОтветитьУдалить