- Как проверить скорость диска и оперативной памяти вашего Linux-сервера — CloudSavvy IT
- Как измеряется производительность ввода-вывода?
- Установите fio для случайного чтения / записи тестов
- Тестирование производительности памяти
- Информация об оперативной памяти в Linux. Свободная, занятая и тип памяти
- Свободная и занятая оперативная память
- Команда free
- Команда vmstat
- Команда top
- Команда htop
- Файл /proc/meminfo
- Тип памяти и частота
- Заключение
- Бенчмарки для Linux-серверов: 5 открытых инструментов
- Sysbench
- UnixBench
- Phoronix Test Suite
- Vdbench
- IOzone
Как проверить скорость диска и оперативной памяти вашего Linux-сервера — CloudSavvy IT
Если вы регулярно пишете или читаете файлы, скорость вашего диска может повлиять на производительность вашего сервера. Мы покажем вам, как измерить скорость вашего сервера и как понять, как он конкурирует с конкурентами.
Как измеряется производительность ввода-вывода?
Существует много разных способов чтения и записи на диски, поэтому для «скорости», которую можно измерить, не существует единого числа.
Самый простой способ измерить производительность — это определить, сколько времени занимает чтение больших файлов или копирование больших файлов. Это измеряет скорость последовательного чтения и записи, что является хорошим показателем, но на практике вы редко увидите такие высокие скорости, особенно в серверной среде.
Лучшим показателем является скорость произвольного доступа, которая измеряет, насколько быстро вы можете получить доступ к файлам, хранящимся в случайных блоках, гораздо больше имитируя использование в реальном мире.
SSD обычно имеют высокую скорость произвольного доступа по сравнению с жесткими дисками, что делает их гораздо более подходящими для общего использования. Жесткие диски по-прежнему имеют приличную скорость последовательного чтения и записи, что делает их пригодными для архивирования и извлечения данных.
Однако производительность диска может не иметь большого значения для определенных рабочих нагрузок. Многие приложения кэшируют объекты в памяти (если у вас достаточно ОЗУ), поэтому в следующий раз, когда вы захотите прочитать этот объект, он будет считан из памяти (что быстрее). Тем не менее, для рабочих нагрузок, требующих большой записи, доступ к диску все же должен осуществляться.
Скорость часто измеряется в МБ / с, но некоторые поставщики могут измерять в IOPS (количество операций ввода-вывода в секунду). Это просто большее число, означающее одно и то же; Вы можете найти то, что IOPS от МБ / с с этой формулой:
Тем не менее, некоторые провайдеры могут не очень хорошо сказать вам, какой эталонный тест они используют для измерения IOPS, поэтому хорошо бы провести тестирование самостоятельно.
Установите fio для случайного чтения / записи тестов
В то время как Linux имеет встроенный dd Команда, которая может использоваться для измерения производительности последовательной записи, не указывает на то, как она будет вести себя в реальных условиях. Вместо этого вы захотите проверить скорость случайного чтения и записи.
fio это утилита, которая может справиться с этим. Установите его из диспетчера пакетов вашего дистрибутива:
Затем запустите базовый тест, используя следующую команду:
При этом выполняются произвольные тесты на чтение и запись с использованием 250 МБ данных при соотношении операций чтения от 80% до 20%. Результаты будут отображаться в единицах IOPS и в МБ / с:
Вышеуказанный тест был выполнен на AWS gp2 SSD, довольно средний SSD, который показывает довольно среднюю производительность. Производительность записи всегда будет ниже при любом типе ввода-вывода; многие твердотельные накопители и жесткие диски имеют встроенный кэш для использования контроллером накопителя, что делает многие операции чтения достаточно быстрыми. Однако всякий раз, когда вы пишете, вы должны вносить физические изменения в диск, что медленнее.
Запуск теста на жестком диске показывает низкую производительность случайного смешанного ввода-вывода, которая является типичной проблемой для жестких дисков:
Однако жесткие диски обычно используются для больших последовательных операций чтения и записи, поэтому случайный тест ввода-вывода здесь не соответствует сценарию использования. Если вы хотите изменить тип теста, вы можете передать другой аргумент для —readwrite , fio поддерживает множество разных тестов:
- Последовательное чтение: seqread
- Последовательная запись: seqwrite
- Случайное чтение: randread
- Случайная запись: randwrite
- Случайный смешанный ввод-вывод: randrw
Кроме того, вы можете изменить размер блока с помощью —bs аргумент. Мы установили его на 4K, что является довольно стандартным для случайных тестов, но последовательные чтения и записи могут показывать лучшую или худшую производительность при больших размерах блоков. Размеры от 16 КБ до 32 КБ могут быть ближе к тому, с чем вы столкнетесь при реальной нагрузке.
Тестирование производительности памяти
fio не может проверить скорость ОЗУ, поэтому, если вы хотите провести тестирование ОЗУ вашего сервера, вы должны установить sysbench от менеджера пакетов вашего дистрибутива:
Этот пакет может тестировать множество показателей производительности, но мы сосредоточены только на тесте памяти. Следующая команда выделяет 1 МБ ОЗУ, затем выполняет операции записи до тех пор, пока не будет записано 10 ГБ данных (не беспокойтесь, для выполнения этого теста не требуется 10 ГБ ОЗУ).
Это покажет скорость памяти в миБ / с, а также задержку доступа, связанную с этим.
Этот тест измеряет скорость записи, но вы можете добавить —memory-oper=read измерить скорость чтения, которая в большинстве случаев должна быть немного выше. Вы также можете тестировать с меньшими размерами блоков, что увеличивает нагрузку на память.
Реалистично, однако, что большая часть ОЗУ будет достаточно хороша для запуска практически чего угодно, и вы обычно будете ограничены объемом ОЗУ, а не его реальной скоростью.
Источник
Информация об оперативной памяти в Linux. Свободная, занятая и тип памяти
В этой статье мы рассмотрим, как получить информацию об оперативной памяти (RAM) в Linux.
Мы воспользуемся утилитами командной строки доступными для большинства Linux дистрибутивов.
Свободная и занятая оперативная память
Для получения информации о количестве свободной и занятой оперативной памяти в Linux можно использовать различные утилиты и команды. Рассмотрим несколько распространенных способов.
Команда free
Команда free очень простая, она выводит информацию о общем количестве оперативной памяти, о количестве занятой и свободной памяти, а также об использовании файла подкачки.
По умолчанию объем памяти выводится в килобайтах. Используя опции, можно выводить объем памяти в других форматах. Некоторые опции:
- -m — в мегабайтах
- -g — в гигабайтах
- -h — автоматически определить формат
Команда vmstat
Команда vmstat выводит различную статистику по использованию памяти. Используя ключ -s можно вывести подробную статистику в табличном виде.
Команда top
top — это утилита командной строки, которая используется для мониторинга процессов и используемых ресурсов компьютера.
Запуск утилиты top :
В заголовке выводится информация об использованной оперативной памяти.
Команда htop
Утилита htop, также как и top, используется для мониторинга ресурсов и процессов.
Для установки утилиты htop в Ubuntu Linux (Linux Mint и других Ubuntu/Debian-дистрибутивах) выполните команду:
Запуск утилиты htop :
Файл /proc/meminfo
Описанные выше команды, в качестве источника информации используют системные файлы из файлов, хранящихся в виртуальной файловой системе /proc . В файле /proc/meminfo содержится информация об использовании памяти. Выведем содержимое файла /proc/meminfo :
Тип памяти и частота
Рассмотрим, как получить информацию об установленных в компьютер модулях оперативной памяти. Воспользуемся командной dmidecode
Используем следующую команду:
В выводе команды будет информация о слотах оперативной памяти. Для каждого слота отображается установленный модуль оперативной памяти, его тип (поле Type ), размер (поле Size ), скорость/частота (поле Speed ) и другая информация.
В зависимости от системы и оборудования не всегда удается получить все данные, поэтому некоторые поля могут быть пустыми или иметь надписи Not provided/Unknown.
Заключение
Мы рассмотрели различные способы для просмотра информации о доступной и занятой оперативной памяти, а также показали, как вывести информацию об установленных модулях оперативной памяти.
Для отслеживания использования ресурсов компьютера существует множество графических программ. Найти их можно в нашем каталоге программ для Linux в разделе Система/Мониторинг.
Источник
Бенчмарки для Linux-серверов: 5 открытых инструментов
Сегодня мы расскажем об открытых инструментах для оценки производительности процессоров, памяти, файловых систем и систем хранения данных.
В список вошли утилиты, предлагаемые резидентами GitHub и участниками тематических тредов на Reddit, — Sysbench, UnixBench, Phoronix Test Suite, Vdbench и IOzone.
/ Unsplash / Veri Ivanova
Sysbench
Это — утилита для нагрузочного тестирования MySQL-серверов, основанная на проекте LuaJIT, в рамках которого разрабатывается виртуальная машина для языка Lua. Автор инструмента — программист и эксперт по MySQL Алексей Копытов. Проект начинался как хобби, но со временем обрел признание сообщества. Сегодня sysbench используют в своей работе крупные университеты и ИТ-организации вроде IEEE.
Во время конференции SECR-2017 (запись выступления есть на YouTube) Алексей рассказал, что sysbench позволяет оценить производительность базы данных при переносе на новое оборудование, обновлении версии СУБД или резком изменении числа запросов. В общем случае синтаксис команды для проведения теста выглядит следующим образом:
Эта команда определяет тип (cpu, memory, fileio) и параметры нагрузочного теста (количество потоков, число запросов, скорость обработки транзакций). В целом инструмент способен обрабатывать миллионы событий за секунду. Подробнее об архитектуре и внутреннем устройстве sysbench Алексей Копытов рассказал в одном из выпусков подкаста Software Development Podcast.
UnixBench
Набор инструментов для оценки производительности Unix-систем. Его представили инженеры из университета Монаша в 1983 году. С того момента поддержкой инструмента занималось множество людей, например, авторы журнала о микрокомпьютерных технологиях Byte Magazine и участник LKML Дэвид Ниеми (David Niemi). За выход следующей версии инструмента отвечает Энтони Воэлм (Anthony Voellm) из Microsoft.
UnixBench представляет собой набор индивидуальных тестов. Они сопоставляют скорость выполнения кода на машине под управлением Unix с производительностью эталонной системы, в роли которой выступает SPARCstation 20-61. На основе этого сравнения генерируется балл, определяющий производительность.
Среди доступных тестов числятся: Whetstone, который описывает эффективность операций с плавающей точкой, File Copy, оценивающий скорость копирования данных, и несколько 2D и 3D-бенчмарков. Полный список тестов можно найти в репозитории на GitHub. Многие из них используют для оценки производительность виртуальных машин в облаке.
Phoronix Test Suite
Этот комплекс тестов разработан авторами веб-ресурса Phoronix, на котором публикуются новости о дистрибутивах GNU/Linux. Впервые Test Suite представили в 2008 году — тогда он включал 23 различных теста. Позже разработчики запустили облачный сервис OpenBenchmarking.org, на котором пользователи могли публиковать собственные тестовые сценарии. Сегодня на нем представлено около 60 бенчмарк-наборов, в том числе связанных с машинным обучением и технологией ray-tracing.
Наборы специализированных скриптов позволяют протестировать отдельные компоненты системы. С их помощью можно оценить время компиляции ядра и кодирования видеофайлов, скорость сжатия архиваторов и др. Для запуска тестов достаточно написать соответствующую команду в консоли. Например, эта команда инициирует оценку производительности CPU:
Во время тестирования Test Suite самостоятельно контролирует состояние оборудования (температуру CPU и скорость вращения кулеров), защищая систему от перегрева.
/ Unsplash / Jason Chen
Vdbench
Инструмент для генерации I/O-нагрузки на дисковые системы, разработанный Oracle. Он помогает оценить производительность и целостность СХД (о том, как посчитать теоретическую производительность дисковой системы, мы подготовили краткую справку).
Работает решение следующим образом: на реальной системе запускается программа SWAT (Sun StorageTek Workload Analysis Tool), которая создает дамп со всеми обращениями к диску за определённый период. Записываются метка времени, тип операции, адрес и размер блока данных. Далее, используя файл с дампом, vdbench эмулирует нагрузку на любой другой системе.
Список параметров для управления утилитой есть в официальном документе Oracle. Исходный код утилиты можно найти на сайте компании.
IOzone
Консольная утилита для оценки производительности файловых систем. Она определяет скорость чтения, записи и перезаписи файлов. В разработке инструмента приняли участие десятки программистов, но автором его первой версии считается инженер Уильям Норкотт (William Norcott). Разработку поддержали такие компании, как Apple, NetApp и iXsystems.
Для управления потоками и их синхронизации во время тестирования инструмент использует стандарт POSIX Threads. По завершении работы IOzone выдает отчет с результатами или в текстовом формате, или в виде электронной таблицы (Excel). Также инструмент имеет в составе скрипт gengnuplot.sh, который строит по данным таблиц трехмерный график. Примеры таких графиков можно найти в документации к инструменту (стр. 11–17).
IOzone доступен в качестве тестового профайла в уже упомянутом Phoronix Test Suite.
Дополнительное чтение из наших блогов и социальных сетей:
Баг в Linux 5.1 приводил к потере данных — корректирующий патч уже вышел
Есть мнение: технология DANE для браузеров провалилась
Зачем нужен мониторинг?
Резервное копирование файлов: как подстраховаться от потери данных
Как перенести системный жесткий диск в виртуальную машину?
Все говорят об утечках ПД — чем поможет IaaS-провайдер
Короткий ликбез: как устроена ЭЦП
Справочная: как работает закон о персональных данных
Источник