community.general.cgroup_memory_recap callback – Profiles maximum memory usage of tasks and full execution using cgroups

Note

This callback plugin is part of the community.general collection (version 9.4.0).

It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install community.general. You need further requirements to be able to use this callback plugin, see Requirements for details.

To use it in a playbook, specify: community.general.cgroup_memory_recap.

Callback plugin

This plugin is an aggregate callback. It adds additional console output next to the configured stdout callback. See Callback plugins for more information on callback plugins.

Synopsis

  • This is an ansible callback plugin that profiles maximum memory usage of ansible and individual tasks, and displays a recap at the end using cgroups.

Requirements

The below requirements are needed on the local controller node that executes this callback.

  • whitelist in configuration

  • cgroups

Parameters

Parameter

Comments

cur_mem_file

string / required

Path to memory.usage_in_bytes file. Example /sys/fs/cgroup/memory/ansible_profile/memory.usage_in_bytes.

Configuration:

  • INI entry:

    [callback_cgroupmemrecap]
    cur_mem_file = VALUE
    
  • Environment variable: CGROUP_CUR_MEM_FILE

max_mem_file

string / required

Path to cgroups memory.max_usage_in_bytes file. Example /sys/fs/cgroup/memory/ansible_profile/memory.max_usage_in_bytes.

Configuration:

  • INI entry:

    [callback_cgroupmemrecap]
    max_mem_file = VALUE
    
  • Environment variable: CGROUP_MAX_MEM_FILE

Notes

Note

  • Requires ansible to be run from within a cgroup, such as with cgexec -g memory:ansible_profile ansible-playbook ....

  • This cgroup should only be used by ansible to get accurate results.

  • To create the cgroup, first use a command such as sudo cgcreate -a ec2-user:ec2-user -t ec2-user:ec2-user -g memory:ansible_profile.

Authors

  • Unknown

Hint

Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.