Как проверить производительность сервера на Linux? Собрали самые популярные консольные бенчмарки
Представим такую ситуацию: вы заказали VPS, его характеристики вроде бы устраивают, но в голове все же живет сомнение: «А действительно ли он такой быстрый, как обещал хостер».
Хватает ли вычислительной мощности, не тормозит ли диск и память — особенно интересно посмотреть на эти параметры в сравнении с виртуальными серверами от других провайдеров.
Чтобы ответить на эти вопросы достаточно пары простых команд в терминале. Ниже мы собрали самые популярные консольные бенчмарки для быстрого теста Linux-сервера. С ними вы быстро проверите, на что способны CPU, RAM и диск сервера. Обещаем, что все происходит быстро и без лишних проблем.
А в качестве подопытной тестовой машины мы будем использовать виртуальный сервер от UFO.Hosting с 2 гигабайтами ОЗУ и 2 ядрами процессора Intel Xeon E5-2697A. Если вы хотите себе такой же сервер или что-то помощнее, то переходите по ссылке — по промокоду VC15 вы получите скидку 15% при заказе VPS на любой период.
Процессор
Сердце любого компьютера и сервера — именно от CPU зависит, насколько быстро будут выполняться задачи. Для тестирования этого параметра мы будем использовать 2 утилиты — Sysbench и встроенный бенчмарк архиватора 7-Zip.
Sysbench
Sysbench — многофункциональная программа, с помощью которой можно протестировать не только процессор, но также скорость работы памяти и файловой системы. В этом разделе мы остановимся только на тестировании CPU — с памятью разберемся чуть позже. Для этого Sysbench выполняет интенсивные вычисления с целью замерить скорость процессора.
Как установить: в современных дистрибутивах на основе Debian Sysbench как правило уже есть в стандартных репозиториях. Поэтому ставится он одной простой командой.
После установки достаточно выполнить и бенчмарк начнет работу:
Если задавать дополнительные параметры, то тест запустится на одном ядре, в одном потоке, на 10 секунд, перебирая простые числа до 10000.
В конце концов консоль выведет статистику, включая events per second и total number of events. Тут все просто — чем выше показатель, тем выше производительность.
✅Что хорошо
Sysbench прост в использовании — для старта работы достаточно пары команд. Если понадобится, то он поддерживает и многопоточность, и тестирование дисков, памяти и даже тестов простых баз данных. При этом результат довольно легко сравнить с другими ПК и серверами.
❌Что не очень
Тест процессора в Sysbench ограничен одним типом нагрузки. Он дает только обобщенную оценку и не раскрывает нюансов производительности разных архитектур CPU. Для более тонкого анализа потребуются другие утилиты. Однако, для быстрого сравнения производительности без нюансов такой программы хватит.
Бенчмарк 7-Zip
В архиватор 7-Zip, как и во многие другие подобные программы, встроен бенчмарк производительности процессора. Его особенность в том, что в отличие от Sysbench он загружает CPU не абстрактной синтетикой, а реальной задачей — сжатием и распаковкой данных алгоритмом LZMA. Это позволяет измерить общую вычислительную мощность системы в MIPS.
Тест 7-Zip многопоточный и хорошо масштабируется с числом ядер, поэтому подходит для проверки эффективности многопроцессорных VPS.
Программа устанавливается одной командой. В Debian и Ubuntu она выглядит так:
А для запуска бенчмарка используйте команду:
По умолчанию тест работает в многопоточном режиме и использует все доступные ядра. В выводе вы увидите скорость сжатия и распаковки в MIPS — для разных размеров словаря. Если хотите протестировать производительность одного ядра, добавьте флаг -mmt1.
✅Что хорошо
Тестирование проходит на реальной задаче — сжатии данных, а значит, результаты ближе к тому, как процессор работает в обычных условиях. Бенчмарк поддерживает многопоточность, быстро устанавливается и работает почти на всех платформах.
❌Что не очень
MIPS — удобный показатель для сравнения процессоров одной архитектуры, но он не дает полной картины при сравнении, скажем, x86 и ARM. Например, из-за этого у вас не получится сравнить ваш Макбук на процессоре M1 или новее и ваш сервер.
Оперативная память
Производительность оперативной памяти определяется скоростью чтения и записи данных.Для быстрой оценки пропускной способности RAM есть несколько удобных инструментов.
Sysbench (Memory)
Sysbench умеет тестировать память, имитируя интенсивную работу с RAM: чтение и запись данных. По сути, утилита просто копирует блоки в пределах памяти. Это позволяет измерить, как быстро система справляется с подобными задачами.
Отдельно ничего не нужно устанавливать — все тесты из набора Sysbench ставятся одним пакетом:
Тест памяти также запускается одной командой:
По умолчанию используется один поток. Результаты можно посмотреть в строках Total operations и MiB transferred.
Эти данные отражают пропускную способность RAM. Само по себе значение скорости мало о чём говорит, но его удобно использовать для сравнения разных систем.
Для более тонкой настройки можно задать размер блока и общий объём теста. Пример:
Также можно выбрать тип операции — чтение или запись:
Учитывайте, что обычно запись немного быстрее чтения — это нормально. Дело в том, что системе не нужно возвращать данные обратно приложению.
✅Что хорошо
Sysbench легко запускается и позволяет быстро протестировать память. Один и тот же инструмент подходит и для CPU, и для RAM. Параметры можно настраивать, чтобы имитировать разные сценарии. Результаты измеряются в MiB/s, что позволяет сравнить скорость с типичными значениями для разных поколений памяти. Например, так можно сравнить сервер с довольной старой памятью DDR3 и новейшей DDR5.
❌Что не очень
Тест показывает только последовательную скорость передачи данных. Он не отражает, насколько быстро память отвечает на произвольные запросы и не учитывает задержки. На результат также влияют особенности архитектуры CPU — размер кэша, организация шины и пр. Для более детального анализа лучше использовать другие утилиты. Например, MBW, о которым мы расскажем далее.
MBW
MBW — узкоспециализированная утилита, которая измеряет, с какой скоростью приложения могут копировать большие блоки данных в оперативной памяти. Она использует разные методы копирования: стандартную функцию memcpy, побайтовое и блочное копирование.
Бенчмарк также устанавливается одной командой — все очень легко:
А для запуска нужно выполнить:
Это протестирует копирование 128 мегабайт данных. Вывод может выглядеть так:
Каждая строка показывает среднюю скорость для конкретного метода.
✅Что хорошо
Очень простая утилита. Вы указываете объем данных — программа выдает результат. Показатели в MiB/s позволяют понять, насколько быстро работает RAM при копировании. Также можно настроить размер блока при блочном копировании, чтобы проверить влияние кэширования.
❌Что не очень
MBW измеряет только один тип работы — последовательное копирование данных. Она не показывает задержки или производительность при случайном доступе. Результаты разных методов могут путать: иногда из-за реализации определённые методы показывают завышенные значения. Лучше всего использовать утилиту для сравнений при одинаковых условиях. Например, до и после апгрейда памяти.
Диск
Производительность дисковой системы виртуального сервера зависит от скорости последовательной записи и чтения, а также от показателя IOPS — числа операций при случайном доступе.
dd
dd — стандартная консольная утилита, предназначенная для побайтового копирования данных. Её часто используют для простого теста скорости диска: создают файл заданного размера и измеряют, как быстро он записывается и читается.
Установка здесь не потребуется — программа уже входит в состав дистрибутивов Linux по умолчанию.
Пример для теста записи можно использовать такую команду:
Она создаёт файл размером 1 GiB, записывая данные блоками по 1 МБ. Ключ conv=fdatasync заставляет систему сразу записывать данные на физический диск, а не только в кэш. По завершении команда покажет объём данных и среднюю скорость, например:
А для теста чтения используйте эту команду:
Файл читается и отправляется в /dev/null, а в консоли выдается результат скорости чтения:
Чтобы исключить влияние кэша, можно либо протестировать файл, превышающий объем оперативной памяти, либо сбросить кэш командой:
✅Что хорошо
Утилита проста в использовании, доступна по умолчанию в любом современном дистрибутиве и позволяет быстро оценить последовательную скорость записи и чтения.
❌Что не очень
Не отражает производительность при случайном доступе и не даёт информации о задержках. Результат — усреднённая скорость — не показывает пиков и просадок. На VPS может искажаться из-за особенностей виртуализации и хранения данных у провайдера.
fio (Flexible I/O Tester)
fio — мощная утилита для гибкого тестирования дисковой системы. Поддерживает различные шаблоны нагрузки: случайный или последовательный ввод-вывод, чтение и запись, разные размеры блоков и глубины очередей.
Установка:
Пример случайного чтения/записи:
Эта команда эмулирует смешанную нагрузку (50% чтения, 50% записи) мелкими блоками в течение 60 секунд. Вывод содержит IOPS, скорость (bandwidth), задержки (latency).
✅Что хорошо
Подходит для любых сценариев — можно имитировать реальную нагрузку от баз данных, веб-серверов. Есть подробная статистика и возможность гибкой настройки.
❌Что не очень
У утилиты сложный синтаксис, в котором тяжело разобраться — тут без опыта в серверном администрировании и работе с железом не обойтись.
Тестирование VPS чем-то похоже на техосмотр для хостинга. Всё может выглядеть красиво на витрине, но только бенчмарки покажут, насколько быстро работают процессор и память.
Консольные тесты производительности — это не просто развлечение для гиков, а реальный способ понять, за что вы платите. К тому же, это не так сложно, как кажется: пара команд — и вы уже знаете, насколько ваш сервер готов к тяжелым задачам.
А вы когда-нибудь проверяли, насколько реально быстрым оказался ваш VPS?