LINUX.ORG.RU
ФорумAdmin

Помогите найти узкое горлышко в сети

 ,


0

3

Добрый день

Ситуация следующая

Есть 2 файловых сервера с настоенныеми RAID6. Будем называть их Сервер SSD, и Сервер HDD для наглядности, потому что первый собран на 8 SSD дисках, а второй на 10 обычных HDD для NAS (5400 rpm).

Оба файловых сервера подключены к 10 гигабитному свитчу, на скорости 10Гигабит.

Также к свитчу подключено 2 рабочие станции, одна по 10-гигабитке, а вторая по 1-гигабитке.

Итак, на Сервере SSD провел тесты скорости чтения и записи рэйда.

$ sync; dd if=/dev/zero of=./zeros1.img bs=10M count=500; sync
500+0 записей получено
500+0 записей отправлено
5242880000 байт (5,2 GB, 4,9 GiB) скопирован, 15,9636 s, 328 MB/s

$ sync; dd if=/dev/zero of=./zeros2.img bs=10M count=500; sync
500+0 записей получено
500+0 записей отправлено
5242880000 байт (5,2 GB, 4,9 GiB) скопирован, 17,3086 s, 303 MB/s

$ sync; dd if=/dev/zero of=./zeros3.img bs=10M count=500; sync
500+0 записей получено
500+0 записей отправлено
5242880000 байт (5,2 GB, 4,9 GiB) скопирован, 18,3812 s, 285 MB/s

$ sync; dd if=/dev/zero of=./zeros4.img bs=10M count=500; sync
500+0 записей получено
500+0 записей отправлено
5242880000 байт (5,2 GB, 4,9 GiB) скопирован, 19,4098 s, 270 MB/s

$ sync; dd if=/dev/zero of=./zeros5.img bs=10M count=500; sync
500+0 записей получено
500+0 записей отправлено
5242880000 байт (5,2 GB, 4,9 GiB) скопирован, 19,4397 s, 270 MB/s

Средняя скорость записи на RAID6 из 8 ssd дисков, по итогам теста, около 300 MB/s.

$ sudo /sbin/sysctl -w vm.drop_caches=3; dd if=./zeros1.img of=/dev/null bs=10M count=500
[sudo] пароль для master: 
vm.drop_caches = 3
500+0 записей получено
500+0 записей отправлено
5242880000 байт (5,2 GB, 4,9 GiB) скопирован, 2,8586 s, 1,8 GB/s

Средняя скорость чтения с RAID6 из 8 ssd дисков, по итогам теста, около 1.8 GB/s.

Теперь те же тесты я провел на Сервере HDD

$ sync; dd if=/dev/zero of=./zeros1.img bs=10M count=500; sync
500+0 записей получено
500+0 записей отправлено
5242880000 байт (5,2 GB, 4,9 GiB) скопирован, 9,47348 s, 553 MB/s

$ sync; dd if=/dev/zero of=./zeros2.img bs=10M count=500; sync
500+0 записей получено
500+0 записей отправлено
5242880000 байт (5,2 GB, 4,9 GiB) скопирован, 5,19057 s, 1,0 GB/s

$ sync; dd if=/dev/zero of=./zeros3.img bs=10M count=500; sync
500+0 записей получено
500+0 записей отправлено
5242880000 байт (5,2 GB, 4,9 GiB) скопирован, 5,21997 s, 1,0 GB/s

$ sync; dd if=/dev/zero of=./zeros4.img bs=10M count=500; sync
500+0 записей получено
500+0 записей отправлено
5242880000 байт (5,2 GB, 4,9 GiB) скопирован, 5,6245 s, 932 MB/s

$ sync; dd if=/dev/zero of=./zeros5.img bs=10M count=500; sync
500+0 записей получено
500+0 записей отправлено
5242880000 байт (5,2 GB, 4,9 GiB) скопирован, 5,3953 s, 972 MB/s

Средняя скорость записи на RAID6 из 10 hdd дисков, по итогам теста, около 950 MB/s. Что, на мой взгляд, оочень неплохо!

$ sudo /sbin/sysctl -w vm.drop_caches=3; dd if=./zeros1.img of=/dev/null bs=10M count=500
vm.drop_caches = 3
500+0 записей получено
500+0 записей отправлено
5242880000 байт (5,2 GB, 4,9 GiB) скопирован, 4,76412 s, 1,1 GB/s

Средняя скорость чтения на RAID6 из 10 hdd дисков, по итогам теста, около 1.1 GB/s. Что, на мой взгляд, тоже неплохо, хотя я ожидал что будет сильнее отрыв от скорости записи.

========================================
Сервер SSD:
Запись (приблизительно): 300 Мб/c
Чтение (приблизительно): 1.8 Гб/c

Сервер HDD:
Запись (приблизительно): 950 Мб/c
Чтение (приблизительно): 1.1 Гб/c
========================================

Вопрос №1 Почему так проигрывает Сервер SSD по скорости записи? По чтению, если грубо то это 250мб в секунду на 1 диск, в среднем. Ну вроде более менее, хотя я ожидал больше.

Вопрос №2 Насколько хорошие результаты скорости выдает сервер HDD? Мне кажется что по записи очень неплохо. А чтение, мне кажется могло быть повыше, но тут я могу ошибаться.

Далее, Я попробовал через сетку с файлового Сервера SSD прочитать в память сиквенцию (последовательность) кадров, через специальный плеер, который кэширует все прочитанные файлы в оперативную память.

Общий объем сиквенции приблизительно 8.2 гигабайта. По 10ти гигабитной сетке этот сиквенс загружался в память 1 минуту 29 секунд.

Тот же самый сиквенс, на другой рабочей станции, но которая подключена по скорости 1 гигабит, кэшировался 1 минуту 41 секунду.

Согласитесь разница оочень незначительная.

Вопрос №3 Помогите понять, где узкое горлышко. Почему скорость на 1 и 10-ти гигабитных машинах почти одинакова? Хотя скорость чтения на сервер SSD порядка 1.8GB/s, что видно из тестов выше. т.е. по идее отдает файлы сервак с достаточной скоростью.



Последнее исправление: ITdreamer (всего исправлений: 4)

Ответ на: комментарий от imul

Я провел тесты приблизительные. Грубо говоря 5 раз прогонял тот же тест, и брал среднее значение.

Мне же нужно было понимать порядок цифр.

Но я не могу пока ответить на эти 3 вопроса, что выше.

Вот тут мне и нужна помощь.

ITdreamer
() автор топика
Последнее исправление: ITdreamer (всего исправлений: 1)

1 - что с контроллерами, что за ssd?
3 - jumbo frames? Ну и чем файлы раздаешь по сети?

Deleted
()
Ответ на: комментарий от Deleted

1 - Raid coфтовый на mdadm, материнка Supermicro X11SSH-F, контроллер SATA Intel C236, 8 портов Sata3 6Gbps, в которые установлены 8 SSD дисков Toshiba HDTSA1AEZSTA 1Tb

3 - jumbo frames это что за зверь?)). Файлы раздаю по nfs.

ITdreamer
() автор топика
Ответ на: комментарий от ITdreamer

ты свои тесты dd запускай с oflag=direct и будут тебе реальные цифры твоих рейдов

anonymous
()
Ответ на: комментарий от ITdreamer

jumbo frames это что за зверь

Переброс данных по сети в больших пакетах. Это если мало скорости по сети рекомендуется включить на клинетах,серверах и соединяющем оборудовании. Но у тебя похоже до этого не дошло(ты же меряешь на локальном сервере или через NFS?).
Лучше посмотри а какие именно у тебя SSD и какой способ подключения(SAS, SATA, PCIe). Может это предел по характеристикам SSD ?

Atlant ★★★★★
()

Стоит начать измерение с самого низкого уровня и дальше идти вплоть до NFS. Т.е. сначала измеряем скорость дисков по отдельности. Затем собираем RAID, считаем, какая примерно скорость должна быть с учётом логики массива. Потом отдаём это по NFS и измеряем снова.

Таким образом, можно найти, где укзое горлышко системы. Самое главное, идти последовательно, снизу вверх.

Hanuken
()
Ответ на: комментарий от Atlant

С jumbo я понял, гляну.

А касательно ссд я же написал и модель дисков и способ подключения.

Подключены они по сата3, диски Toshiba HDTSA1AEZSTA

Меряю я конечно локально, а не по сети.

Но дело в том, что я даже без теста чувствую, что на Сервере SSD, скорость создания файлов ниже чем на Сервере HDD. Разница в скорости на вскидку в 2 раза отличается. Мне нужно понять где затык.

ITdreamer
() автор топика
Ответ на: комментарий от anonymous

Провел еще кое-какие тесты c флагом oflag=direct

На Сервере HDD

$ sync; dd if=/dev/zero of=./zeros3.img bs=10M count=500 oflag=direct; sync
500+0 записей получено
500+0 записей отправлено
5242880000 байт (5,2 GB, 4,9 GiB) скопирован, 13,7788 s, 381 MB/s

На Сервере SSD

$ sync; dd if=/dev/zero of=./zeros1.img bs=10M count=500 oflag=direct; sync                                        
500+0 записей получено
500+0 записей отправлено
5242880000 байт (5,2 GB, 4,9 GiB) скопирован, 50,7152 s, 103 MB/s

Результаты, мягко говоря, странные! Скорость записи на RAID6 из 8 SSD дисков на Sata3, почти в 4 раза ниже, чем скорость RAID6 из 10 HDD дисков на Sata3.

К сожалению я не могу тестить по отдельности диски пока что. Т.к. на них данные. Но в любом случае нужны советы как искать затык.

ITdreamer
() автор топика
Ответ на: комментарий от ITdreamer

Партиции (если есть) на массиве с SSD выравнены под размер блока? Файловая система тоже выравнена под блок mdadm? Это может быть весьма критичным, так как криво сделанное приводит к write amplification (это видно по большой утилизации в iostat при записи) и, следовательно, к просадке скорости в целом.

anonymous
()
Ответ на: комментарий от anonymous

Спасибо большое. Статья очень помогла.

Похоже проблема найдена. Точнее одна из проблем. И эта проблема касается рэйда на SSD.

Сервер HDD

$ sudo hdparm -I /dev/sda | grep Sector
        Logical  Sector size:                   512 bytes
        Physical Sector size:                  4096 bytes
        Logical Sector-0 offset:                  0 bytes

Сервер SSD

$ sudo hdparm -I /dev/sda | grep Sector                                                                                                 
        Logical  Sector size:                   512 bytes
        Physical Sector size:                   512 bytes
        Logical Sector-0 offset:                  0 bytes

Буду переразбивать диски на SSD рэйде, и собирать RAID заново.

ITdreamer
() автор топика
Последнее исправление: ITdreamer (всего исправлений: 1)
Ответ на: комментарий от ITdreamer

Не думаю что у вас в этом проблема:

$ sudo hdparm -I /dev/sda | grep Sector
	Logical  Sector size:                   512 bytes
	Physical Sector size:                   512 bytes
	Logical Sector-0 offset:                  0 bytes

$ sync; dd if=/dev/zero of=./zeros1.img bs=10M count=500 oflag=direct; sync
500+0 записей получено
500+0 записей отправлено
5242880000 байт (5,2 GB, 4,9 GiB) скопирован, 21,6996 s, 242 MB/s

То есть сами по себе результаты hdparm как я понял не следует интерпретировать, надо смотреть еще в ФС, контроллер диска и т.д. Так что я бы на вашем месте не торопился перестраивать рейд, а подождал бы еще вариантов.

micronekodesu ★★★
()
Ответ на: комментарий от micronekodesu

Я тут обратил внимание на то, что все ssd диски, что есть в офисе, на разных машинах, все имеют Physical/Logical сектора 512/512. Все эти диски стоят в разных машинах и разбивались при установке системы, а именно debian 9.

А отсюда и вопрос. Получается, что Debian при установке разбивает диск по старому типу? 512/512

Т.е. уже не оптимально. Или для ссд дисков 512/512 как раз нормальный вариант?

ITdreamer
() автор топика

Я слышал, что надо мерить IOPS на мелких блоках.

А срупут почти никогда не нужен.

anonymous
()
Ответ на: комментарий от ITdreamer

Ну единственное что могу сказать - Debian действительно по дефолту ставит 512. На сколько это нормально - не знаю. В ФС на lvm у меня размер (также по дефолту) выставлен в 4К.

micronekodesu ★★★
()

Как уже сказали выше используй fio. Сравнивай не линейное чтение/запись а рандомную запись/чтение и смотри на latency так как толку тебе от скорости если диск будет отвечать раз в 5 минут например. Смотрел как сеть используется при использование 10Gb? Я к тому что может у тебя сеть не по максимум использовалась в первом случае.

avb
()

RAID6 софтовый? для тестов дисковой еще есть утилита bonnie++ для сетей iperf

anonymous2 ★★★★★
()
Последнее исправление: anonymous2 (всего исправлений: 1)
Ответ на: комментарий от ITdreamer

все имеют Physical/Logical сектора 512/512

Прикидываются )
Реальный размер страниц SSD сотни килобайт. У современных может уже и больше. SATA SSD на сегодня ИМХО смысла не имеют, так как сразу же упираются в потолок интерфейса. NVME быстрее в разы.

GAMer ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.