Configuration

Getting Started

By default, pbench benchmarks collect configuration data of a system, stored in the sysinfo top level directory of a pbench result, collected at the beginning and end of a benchmark (with one exception, pbench-user-benchmark only collects at the end).

The structure of the sysinfo directory in a pbench result, for example, /var/lib/pbench-agent/pbench_userbenchmark_example_2019.07.18T12.00.00/ is given below followed by a brief explanation of each different type of configuration data.

  • sysinfo
  • end
    • hostname
    • block-params.log
    • config-5.0.17-300.fc30.x86_64
    • libvirt/
    • lstopo.txt
    • security-mitigation-data.txt
    • sosreport-localhost-localhost-pbench-2019-06-10-mrqgzbh.tar.xz
    • sosreport-localhost-localhost-pbench-2019-06-10-mrqgzbh.tar.xz.md5
    • stockpile.json
    • stockpile.log

config-[kernel_version]

The file contains kernel configuration data.

The data is collected using pbench-sysinfo-dump#L38. The script uses uname system utility (systemcall is a term used for all the APIs provided by the kernel) to collect kernel release information and then checks if a corresponding kernel configuration file exists on the system. If it does, the script simply copies the file, located in /boot directory, to the sysinfo directory.

The file contains data in a key value format where the key is a metric name and the value can be a string literal or a number. The keys and the values are separated by an equality sign.

security-mitigation-data.txt

The file contains CPU vulnerabilities data and RHEL-specific flag settings.

The data is collected using pbench-sysinfo-dump#L44. The script checks if /sys/devices/system/cpu/vulnerabilities directory exists. If it does, the script prints the filenames and the contents of all the files located in the directory. After that, it repeats the same steps for the /sys/kernel/debug/x86 directory.

The file contains data in a key value format where the key is a file name and the value is the content of the file.

libvirt/

The directory provides information about libvirt, an open-source API, daemon and management tool for managing platform virtualization.

The data is collected using pbench-sysinfo-dump#L60. The script copies libvirt files located at /var/log/libvirt and /etc/libvirt directories to the sysinfo/libvirt/log and sysinfo/libvirt/etc directories respectively. Only the files whose name follows the regex *.log are copied from the /var/log/libvirt directory.

lstopo.txt

The file provides information about the topology of the system.

The data is collected using pbench-sysinfo-dump#L71. The script executes the command lstopo --of txt and dumps its output into a text file only if /usr/bin/lstopo file exists on the system.

block-params.log

The file provides information about block devices.

The data is collected using pbench-sysinfo-dump#L79. The script loops over all the files which satisfy the regex: /sys/block/[s,h,v]d\*[a-z]/ and prints each file name along with the contents of the file.

The file contains data in a key value format where the key is the file name and the value is the content of the file..

sosreport tarball (e.g. sosreport-localhost-localhost-pbench-2019-05-29-rtvzlke.tar.xz)

The tarball contains system configuration and diagnostic information collected by invoking the sosreport command.

The data is collected using pbench-sysinfo-dump#L87. The script uses sosreport command with different plugins to get the required system information. The resulting tarball contains a number of files copied from the system as well as the output of several commands executed on the system.

ara

This specific file is not in the scope of my internship because ara works with python2 and Fedora 30, which is installed on my system, works with python3 only.

stockpile.json

The file contains system information gathered by the stockpile tool using Ansible.

The data is collected using pbench-sysinfo-dump#L153. The script runs a specified stockpile playbook with the given stockpile options. The stockpile playbook has a number of roles associated with it, for example, ceph, cpu, etc. for each of which there is a specific ansible playbook called main.yml, which contains the rules to collect information related to that role.

The file contains data in a json file format.

insights tarball

The tarball contains system information gathered by the insights-client.

The data is collected using pbench-sysinfo-dump#L189. The script uses insights-client command with different options to get the system information. The resulting tarball contains a number of files copied from the system as well as the output of several commands executed on the system.