Бенчмаркинг, профилирование на виртуальных машинах - PullRequest
1 голос
/ 15 сентября 2011

Во многих различных источниках вы можете прочитать о проблемах хранения времени на виртуальных машинах.Поскольку каждый тест основан на сохранении времени, я не уверен, как интерпретировать, например, результаты тестирования Apache или результаты профайлера xdebug на vmware и насколько они достоверны.

http://communities.vmware.com/docs/DOC-5581

VMware предлагает создать специальный виртуальный компьютер для тестирования производительности.Кроме того, есть много советов, которые, кажется, являются обходными решениями (установите VMware Tools, специальную конфигурацию и т. Д.).

Особенно, когда речь идет о проблемах производительности дискового ввода-вывода, я очень обеспокоен тем, насколько точнорезультаты есть.Расмус Лердорф рассказал об этом на drupalcon, сказав, что некоторые из его улучшений производительности, связанных с вызовами stat, не видны в его тестах VMware, потому что VMware имеет специальное дисковое кэширование, которое вы не можете сравнить с физическими дисками:

http://www.nowpublic.com/tech-biz/rasmus-lerdorf-simple-hard-drupalcon-2008-key-note

После всего этого я не уверен, способен ли VMware вообще проводить какие-либо тесты.

Ответы [ 2 ]

0 голосов
/ 18 сентября 2011

Многое зависит от того, что вы пытаетесь сделать.

  1. Просто продолжайте измерения, чтобы искать регрессии
  2. Найдите временные затраты, которые вы можете исправить, чтобы улучшить производительность

Многие думают, что это одно и то же, но я думаю, что это происходит из-за ограниченного опыта (2).

То, как я делаю (2), не измеряет, а спрашивает,Несколько случайных моментов во времени, что происходит и почему.Для этого не имеет большого значения, находится ли он на виртуальной машине или нет.Если он делает что-то подлое, которое занимает большую долю времени, вы увидите, будет ли это на виртуальной машине или нет.Точная фракция не имеет значения.Разоблачение подлых действий - вот что важно.

Вот пример на python , но вы можете сделать это на любом языке.

0 голосов
/ 15 сентября 2011

Что ж, это может быть правдой в отношении кэширования диска и низкой производительности без vmware-tools.
Но я считаю, что Vmware очень помогает в разработке, поскольку я использую виртуальную машину Linux в качестве сервера разработки, а я пишу код вWindows.
И я могу легко оценить и найти потенциальные узкие места в своем коде.

Возможно, он не идеален и может упустить некоторые вещи, но все же это гораздо проще и дешевле, чем установка выделенного Linux-бокса.

Обновление
ApacheBench - хороший инструмент для тестирования масштабируемости и необработанной метрики RequestPerSeconds.

Но для поиска узких мест в моих PHP-скриптах и ​​тестирования эффектов оптимизации кодаЯ всегда использую XDebug вместе с Webgrind или WinCacheGrind для просмотра выходных данных профилировщика.

Если у вас есть окно linux, вы можете установить XDebugиспользуя pecl install xdebug или для windows, вы можете найти готовые двоичные файлы на сайте xdebug.

Я использую следующую конфигурацию для Xdebug

[xdebug]
xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 1
xdebug.profiler_output_dir = "/opt/lampp/htdocs/profiles"
xdebug.profiler_output_name = "cachegrind.out.%s.%t"

with profiler_enable_trigger Я могу при необходимости выборочно профилировать, передавая XDEBUG_PROFILE в качестве параметра строки запроса.
Также я настроил webgrind, чтобы я мог непосредственно просматривать выходные данные графически в самом браузере.

...