---
name: "KERNEL_PMDAS"
section: "1"
platform: "linux"
package: "pcp"
version: "7.2.2-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/KERNEL_PMDAS"
---

# KERNEL\_PMDAS(1)

operating system kernel performance metrics domain agents

## NAME

**pmdaaix**, **pmdadarwin**, **pmdafreebsd**, **pmdalinux**, **pmdanetbsd**, **pmdaopenbsd**, **pmdasolaris**, **pmdawindows** - operating system kernel performance metrics domain agents

## SYNOPSIS

**$PCP\_PMDAS\_DIR/aix/pmdaaix** \[**-D** *debug*\] \[**-d** *domain*\] \[**-l** *logfile*\] \[**-U** *username*\]\
 **$PCP\_PMDAS\_DIR/darwin/pmdadarwin** \[**-D** *debug*\] \[**-d** *domain*\] \[**-l** *logfile*\] \[**-U** *username*\]\
 **$PCP\_PMDAS\_DIR/freebsd/pmdafreebsd** \[**-D** *debug*\] \[**-d** *domain*\] \[**-l** *logfile*\] \[**-U** *username*\]\
 **$PCP\_PMDAS\_DIR/linux/pmdalinux** \[**-A**\] \[**-D** *debug*\] \[**-d** *domain*\] \[**-l** *logfile*\] \[**-U** *username*\]\
 **$PCP\_PMDAS\_DIR/netbsd/pmdanetbsd** \[**-D** *debug*\] \[**-d** *domain*\] \[**-l** *logfile*\] \[**-U** *username*\]\
 **$PCP\_PMDAS\_DIR/netbsd/pmdaopenbsd** \[**-D** *debug*\] \[**-d** *domain*\] \[**-l** *logfile*\] \[**-U** *username*\]\
 **$PCP\_PMDAS\_DIR/solaris/pmdasolaris** \[**-D** *debug*\] \[**-d** *domain*\] \[**-l** *logfile*\] \[**-U** *username*\]\
 **$PCP\_PMDAS\_DIR/windows/pmdawindows** \[**-D** *debug*\] \[**-d** *domain*\] \[**-l** *logfile*\] \[**-U** *username*\]

## DESCRIPTION

Each supported platform has a kernel Performance Metrics Domain Agent (PMDA) which extracts performance metrics from the kernel of that platfrom. A variety of platform-specific metrics are available, with an equally varied set of access mechanisms - typically this involves special system calls, or reading from files in kernel virtual filesystems such as the Linux *sysfs* and *procfs* filesystems.

The platform kernel PMDA is one of the most critical components of the PCP installation, and must be as efficient and reliable as possible. In all installations the default kernel PMDA will be installed as a shared library and thus executes directly within the [**pmcd**(1)](/pmcd/1.md) process. This slightly reduces overheads associated with querying the metadata and values associated with these metrics (no message passing is required).

Unlike many other PMDAs, the kernel PMDA exports a number of metric namespace subtrees, such as kernel, network, swap, mem, ipc, filesys, nfs, disk and hinv (hardware inventory).

Despite usually running as shared libraries, most installations also include a stand-alone executable for the kernel PMDA. This is to aid profiling and debugging activities, with [**dbpmda**(1)](/dbpmda/1.md) for example. In this case (but not for shared libraries), the following command line options are available:

- **-A**

  Disables use of the credentials provided by **PMAPI** client tools, and simply runs everything under the "root" account. Only enable this option if you understand the risks involved, and are sure that all remote accesses will be from benevolent users. If enabled, unauthenticated remote **PMAPI** clients will be able to access potentially sensitive performance metric values which an unauthenticated **PMAPI** client usually would not be able to. Refer to CVE-2012-3419 for additional details.

- **-d**

  It is absolutely crucial that the performance metrics *domain* number specified here is unique and consistent. That is, *domain* should be different for every PMDA on the one host, and the same *domain* number should be used for the same PMDA on all hosts.

- **-l**

  Location of the log file.  By default, a log file named *\[platform\].log* is written in the current directory of [**pmcd**(1)](/pmcd/1.md) when **pmda\[platform\]** is started, i.e. **$PCP\_LOG\_DIR/pmcd**. If the log file cannot be created or is not writable, output is written to the standard error instead.

- **-U**

  User account under which to run the agent. The default is either the privileged "root" account on some platforms (Linux, for example) or the unprivileged "pcp" account (wherever possible).

## INSTALLATION

Access to the names, help text and values for the kernel performance metrics is available by default - unlike most other agents, no action is required to enable them and they should not be removed.

## FILES

- **$PCP\_PMDAS\_DIR/\[platform\]/help**

  default help text file for the the kernel metrics

- **$PCP\_LOG\_DIR/pmcd/\[platform\].log**

  default log file for error messages and other information from the kernel PMDA.

## PCP ENVIRONMENT

Environment variables with the prefix **PCP\_** are used to parameterize the file and directory names used by PCP. On each installation, the file */etc/pcp.conf* contains the local values for these variables. The **$PCP\_CONF** variable may be used to specify an alternative configuration file, as described in [**pcp.conf**(5)](/pcp.conf/5.md).

## DEBUGGING OPTIONS

The **-D** or **--debug** option enables the output of additional diagnostics on *stderr* to help triage problems, although the information is sometimes cryptic and primarily intended to provide guidance for developers rather than for end-users. *debug* is a comma separated list of debugging options; use [**pmdbg**(1)](/pmdbg/1.md) with the **-l** option to obtain a list of the available debugging options and their meaning.

Debugging options specific to **pmdaaix**, **pmdafreebsd**, **pmdanetbsd**, **pmdaopenbsd** and **pmdasolaris** are as follows:

| | |
| --- | --- |
| Option | Description |
| appl0 | verbose diagnostics |

Debugging options specific to **pmdalinux** are as follows:

| | |
| --- | --- |
| Option | Description |
| appl1 | disk-related metrics |
| appl8 | filesys metrics |

## SYNOPSIS

## SEE ALSO

[**PCPIntro**(1)](/PCPIntro/1.md), [**dbpmda**(1)](/dbpmda/1.md), [**pmcd**(1)](/pmcd/1.md), [**pcp.conf**(5)](/pcp.conf/5.md) and [**pcp.env**(5)](/pcp.env/5.md).
