Сводный отчет об использовании общих ресурсов приложения Ubuntu/Centos для процессора, памяти, ввода-вывода
Когда я разрабатываю приложение и хочу оптимизировать его, мне нужна обратная связь о ресурсах, которые оно в целом использовало для выполнения задачи. Я использую в настоящее время top
и просто посмотрите на процент использования процессора. Это дает мне грубое представление о производительности приложения, которое разделено на сервисы, которые использует приложение.
Однако этот способ "измерения" очень неточен и его трудно точно воспроизвести, поскольку из-за различных служб, работающих на сервере, которые находятся за пределами области измерения и также вызывают колебания доступных ресурсов для приложения, которое я разрабатываю. Кроме того, значение использования процессора в 20% дает очень абстрактное значение, с которым никто не может сравниться.
Есть ли какая-либо командная строка или инструмент с графическим интерфейсом, который мог бы измерять потребление сервисов приложений и возвращать общее абсолютное значение, идеально в виде отчета, который я мог бы сохранить в файл, а затем использовать в качестве отправной точки для улучшения приложения?
Я предполагаю, что мог бы быть инструмент измерения использования ресурсов, который дает свои измерения ЦП в тиках ЦП на ядро, которое было задействовано, а не в процентах, и дополнительно измерение можно запустить вручную (или по сценарию) перед запуском разрабатываемого приложения и один раз. приложение завершает свою задачу, измерение останавливается, и затем мне предоставляется сводка (общая сумма) всех тиков ЦП, необходимого для выполнения задачи, вместо значения использования ЦП в реальном времени, которое может сильно варьироваться в зависимости от времени приложение работает.
Для использования ЦП мне достаточно иметь только общее количество тактов, потребляемых службой приложения, но для памяти или любых других операций ввода-вывода было бы полезно иметь общее количество попыток доступа, максимальное пиковое распределение, общий обмен данными. для записи / чтения.
Есть ли такой инструмент? Я думаю, что некоторые инструменты профилирования могут иметь такие инструменты? Но я предполагаю, что наборы инструментов для профилирования нацелены не на службы, а на исходные коды, верно?
Я ищу инструмент измерения, который предназначен не для измерений, выполненных на основе исходного кода, а для измерения скомпилированных сервисов, работающих в системе - в основном что-то вроде top
но не показывать значения в реальном времени, а генерировать итоговую сводку после того, как я закончу измерение.
Идеально, если инструмент измерения будет поддерживать белый список имен сервисов, чтобы я мог сузить измерение до точных сервисов, которые необходимы для выполнения задачи и получить общее потребление ресурсов.
Большинство разрабатываемых мною приложений помещаются в контейнеры Docker, если это что-то меняет.
Если вы все еще здесь, возможно, вы знаете о каком-либо стандарте измерения использования ресурсов приложения, своего рода отраслевой практике, которая сохраняет такой результат измерения в определенном формате, чтобы его можно было поместить в репозиторий в качестве ориентира для будущего развития. или поделиться с другими людьми, чтобы они могли также сделать измерение и сравнить свою платформу, если она более эффективна для выполнения конкретной задачи?