Bonnie++
| Автор: Sergey Minaev |
Bonnie++ - популярный бенчмарк для тестирования производительности жестких дисков и файловых систем.
Как видно из названия, Bonnie++ основан на бенчмарке Bonnie. Существует много различных типов операций над файлами и разные программы их по разному используют. Bonnie++ тестирует некоторые из них и выводит результат по каждому из тестов. Распространяется по лицензии GPL2.
Есть две секции операций в тестах. Первая - IO тест, который моделирует поведение некоторых приложений баз данных. Вторая - тест на создание, чтение и удаление большого количества маленьких файлов.
Bonnie++ позволяет эмулировать работу почтового сервера, базы данных и много других вещей. Этим бенчмарком можно просто сильно нагрузить жесткий диск, чтобы убедиться в его работоспособности. С помощью Bonnie++ можно протестировать производительность в различных зонах жесткого диска.
Bonnie++ может действительно хорошо протестировать работу жесткого диска и с помощью нее вы сможете наиболее четко увидеть, как изменится производительность вашей системы, если вы, к примеру, измените настройки файловой системы или саму файловую систему, или же перенесете данные с локального диска в сеть и т.д.
Опции bonnie++:
-d - директория, в которой будут проводиться тесты
-s - размер файлов для IO теста (в МБ). Если размер больше 1ГБ, тогда для теста будет использоваться несколько файлов, каждый из которых будет размером 1ГБ. Если размер равен 0, этот тест будет пропущен. Так же bonnie++ даст рекомендацию, что размер файла должен быть равен двойному размеру вашей ОЗУ. Собственно, такой размер и будет использоваться, если не указать его самому.
-n - кол-во файлов для теста по созданию файлов, кратное 1024. Указывается так:
number:max:min:num-directories, где:
number - кол-во файлов;
max - максимальный размер файла;
min - минимальный размер файла. По умолчанию оба - 0. Если max и min указаны, размер генерируется рандомно для каждого файла.
num-directories - кол-во поддиректорий.
Если кол-во файлов - 0, этот тест будет пропущен. Если max равен -1 (минус один), вместо файлов будут создаваться жесткие ссылки. Если max равен -2 (минус два), вместо файлов будут создаваться символические ссылки.
-r - размер ОЗУ в мегабайтах. Хорошо определяется программой. Можно не указывать, если не нужно.
-m - название компьютера. Нужно только для различения результатов с разных компьютеров.
-x - кол-во запусков теста. Нужно, если вы хотите провести больше чем один тест. При указании этой опции, bonnie++ сразу выплюнет длинную строку текста перед началом теста - не беспокойтесь - это описание вывода в формате CSV, т.к. с опцией -x bonnie++ будет выводить результаты теста сразу в этом формате пока все тесты не будут завершены или пока вы не прибьете процесс сами :) Как преобразовать его в красивую таблицу, будет описано ниже.
-u - пользователь, от имени которого будет работать тест.
-q - Если указана эта опция, bonnie++ будет выводить только результаты тестов и сообщения об ошибках (если они будут). Удобно использовать вместе с опцией -x
Примеры запуска bonnie++:
$ /usr/sbin/bonnie++ -d /files# все по умолчанию, указали только директорию$ /usr/sbin/bonnie++ -d /files -n 100:15000:0:20# указали настройки для теста по созданию файлов - создать 100*1024 файла, максимальный размер - 15000 байт, минимальный - 0 байт, 20 поддиректорий$ /usr/sbin/bonnie++ -d /files -q -x 10 # сокращенный режим вывода. 10 повторов теста $ /usr/sbin/bonnie++ -d /files -q > out.csv$ /usr/sbin/bonnie++ -d /files -q > out.csv && cat out.csv | bon_csv2html > bonnie_out.html#сокращенный режим вывода и записать результаты в файл out.csv#сокращенный режим вывода, записать результаты в out.csv и сразу перевести их в html
Вы можете запускать bonnie++ с настройками по умолчанию, самой важной опцией является -n , т.к. именно в ней задаются параметры для одного из основных тестов.
Пример работы с bonnie++:
$ /usr/sbin/bonnie++ -d /filesWriting a byte at a time...doneWriting intelligently...doneReading a byte at a time...doneRewriting...done Reading intelligently...donestart 'em...done...done...done...done...done...Create files in sequential order...done. Stat files in sequential order...done.Stat files in random order...done.Delete files in sequential order...done. Create files in random order...done. Delete files in random order...done.Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--Version 1.96 ------Sequential Output------ --Sequential Input- --Random- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CPVersion 1.96 ------Sequential Create------ --------Random Create--------desktop 7G 224 93 76543 17 36030 9 499 71 100529 11 154.7 4 Latency 72149us 1595ms 962ms 142ms 143ms 921ms desktop -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--1.96,1.96,desktop,1,1270024521,7G,,224,93,76543,17,36030,9,499,71,100529,11,154.7,4,16,,,,,9654,38,+++++,+++,18685,54,21079,77,+++++,+++,21865,70,72149us,1595ms,962ms,142ms,143ms,921ms,7462us,2218us,5072us,3418us,905us,5910usfiles /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 9654 38 +++++ +++ 18685 54 21079 77 +++++ +++ 21865 70Latency 7462us 2218us 5072us 3418us 905us 5910us
Не очень приятный глазу вывод... Но вы можете это улучшить. Последняя длинная строка - сокращенный вывод. Скопируйте ее, чтобы получилось так:
$ echo 1.96,1.96,desktop,1,1270024521,7G,,224,93,76543,17,36030,9,499,71,100529,11,154.7,4,16,,,,,9654,38,+++++,+++,18685,54,21079,77,+++++,+++,21865,70,72149us,1595ms,962ms,142ms,143ms,921ms,7462us,2218us,5072us,3418us,905us,5910us | bon_csv2html > bonnie_out.html
Теперь откройте html файл в браузере (Я не стал вставлять пример таблицы с результатами, т.к. она по не влазит по ширине в сайт). Уже лучше! Теперь осталось узнать что это все означает и, что самое трудное, понять, что с этим можно сделать :) Но это уже тема отдельной серьезной статьи, а тут - всего-лишь маленький обзор, чтобы вы могли понять, с чем имеете дело.

Комментарии
Отправить комментарий