====== Тестирование XigmaNAS с различными объемами оперативной памяти, GEOM vs ZFS ====== Практическое значение данного теста заключается в поиске минимального объема оперативной памяти при которой дистрибутив работает исправно, с целью использования в виртуальной среде для небольших стендов или на старом физическом оборудовании. ===== Тестовая среда ===== Тестирование проводится в среде виртуализации VMware vSphere 6.7, состоящей из одного сервера ESXi 6.7U3; В качестве хранилища для NAS будет использован виртуальный диск, расположенный на одном твердотельном накопителе Micron M500DC 240GB; Виртуальная машина, создающая нагрузку расположена на том-же сервере виртуализации на другом хранилище. ==== Инструменты === В качестве инструмента тестирования будет использован Crystal Disk Mark версии 8.0.4 в режиме "Пиковая скорость" (Peak Performance) {{:blog:2022:10:09:20221009-214943.png}} ===== Конфигурации виртуальной машины NAS ===== ^ Параметр ^ XXS ^ XS ^ S ^ M ^ L ^ | vCPU | 2 | 2 | 2 | 2 | 2 | | Объем памяти | 512МБ | 1024 МБ | 2048 МБ | 8192 МБ | 16 384 МБ | | Режим установки | Full | Full | Embedded | Embedded | Embedded | | Boot disk | 8GB | 8GB | 8GB | 8GB | 8GB | | Data Disk1 | 33GB | 33GB | 33GB | 33GB | 33GB | | Data Disk2 | 33GB | 33GB | 33GB | 33GB | 33GB | | Network | VMXNET3 | VMXNET3 | VMXNET3 | VMXNET3 | VMXNET3 | ===== Ход тестирования ===== ==== Установка XigmaNAS на систему с 512 МБ оперативной памяти ==== При объеме оперативной памяти менее 2 ГБ загрузочный диск предоставляет только функционал установки системы без возможности запуска NAS Live CD; {{:blog:2022:10:09:20221009-221640.png}} Установка производится в режиме Full {{:blog:2022:10:09:20221009-221751.png}} Минимальный объем системного раздела для данного типа установки - 3 ГБ {{:blog:2022:10:09:20221009-221832.png}} Рекомендуемый объем раздела подкачки - 1 ГБ {{:blog:2022:10:09:20221009-221854.png}} На время установки в пике расход оперативной памяти составил 435 МБ. Стоит отметить что vSphere на данном графике в показателе Active Memory приводит информацию об суммарном объеме страниц памяти, которые были использованы машиной недавно. То есть можно сказать это объем тех страниц которые гипервизору нужно держать в собственной оперативной памяти. {{:blog:2022:10:09:20221009-222645.png}} Установка завершена и система запускается с локального диска {{:blog:2022:10:09:20221009-222735.png}} Чистая система, установленная в режиме Full во время включения расходует 393 МБ оперативной памяти. Команд top сообщает о 350 МБ свободной памяти, что свидетельствует об использовании системой 162 МБ - данное значение фиксируется в таблице. Произведем подключение к веб-интерфейсу. Веб интерфейс сообщает об использовании 110 МБ оперативной памяти из 452 доступных. {{:blog:2022:10:09:20221009-224533.png}} Создаем Software RAID массив RAID-0; {{:blog:2022:10:09:20221009-225650.png}} Форматируем виртуальный том в ФС UFS; {{:blog:2022:10:09:20221009-225944.png}} Добавляем точку монтирования {{:blog:2022:10:09:20221009-230023.png}} Включаем сервис SMB и фиксируем расход оперативной памяти. {{:blog:2022:10:09:20221009-230631.png}} Задаем сетевой ресурс для Crystal Disk Mark; {{:blog:2022:10:09:20221009-230750.png}} Запускаем тестовую нагрузку на систему {{:blog:2022:10:09:20221009-231812.png}} ==== 1024 МБ ==== Увеличиваем объем виртуальной памяти машины до 1024 МБ и повторяем набор тестов. {{:blog:2022:10:09:20221009-232256.png}} На данном объеме имеет смысл попробовать создать пул ZFS. Форматируем диски для использования с ZFS {{:blog:2022:10:09:20221009-234143.png}} Создаем новый vdev типа stripe {{:blog:2022:10:09:20221009-234221.png}} Создаем пул. {{:blog:2022:10:09:20221009-234255.png}} Создаем Dataset с настройками по умолчанию. Без сжатия, синхронизация - стандартная. {{:blog:2022:10:09:20221009-234349.png}} Запускаем нагрузку. Характер записи изменился, стал более рваным, нестабильным даже при больших объемах оперативной памяти. {{:blog:2022:10:09:20221009-235223.png}} Повторное тестирование показало незначительный рост производительности при использовании GEOM по сравнению с конфигурацией на 512МБ, поэтому дальнейшие тесты имеет смысл проводить только с ZFS. ===== Результаты ===== ^ Объем ^ Массив ^ Режим работы ^ Расход памяти (VMware) ^ Расход памяти XigmaNAS GUI ^ | 512 МБ | GEOM | Первый запуск | 36 МБ | 162 МБ | | ::: | ::: | Навигация по веб-интерфейсу | 94 МБ | 175 МБ | | ::: | ::: | Запуск SMBd | 256 МБ | 339 МБ | | ::: | ::: | Тестирование производительности | 288 МБ | 416 МБ | | 1024 | GEOM | Запуск SMBd | | 334 МБ | | | ::: | Тестирование производительности | 922 МБ | 439 МБ | | | ZFS | Запуск SMBd | | 374 МБ | | | | Тестирование производительности | 796 МБ | 951 МБ | ^ Тест ^ ^ XXS ^ XS |^ S ^ M ^ L || | | ^ GEOM ^ GEOM ^ ZFS ^ ZFS ^ ZFS ^ GEOM ^ ZFS ^ | SEQ1M Q8T1 (MB/s) | R | 335 | 358 | 393 | 400 | 491 | 540 | 516 | | ::: | W | 313 | 331 | 178 | 270 | 336 | 344 | 366 | | RND4K Q32T1 (MB/s) | R | 52,54 | 52,66 | 14,1 | 14,76 | 52,11 | 130,42 | 67,1 | | ::: | W | 9,24 | 21,32 | 3,16 | 5,96 | 9,93 | 17,21 | 13,57 | | RND4K (IOPS) | R | 12827 | 12856 | 3441 | 3603 | 12722 | 31840 | 16382 | | ::: | W | 2257 | 5218 | 771 | 1453 | 2425 | 4201 | 3359 | | RND4K (μs) | R | 2 492 | 2 484 | 9 281 | 8 866 | 2 509 | 1 003 | 1 949 | | ::: | W | 9 280 | 5 754 | 36 143 | 19 522 | 13 119 | 7 592 | 8 573 | ===== Выводы ===== - Было показано файловый сервер SMB с 512 МБ оперативной памяти работоспособна при использовании GEOM - программного RAID. - Продемонстрировано что производительность GEOM практически не растёт с увеличением объема оперативной памяти. Можно сделать также обратный вывод - с уменьшением свободной оперативной памяти под кэш производительность GEOM не падает. - Высокие показатели тестов ZFS на чтение связаны с тем что читаемые данные все еще находятся в кэше системы после предварительной генерации. - Показано что с ростом объемов оперативной памят - производительность массив ZFS растёт.