Как проверить производительность ввода-вывода в Linux?
Тестирование производительности ввода-вывода в Linux
Ответ 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/
Ответ 8
Взгляните на IOzone: http://www.iozone.org/
Если вы хотите прочитать технический документ, иллюстрирующий использование в реальном мире кластера HPC, см. этот документ, стр. 36: http://i.dell.com/sites/content/business/solutions/hpcc/en/Documents/Dell-NSS-NFS-Storage-solution-final.pdf