Провёл скромные испытания железки ssd P4800X на запись. Сколько iops на запись в каких задачах, похожих на настоящие, она выдаёт. Результаты тестирования под катом.

Был куплен сервер с железкой P4800X (об этом можно почитать тут). Основной задачей сервер ещё не нагружен, а посмотреть на что способен ssd диск за 2000$ на 375Gb очень интересно. Замер делался только iops запись.

Для начала я решил сделать тесты на обновления БД. Сделал таблицу с 2мя колонками integer и 2мя колонками string. Сделал 40 потоков (20 физически ядер) которые ковыряли бы БД. В самой БД 40млн строк, каждому потоку по 1млн. Получилось 16170 iops, как видно на графиках.







3 скриншота: iops, cpu-jumps, read-write. За один промежуток времени. Первый блок — это инициализация, как в один поток создавалось 40млн записей в БД. Второй блок — это как они обновлялись в 40 потоков.

Тогда я переделал таблицу на 4 колонки integer — получил уже 19130 iops. Но всё равно далеко до заявленных 500000 iops на запись.







На этих графиках виден кусочек нагрузки из предыдущего теста и также блок с инициализацией и использованием. Удивительно, что замена string->integer дало +15% производительности.

Любопытно, что и в первом и во втором тесте мы упираемся в скорость 400мб/сек скорость записи.

Огорчил меня такой результат, тогда я попробовал делать записи файлов напрямую. Попробовал сделать 40 файликов по 1мб и в 40 потоков писать туда чего-то в случайную позицию. Вот тут эта железка выдала 243110 iops.







Решил не мучать дольше 15 минут — такая нагрузка очень сильно выедает ресурс ssd.

Любопытно, что в этом случае общая скорость записи: 1gb/сек.

Утилизация 100% — то есть больше выжать из данной железки невозможно, возможно мы упираемся в процессор. Куда же делась половина заявленных iops на запись? Возможно я неправильно тестирую? Скорей всего да. Но извините эта железка должна не бэнчмарки гонять, а бизнес-задачу решать. И вот бенчмарк похожий на бизнес-задачу она решает с вот такими характеристиками, как вы видите на графиках.

Далее я попытался сделать замеры на чтение — но 125Gb оперативы свободной кэширует всё что можно. Выедать скриптом память или отключать кэш — посчитал неприемлемым, на сём и успокоился.

Мне до покупки сей железки очень хотелось бы увидеть подобные тесты.

Вот теперь они есть — надеюсь это кому-то поможет.

Сам бэнчмарк тут.

Готов применить ваши нагрузочные скрипты на данной железке.

Комментарии (9)


  1. celebrate
    19.11.2017 18:50

    Дак а fio с direct=1 что показывает ?


  1. Arxitektor
    19.11.2017 20:39

    Тогда я переделал таблицу на 4 колонки integer — получил уже 19130 iops.

    Попробуй прогнать тест на RAM диске. какой результат даст?


  1. VioletGiraffe
    19.11.2017 21:17

    Как память может что-то кэшировать при чтении? Как раз чтение — это и есть реальный бенчмарк, потому что запись можно кэшировать, и обращаться к накопителю уже последовательно. А вот чтение — нет.


    1. ildarz
      20.11.2017 10:47

      Как память может что-то кэшировать при чтении?

      Путем предварительного считывания данных в память. Ваш КО.


      1. VioletGiraffe
        20.11.2017 10:55

        Спасибо, кэп. А как оперативная память может что-то кэшировать при случайном чтении по всему объёму накопителя?


        1. ildarz
          20.11.2017 12:03

          Например, вы думаете, что читаете случайный блок размером 512 байт, а СХД берет и считывает в кэш страйп в 256К. Или, скажем, сервер БД кэширует базы просто при старте.
          Все зависит от того, как, что и чем тестируем, и чистых результатов надо специально добиваться, а не думать, что они сами собой получатся. А то тут иногда попадаются люди, которы с SATA HDD тысячи iops снимают. :)


          1. VioletGiraffe
            20.11.2017 12:12

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


            1. nApoBo3
              20.11.2017 15:30

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


  1. grekazrail
    19.11.2017 21:17

    fio, diskspd, на крайняк iometer… Разные паттерны? Толку от этого обзора, извините, нет.