[Документация](../../README-ru.md#документация) → Производительность → Более новый тест Vitastor 1.3.1

-----

[Read in English](bench2.en.md)

# Более новый тест Vitastor 1.3.1

- [Описание стенда](#описание-стенда)
- [Примечания](#примечания)
- [Производительность голых дисков](#производительность-голых-дисков)
- [2 реплики](#2-реплики)
- [3 реплики](#3-реплики)
- [EC 2+1](#ec-2-1)

## Описание стенда

Железо: 3 сервера, в каждом:
- 8x NVMe Samsung PM9A3 1.92 TB
- 2x Xeon Gold 6342 (24 ядра @ 2.8 GHz)
- 256 GB RAM
- Двухпортовая 25 GbE сетевая карта Mellanox ConnectX-4 LX с поддержкой RoCEv2
- Подключение к 2 коммутаторам Mellanox SN2010 в MLAG

## Примечания

Версия Vitastor 1.3.1.

Тесты проводились с самих серверов хранения - по 4 клиента fio с каждого из 3 серверов.

Тестировался один большой образ размером 3 ТБ со всех хостов - создавать отдельные образы
для тестов в Vitastor необязательно, т.к. в Vitastor нет замедления при записи в один
узел несколькими клиентами.

Экономия энергии CPU отключена. На каждый NVMe создавалось 4 OSD.
Контрольные суммы не включались. Тесты с контрольными суммами будут проведены
позднее. Тогда же будет протестирована более новая версия Vitastor, и результаты
будут обновлены.

Конфигурация CPU стенда неоптимальна из-за NUMA - двухпроцессорных серверов лучше
избегать. Особенно это проявлялось во время тестов с RDMA - выражалось это в потреблении
100% одного ядра CPU одним процессом ksoftirqd и работой одного из двух сетевых портов
на скорости 3-5 ГБит/с вместо 25 ГБит/с - предположительно, из-за "непопаданий" RFS
(Receive Flow Steering) на нужные ядра. Решить эту проблему во время проведения тестов
не получилось. Было перепробовано множество различных настроек, но в итоге тесты проведены
с настройками по умолчанию, т.к. улучшения добиться не удалось.

# Производительность голых дисков

- Линейная запись ~1000-2000 МБ/с, в зависимости от состояния сборщика мусора диска
- Линейное чтение ~3300 МБ/с
- T1Q1 запись ~60000 iops (задержка ~0.015ms)
- T1Q1 чтение ~14700 iops (задержка ~0.066ms)
- T1Q16 запись ~180000 iops
- T1Q16 чтение ~120000 iops
- T1Q32 запись ~180000 iops
- T1Q32 чтение ~195000 iops
- T1Q128 запись ~180000 iops
- T1Q128 чтение ~195000 iops
- T4Q128 запись ~525000 iops
- T4Q128 чтение ~750000 iops

Из данных цифр очевидно, что при наличии более быстрой сети результаты были бы
значительно лучше, так как в диски тест, очевидно, не упирался. Например, теоретический предел по
линейному чтению для 24 таких дисков был бы около 79.2 ГБайт/с, то есть,
633 гигабита в секунду. Реальная скорость чтения (и случайного, и линейного)
Vitastor составила примерно 16 ГБайт/с, то есть 130 гигабит в секунду. При этом
следует заметить, что этот результат всё равно значительно лучше пропускной способности
сети отдельно взятого узла - что тоже вполне логично, так как тест выполнялся со
всех трёх узлов.

## 2 реплики

|                              | TCP          | RDMA         |
|------------------------------|--------------|--------------|
| Линейное чтение (4M T6 Q16)  | 13.13 ГБ/с   | 16.25 ГБ/с   |
| Линейная запись (4M T6 Q16)  | 8.16 ГБ/с    | 7.88 ГБ/с    |
| Чтение 4k T1 Q1              | 8745 iops    | 10252 iops   |
| Запись 4k T1 Q1              | 8097 iops    | 11488 iops   |
| Чтение 4k T12 Q128           | 1305936 iops | 4265861 iops |
| Запись 4k T12 Q128           | 660490 iops  | 1384033 iops |

Потребление CPU OSD на 1 диск:

|                              | TCP     | RDMA    |
|------------------------------|---------|---------|
| Линейное чтение (4M T6 Q16)  | 29.7 %  | 29.8 %  |
| Линейная запись (4M T6 Q16)  | 84.4 %  | 33.2 %  |
| Чтение 4k T12 Q128           | 98.4 %  | 119.1 % |
| Запись 4k T12 Q128           | 173.4 % | 175.9 % |

Потребление CPU на 1 клиента (fio):

|                              | TCP    | RDMA   |
|------------------------------|--------|--------|
| Линейное чтение (4M T6 Q16)  | 100 %  | 85.2 % |
| Линейная запись (4M T6 Q16)  | 55.8 % | 48.8 % |
| Чтение 4k T12 Q128           | 99.9 % | 96 %   |
| Запись 4k T12 Q128           | 71.6 % | 48.5 % |

## 3 реплики

|                              | TCP          | RDMA         |
|------------------------------|--------------|--------------|
| Линейное чтение (4M T6 Q16)  | 13.98 ГБ/с   | 16.54 ГБ/с   |
| Линейная запись (4M T6 Q16)  | 5.38 ГБ/с    | 5.7 ГБ/с     |
| Чтение 4k T1 Q1              | 8969 iops    | 9980 iops    |
| Запись 4k T1 Q1              | 8126 iops    | 11672 iops   |
| Чтение 4k T12 Q128           | 1358818 iops | 4279088 iops |
| Запись 4k T12 Q128           | 433890 iops  | 993506 iops  |

Потребление CPU OSD на 1 диск:

|                              | TCP    | RDMA    |
|------------------------------|--------|---------|
| Линейное чтение (4M T6 Q16)  | 24.9 % | 25.4 %  |
| Линейная запись (4M T6 Q16)  | 99.3 % | 38.4 %  |
| Чтение 4k T12 Q128           | 95.3 % | 111.7 % |
| Запись 4k T12 Q128           | 173 %  | 194 %   |

Потребление CPU на 1 клиента (fio):

|                              | TCP    | RDMA   |
|------------------------------|--------|--------|
| Линейное чтение (4M T6 Q16)  | 99.9 % | 85.8 % |
| Линейная запись (4M T6 Q16)  | 38.9 % | 38.1 % |
| Чтение 4k T12 Q128           | 100 %  | 96.1 % |
| Запись 4k T12 Q128           | 51.6 % | 41.9 % |

## EC 2+1

|                              | TCP          | RDMA         |
|------------------------------|--------------|--------------|
| Линейное чтение (4M T6 Q16)  | 10.07 ГБ/с   | 11.43 ГБ/с   |
| Линейная запись (4M T6 Q16)  | 7.74 ГБ/с    | 8.32 ГБ/с    |
| Чтение 4k T1 Q1              | 7408 iops    | 8891 iops    |
| Запись 4k T1 Q1              | 3525 iops    | 4903 iops    |
| Чтение 4k T12 Q128           | 1216496 iops | 2552765 iops |
| Запись 4k T12 Q128           | 278110 iops  | 821261 iops  |

Потребление CPU OSD на 1 диск:

|                              | TCP     | RDMA    |
|------------------------------|---------|---------|
| Линейное чтение (4M T6 Q16)  | 68.6 %  | 33.6 %  |
| Линейная запись (4M T6 Q16)  | 108.3 % | 50.2 %  |
| Чтение 4k T12 Q128           | 138.1 % | 97.9 %  |
| Запись 4k T12 Q128           | 168.7 % | 188.5 % |

Потребление CPU на 1 клиента (fio):

|                              | TCP    | RDMA   |
|------------------------------|--------|--------|
| Линейное чтение (4M T6 Q16)  | 88.2 % | 52.4 % |
| Линейная запись (4M T6 Q16)  | 51.8 % | 46.8 % |
| Чтение 4k T12 Q128           | 99.7 % | 61.3 % |
| Запись 4k T12 Q128           | 35.1 % | 31.3 % |
