distributed-system-analysis / pbench

A benchmarking and performance analysis framework
http://distributed-system-analysis.github.io/pbench/
GNU General Public License v3.0
188 stars 108 forks source link

Investigation into Replacing `pidstat` Tool Implementation #2815

Open portante opened 2 years ago

portante commented 2 years ago

Investigation into Replacing pidstat Tool Implementation

The pidstat Pbench Agent tool is a wrapper around the sysstat v12.0.3-1 version of the pidstat command. The specific version is because the Pbench Agent wrapper, pidstat-convert (agent/tool-scripts/datalog/), understands a very specific output format, and v12.0.3-1 was the last version of sysstat against which it is verified to work.

The ultimate invocation of the pidstat command looks like the following:

What About Using the pcp pidstat Command?

Not an option at this time because not all the options used currently are supported by pcp pidstat. Here are the unsupported options:

Without these options we cannot use pcp-pidstat as a direct replacement.

However, we probably wouldn't want to since we really don't want to replace the command as is, but move to a PCP archive collection directly, and then have the data generated from the archive for compatibility.

portante commented 2 years ago

Filed PR https://github.com/performancecopilot/pcp/pull/1586 to fix the pcp pidstat -p ALL handling.

portante commented 2 years ago

Filed PR https://github.com/performancecopilot/pcp/pull/1587 to add the -u switch.

portante commented 2 years ago

Filed PR https://github.com/performancecopilot/pcp/pull/1588 to add the -w switch.

portante commented 2 years ago

Started work to add -d support to pcp pidstat, and then we can consider working on -h support to get one line output.

However, to replace pidstat data collection with PCP for Pbench, all I think we need to do is generate a list of metrics that a pmlogger can collect so that pcp pidstat can read from it later.