The New Relic infrastructure agent is consuming too much CPU.
The New Relic infrastructure agent is designed to report a broad range of system data with minimal CPU and memory consumption. However, if you have a need to reduce your CPU consumption, you can disable or decrease the sampling frequency of various samplers and plugins.
This topic highlights some
newrelic-infra.yml configurations that may reduce your CPU usage:
Reduce event sampling
The infrastructure agent reports several default events at specific frequencies. To lower the overhead, you can reduce the sampling frequency in seconds, or you can completely disable the samplers by setting the corresponding property value to
We don't recommend a sample rate larger than 60 seconds because you may see gaps in the New Relic user interface charts.
The table below lists some samplers to configure:
|Event||Sampling frequency||Allow/deny list|
|Network||Network sampling rate||Not available|
|Process||Process sampling rate||Allow list (Windows only)|
|Storage||Storage sampling rate||Deny list|
|System||System sampling rate||Not available|
Reduce agent plugin reporting
The infrastructure agent has built-in plugins that collect inventory data (specific system configuration and state information). For some systems, the CPU consumption may be relatively high if the plugins are gathering a lot of data. To reduce the footprint, you can disable or decrease the sampling frequency for specific plugins that report data you don’t want.
- How to enable and disable plugins
Disable a single plugin: To disable a plugin, set the corresponding property value to
Disable all plugins:
Enable selected plugins: To enable certain plugins, insert an exception in
disable_all_plugins. For example, the following configuration disables all plugins, but the Network Interfaces plugin reports every 120 seconds:
disable_all_plugins: true network_interface_interval_sec: 120
- Disable SELinux
semodule -l(Linux only)
The SELinux plugin periodically invokes the
semodule -lsystem command to get information about the existing SELinux modules. In most CentOS/RedHat distributions, this command will generate CPU consumption peaks.
To disable this functionality, insert the following configuration option in your
- Reduce or disable Sysctl (Linux only)
The Sysctl plugin walks the whole
/sysdirectory structure and reads values from all the files there. Disabling it or reducing the interval may decrease some CPU System time in the Infrastructure agent.
You can disable inventory frequency by setting it to a negative number or reduce the frequeny by setting the
sysctl_interval_secconfiguration value to the number of seconds between consecutive executions of the plugin.
For example, to execute the plugin once every 10 minutes:
To disable the Sysctl plugin:
The current default value for the
- Additional plugins to reduce or disable
The following inventory plugins are not especially CPU consuming, but you can still reduce their frequency or disable them by setting the corresponding configuration options.
For configuration of these Linux plugins, see Plugin variables:
- Cloud Security Groups
- Daemon Tools
- Kernel Modules
- Network interfaces
- SSHD configuration
For configuration of these Windows plugins, see Plugin variables:
- Network interfaces
- Windows services
- Windows updates
Review on-host integrations
If you use infrastructure on-host integrations, this may have additional impacts on CPU usage. The nature of the impact and the methods to adjust the impact depend on the integration you're using.
Here are some ways to adjust on-host integration CPU usage: