Стоимость производительности профилирования веб-приложения в производстве

Они просто сжатие данных с помощью zlib или выкачивает алгоритмы, но не обеспечивает вывод для некоторого определенного формата файла. Это означает, что при хранении потока как есть к жесткому диску по всей вероятности Вы не будете в состоянии открыть его с помощью некоторого приложения (gzip или winrar), потому что заголовки файлов (магическое число, и т.д.) не включены в поток, который Вы должны записать им сами.

14
задан Ethan Heilman 26 March 2012 в 13:34
поделиться

2 ответа

OProfile и его предок DPCI были разработаны для профилирования производственных систем. Накладные расходы для них очень низкие, и они профилируют вашу полную систему , включая ядро, поэтому вы можете найти проблемы с производительностью в VM и в ядре и библиотеках.

Чтобы ответить на ваши вопросы:

  1. Накладные расходы: Это выборочные профилировщики , то есть они генерируют прерывания по таймеру или счетчику производительности через некоторый регулярный интервал, и они смотрят в каком коде в настоящее время выполняется. Они используют это для построения гистограммы того, где вы проводите свое время, и накладные расходы очень низкие (1-8% - это то, что они утверждают ) для разумных интервалов выборки.

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

  2. Использование в производственной среде: Единственное предостережение при использовании OProfile заключается в том, что вам необходимо установить его на производственной машине. Я считаю, что в Red Hat есть поддержка ядра, начиная с RHEL3, и я почти уверен, что другие дистрибутивы поддерживают ее.

  3. Память: Я не уверен, каков точный объем памяти OProfile, но я считаю, что он относительно небольшие буферы и время от времени выгружают их в файлы журнала.

  4. Java: OProfile включает агентов профилирования, которые поддерживают Java и знают о коде, выполняемом в JIT. Таким образом, вы сможете видеть вызовы Java, а не только вызовы C в интерпретаторе и JIT.

  5. Веб-приложения: OProfile - это профилировщик системного уровня, поэтому он ' не осведомлены о таких вещах, как сеансы, транзакции и т. д., которые может иметь веб-приложение.

    Тем не менее, это полносистемный профилировщик, поэтому, если ваша проблема с производительностью вызвана плохим взаимодействием между ОС и JIT, или, если он находится в какой-либо сторонней библиотеке, вы сможете это увидеть, потому что OProfile профилирует ядро ​​и библиотеки. Это преимущество для производственных систем, так как вы можете выявить проблемы, связанные с неправильной конфигурацией или особенностями производственной среды, которые могут отсутствовать в вашей тестовой среде.

  6. VisualVM: Не уверен в этом, так как у меня есть нет опыта работы с VisualVM

Вот руководство по использованию OProfile для поиска узких мест в производительности.

это полносистемный профилировщик, поэтому, если ваша проблема с производительностью вызвана плохим взаимодействием между ОС и JIT, или если он находится в какой-то сторонней библиотеке, вы сможете это увидеть, потому что OProfile профилирует ядро ​​и библиотеки. Это преимущество для производственных систем, так как вы можете выявить проблемы, связанные с неправильной конфигурацией или особенностями производственной среды, которые могут отсутствовать в вашей тестовой среде.

  • VisualVM: Не уверен в этом, так как у меня нет опыта работы с VisualVM

  • Вот руководство по использованию OProfile для поиска узких мест в производительности.

    это полносистемный профилировщик, поэтому, если ваша проблема с производительностью вызвана плохим взаимодействием между ОС и JIT, или если он находится в какой-то сторонней библиотеке, вы сможете это увидеть, потому что OProfile профилирует ядро ​​и библиотеки. Это преимущество для производственных систем, так как вы можете выявить проблемы, связанные с неправильной конфигурацией или особенностями производственной среды, которые могут отсутствовать в вашей тестовой среде.

  • VisualVM: Не уверен в этом, так как у меня нет опыта работы с VisualVM

  • Вот руководство по использованию OProfile для поиска узких мест в производительности.

    потому что OProfile профилирует ядро ​​и библиотеки. Это преимущество для производственных систем, так как вы можете выявить проблемы, связанные с неправильной конфигурацией или особенностями производственной среды, которые могут отсутствовать в вашей тестовой среде.

  • VisualVM: Не уверен в этом, так как у меня нет опыта работы с VisualVM

  • Вот руководство по использованию OProfile для поиска узких мест в производительности.

    потому что OProfile профилирует ядро ​​и библиотеки. Это преимущество для производственных систем, так как вы можете выявить проблемы, связанные с неправильной конфигурацией или особенностями производственной среды, которые могут отсутствовать в вашей тестовой среде.

  • VisualVM: Не уверен в этом, так как у меня нет опыта работы с VisualVM

  • Вот руководство по использованию OProfile для поиска узких мест в производительности.

    13
    ответ дан 1 December 2019 в 13:34
    поделиться

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

    Мой любимый его аспект заключается в том, что вы можете запускать виртуальную машину с запущенным агентом YourKit, и это не оказывает никакого влияния на производительность. только когда вы подключаете графический интерфейс и начинаете профилирование, это дает эффект.

    3
    ответ дан 1 December 2019 в 13:34
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: