Подтвердить что ты не робот

Тестирование производительности ввода-вывода в Linux

Как проверить производительность ввода-вывода в Linux?

4b9b3361

Ответ 1

Показатель IO и файловой системы - сложная тема. Во всех ситуациях нет единого инструмента сравнения. Ниже приведен небольшой обзор различных инструментов бенчмаркинга:

Хранилище блоков:

  • IOMeter - Высокая настраиваемость и позволяет координировать работу нескольких клиентов. Требуется ПК с ОС Windows для приложения для координации. Разработан Intel. В Linux, принимайте максимальные ставки старше (по крайней мере 2006.07.27 и ранее) с большим количеством соли, потому что метод отправки не был оптимальным.

Файловая система (синтетическая):

  • FFSB - Тест гибкой файловой системы. Очень аккуратный бенчмаркинг для Linux. Хорошая настройка рабочей нагрузки. NFS-бенчмаркинг (net-ffsb) немного необоснован.
  • Filebench - Исключительно мощный, но изначально разработанный для Solaris. Поддержка Linux не очень хорошая.
  • sysbench - главным образом инструмент бенчмаркинга для баз данных, но также базовый инструмент для бенчмаркинга.
  • bonnie - Кажется, устарел.
  • bonnie++ - порт С++ для bonnie. Легко, но, кажется, не очень настраиваемый.

Файловая система (рабочая нагрузка):

  • Postmark - Имитирует поведение IO почтового сервера. Слишком мало, чтобы подчеркнуть хорошие системы ввода-вывода.

Университет Стоуни Брук и IBM Watson Labs опубликовали очень рекомендуемую бумагу журнала в "Транзакция хранения" о контроле производительности файловой системы, в которой они представляют разные ориентиры и их сильные и слабые стороны: 9-летнее исследование производительности файловой системы и хранилища данных. В статье четко указано, что результаты большинства тестов по меньшей мере сомнительны.


Примечание. Связано ли программирование вопросов? Может быть, нет, но может быть. Я провожу много времени, сравнивая производительность IO систем, которые я разрабатываю. По крайней мере, для меня вопросы о том, как сравнивать эти вещи, очень связаны с программированием. Пожалуйста, не закрывайте все вопросы, которые не связаны с разработкой/программированием, с вашей точки зрения. Точка зрения других разработчиков может отличаться.

Ответ 2

tool: fio

ссылка: http://freshmeat.net/projects/fio/

проверить физический диск IO:

    ./fio examples/disk-zone-profile 

установить параметр: последовательный r/w: rw = read или rw = write случайный r/w: rw = randread или rw = randwrite

Ответ 3

если вам нужен быстрый способ без хлопот по установке чего-либо. Это метод, который я использую для теста скорости записи:

dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync

И результат выглядит примерно так:

[email protected]:/# dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 4.86922 s, 221 MB/s

Также:  удалите тестовый файл после этого, чтобы восстановить дополнительное пространство, используемое

Некоторое объяснение:

bs = block size
count = the no of blocks to be written

Отрегулируйте эти параметры, чтобы изменить размер файла, записанного в соответствии с вашими спецификациями сервера, и количество времени, которое вы хотите потратить на запись.

скорость чтения, как уже было предложено gtsouk, можно проверить, используя /dev/null в качестве вывода.

Ответ 4

dd if=/dev/sda of=/dev/null

Пусть это запустится в течение нескольких минут и остановит его с помощью ctrl + C. Он будет печатать скорость передачи данных вашего привода/контроллера. Это максимальная скорость чтения, которую вы можете получить с вашего диска.

Ответ 5

вам нужно указать, для чего вы тестируете, иначе тесты будут вводить в заблуждение. Существуют различные аспекты производительности ввода-вывода, которые необходимо выбрать для оптимизации, и различные параметры для воспроизведения.

Параметры вашей системы:

  • устройство хранения: жесткий диск, SSD (который?), рейд (который?)
  • файловая система, размер блока, режим журнала
  • кеш файлов, грязные пороги, объем памяти
  • планировщик ввода-вывода, его настройки
  • количество процессоров
  • версия ядра

Параметры теста:

  • производительность чтения или записи?
  • последовательный или случайный?
  • 1 нить или несколько?
  • размер запросов
  • оптимизировать пропускную способность или задержку запроса?

Ответ 6

Существует отличная программа для тестирования блока хранения IO в Unix, называемом IORATE. Вы можете получить копию на iorate.org.

Он может генерировать сложные смешанные IO, включая повторное использование (хиты) и горячие зоны для многоуровневого тестирования хранилища.

Ответ 7

SysBench

См. http://www.howtoforge.com/how-to-benchmark-your-system-cpu-file-io-mysql-with-sysbench

Пример

sysbench --test=fileio --file-total-size=150G prepare

sysbench --test=fileio --file-total-size=150G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run

Он также может тестировать производительность процессора, памяти, потоков и сервера баз данных,

Это потрясающе.

Или тестовое программное обеспечение, написанное в java: http://www.dacapobench.org/