[Документация](../../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 % |