Назад | Перейти на главную страницу

Сравнительный анализ ввода-вывода хостинг-провайдеров с Бонни

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

В качестве эксперимента и в образовательных целях я решил посмотреть, смогу ли я сравнить, насколько хорош IO для каждого из них.

Немного исследований привело меня к Бонни ++

Итак, я установил его на сервер и выполнил эту простую команду

/usr/sbin/bonnie -d /tmp/foo 

Все 3 машины у разных хостинг-провайдеров - это выделенные машины, одна - VPS, две другие - на какой-то облачной платформе, например. VMWare / Xen с использованием какой-то кластерной SAN для хранения

Это может быть наивно, но вот результаты, которые я нашел.

    HOST A

    Version 1.03c       ------Sequential Output------ --Sequential Input- --Random-
                        -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
    Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
    xxxxxxxxxxxxxxxx 1G 45081  88 56244  14 19167   4 20965  40 67110   6  67.2   0
                        ------Sequential Create------ --------Random Create--------
                        -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
                  files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                     16 15264  28 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++
    xxxxxxxx,1G,45081,88,56244,14,19167,4,20965,40,67110,6,67.2,0,16,15264,28,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++



    HOST B

    Version 1.03d       ------Sequential Output------ --Sequential Input- --Random-
                        -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
    Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
    xxxxxxxxxxxx     4G 43070  91 64510  15 19092   0 29276  47 39169   0 448.2   0
                        ------Sequential Create------ --------Random Create--------
                        -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
                  files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                     16 24799  52 +++++ +++ +++++ +++ 25443  54 +++++ +++ +++++ +++
    xxxxxxx,4G,43070,91,64510,15,19092,0,29276,47,39169,0,448.2,0,16,24799,52,+++++,+++,+++++,+++,25443,54,+++++,+++,+++++,+++



    HOST C

    Version 1.03c       ------Sequential Output------ --Sequential Input- --Random-
                        -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
    Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
    xxxxxxxxxxxxx 1536M 15598  22 85698  13 258969  20 16194  22 723655  21 +++++ +++
                        ------Sequential Create------ --------Random Create--------
                        -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
                  files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                     16 14142  22 +++++ +++ 18621  22 13544  22 +++++ +++ 17363  21
    xxxxxxxx,1536M,15598,22,85698,13,258969,20,16194,22,723655,21,+++++,+++,16,14142,22,+++++,+++,18621,22,13544,22,+++++,+++,17363,21

Итак, сначала, как лучше всего читать цифры и есть ли какие-либо проблемы с их сравнением?

Является ли это каким-либо образом истинным представлением скорости ввода-вывода?

Если нет, могу ли я это проверить?

Примечание: эти 3 машины используют либо Ubuntu, либо Debian (я полагаю, это не имеет особого значения)

Эти сайты могут помочь вам в интерпретации результатов Бонни:

http://www.textuality.com/bonnie/advice.html

http://www.issociate.de/board/post/478953/Understanding_bonnie++_results.html

http://sourceforge.net/projects/witme/files/bonnie-to-chart/

Но сначала я хотел бы исправить здесь некоторую несогласованность:

Вы выполнили три разных размера тестов и не показали никаких других параметров системы, поэтому ваши результаты довольно сложно оценить. (Какие здесь центральные процессоры? Что за дисковая подсистема? Почему вы использовали три разных размера? Почему вы использовали разные версии bonnie? На каких файловых системах вы работали? Делали ли вы какие-либо улучшения параметров монтирования файловой системы?)

Знание того, какие спецификации важны для вас, зависит от потребностей вашего приложения: для потоковой передачи видео требуется быстрое чтение (ввод бонни). Для записи видео требуется быстрая запись (выход Bonnie). и т.п.

Вот несколько советов / приемов Бонни, которые я обычно использую:

  • Уменьшите системную оперативную память до минимума. Для этого можно передать параметры ядра при загрузке. mem = 512MB - это то, что я обычно использую. Это гарантирует, что эффекты кеширования вашей локальной ОС минимально влияют на тестирование ввода-вывода.

  • Используйте приличный размер теста для стресса ввода-вывода. Я считаю 5-20G хорошими тестовыми диапазонами. Убедитесь, что ваши результаты одинаковы для различных диапазонов, а затем используйте один и тот же размер для всех тестов.

  • Не беспокойтесь о тестах на каждый символ.
    Они не отражают реальное использование диска и требуют времени для выполнения. (почти все, что касается ввода-вывода диска, будет происходить с блоками, а не с символом)

  • Если вы работаете в сети SAN, подумайте об обнулении нашего блочного уровня перед запуском тестов. Иногда при выделении места возникает штраф за первую запись. Если вы полностью отключили свой диск перед запуском тестов, вы можете точно знать, что это не так. (выполнение нескольких итераций теста на одном узле и сравнение результатов также может помочь определить, является ли это проблемой)

  • Всегда публикуйте свою командную строку Bonnie, чтобы помочь другим скопировать ваши тесты.

Подсказка EC2: несколько человек обнаружили, что на AWS EBS используются программные полосы RAID0 для повышения производительности ввода-вывода.