Если вам нужен виртуальный частный сервер или даже выделенный, у вас есть много вариантов.
А поскольку рынок наводнен вариантами и постоянно развивается, для каждого случая нет «лучшего» или, по крайней мере, «лучшего» для всех.
Некоторые облачные провайдеры могут предлагать виртуальные частные серверы с самым быстрым хранилищем, в то время как их мощность процессора не самая большая.
Другой поставщик может предложить лучшую производительность ЦП на рынке, но его устройства хранения данных работают медленнее.
Более того, когда все пытаются украсть клиентов у своих конкурентов, провайдер с медленным хранилищем может обновить свои устройства и стать лучшим на своем рынке через шесть месяцев.
Но, с помощью определенных тестов, вы можете сравнить разных поставщиков и выбрать того, кто лучше для вас на данный момент.
Несколько слов о бенчмаркинге
Обычно вы адаптируете тесты для вашего конкретного случая использования вместе с аппаратным обеспечением и видите, сколько вы можете выжать из ваших устройств, их максимальные уровни производительности.
Однако в этом случае вы будете запускать общие тесты, которые могут не выжать абсолютно каждую каплю потенциала.
Но поскольку они будут работать с одинаковыми параметрами в одной и той же операционной системе, вы получите реальные цифры, которые вы можете легко сравнить и увидеть, какой поставщик работает лучше или хуже другого в идентичных ситуациях.
Предпосылки
- Используйте последний стабильный образ Ubuntu в качестве операционной системы. На момент написания статьи это 18,04 LTS. Это не имеет значения, если вы используете другую операционную систему позже. Это даст вам общую отправную точку.
- Вы можете адаптировать некоторые команды из этого урока. Если вы это сделаете, не забудьте использовать одинаковые параметры на всех серверах для правильного сравнения.
- Хорошей идеей будет запускать один и тот же тест дважды на каждом сервере. Некоторые облачные провайдеры предлагают противоречивые результаты. В этом случае вам следует избегать их вообще, поскольку это признак того, что их изоляция гостевой операционной системы не так уж хороша, или они сжимают слишком много клиентов на одном и том же оборудовании.
- В этом руководстве предполагается, что вы вошли в систему как пользователь root. Если вы вошли в систему как обычный пользователь, вам нужно добавить к sudo префикс всех команд apt, чтобы что-то вроде apt update && apt install fio стало sudo apt update && sudo apt install fio
Эталонное сравнение хранилища
Сначала установите программное обеспечение для тестирования.
apt update && apt install fio
Если вы получаете сообщение о том, что fio не может быть найден, это означает, что у вас не включен репозиторий universe.
Вы можете включить его с помощью apt install software-properties-common && add-apt-repository universe и затем повторить приведенную выше команду для установки fio.
Последовательное чтение происходит, когда данные считываются непрерывно. Например, когда вы читаете файл объемом 4 ГБ от начала до конца, он обычно показывает максимальную скорость чтения, возможную для вашего устройства хранения и файловой системы, которую он использует в настоящее время.
Вы можете запустить тестирование последовательности чтения с:
fio --name=seqread --readwrite=read --direct=1 --ioengine=libaio --bs=1M --size=2000M
Если это выполнение завершается менее чем за двадцать секунд (это обычно происходит, если хранилище находится на SSD), вы должны увеличить размер читаемого файла, чтобы получить более точные результаты, как в приведенной ниже строке кода.
fio --name=seqread --readwrite=read --direct=1 --ioengine=libaio --bs=1M --size=8000M
Наиболее важные цифры, на которые вы должны обратить внимание, в этом результате: READ: bw, выделены на следующем рисунке.
Чтобы проверить скорость последовательной записи, выполните:
fio --name=seqwrite --readwrite=write --direct=1 --ioengine=libaio --bs=1M --size=2000M
Проверьте те же цифры
Чтобы проверить работу облачного хранилища в самых стрессовых условиях, запустите этот тест:
fio --name=randrw --readwrite=randrw --direct=1 --ioengine=libaio --bs=4k --size=200M --group_reporting --numjobs=8
Как и выше, увеличьте –size, если тест заканчивается слишком быстро.
В этом случае пропускная способность менее важна – считайте ее вторичной.
Сначала посмотрите на:read: IOPS
и write: IOPS
.
Как пример из реальной жизни, хранилище сервера будет выделено таким образом на очень загруженном веб-сайте с очень большой базой данных, которую постоянно нужно читать и записывать.
Тест процессора и памяти сервера
Посетите страницу загрузки Geekbench.
Скопируйте ссылку на последний архив Geekbench и вставьте ее в команду wget.
Например, на момент написания этой ссылки «http://cdn.geekbench.com/Geekbench-4.3.3-Linux.tar.gz».
Следующая команда загрузит Geekbench на ваш сервер.
wget http://cdn.geekbench.com/Geekbench-4.3.3-Linux.tar.gz
Извлеките файлы из архива.
tar -xzvf *.tar.gz
Перейдите в извлеченный каталог, который будет эквивалентен версии программы, которую вы нашли доступной и которая была выведена в предыдущей команде (как на рисунке выше).
cd Geekbench-4.3.3-Linux
На момент написания статьи имя исполняемого файла – geekbench4, но в будущем это может измениться. Список файлов в вашем текущем каталоге.
ls
Запустите тестирование, при необходимости заменив имя исполняемого файла.
./geekbench4
Это займет некоторое время, пока все тесты не будут завершены.
В конце вам предложат ссылку, по которой вы сможете увидеть результаты.
Тестирование пропускной способности сети сервера
Установите Speedtest клиент.
apt install speedtest-cli
Запустите тест.
speedtest
Обычно утилита должна найти тестовый сервер как можно ближе к вашему серверу.
Если обнаружение местоположения не удается, вы можете вручную перечислить серверы в вашей стране с помощью команды, например:
speedtest --list | grep -i russia
speedtest --server 4462
Обратите внимание, что некоторые серверы, используемые speedtest, могут в настоящее время не иметь достаточной пропускной способности, поэтому, если кажется, что эталонный тест возвращает слишком низкие значения, попробуйте другой сервер загрузки / выгрузки.
Заключение
Эта статья охватывает базовый бенчмаркинг процессора, памяти, хранилища и сети.
После каждого теста у вас есть числа, которые вы можете сравнить, чтобы выбрать сервер, который имеет лучшие значения для вашей конкретной рабочей нагрузки.