cgroup-monitor#
A package to simplify CPU and Memory Analysis using cgroup. Primiarily created to give access to windows of CPU and Memory usage. The package also provides a built-in mechanism to manage the cgroup resources.
Installation#
pip install cgroup-monitor
Usage#
CGroupManager, a simple example.
from cgroup_monitor import CGroupManager
# Manage cgroup resources
manager = CGroupManager()
manager.create_cgroup("test_cgroup")
manager.set_cpu_limit("test_cgroup", 5) # 5 cores
manager.set_memory_limit("test_cgroup", 512 * 1024 * 1024) # 512MB Memory
CGroupMonitor, a simple example.
from cgroup_monitor import CGroupMonitor
monitor = CGroupMonitor("test_cgroup")
monitor.start_monitor()
# run task here
manager.add_process_to_cgroup("test_cgroup", 1234) # Add process with PID 1234 to the cgroup
last_n_op = monitor.get_last_n_operations(10) # Measurements from last 10 time interval
output = monitor.stop_monitor()
print(output)
# output = {
# "average_cpu_usage_percent": float,
# "max_cpu_usage_percent": float,
# "average_memory_usage_gib": float,
# "max_memory_usage_gib": float,
# "average_memory_usage_percent": float,
# "max_memory_usage_percent": float,
# "monitoring_duration_s": float
# }
License#
This project is licensed under the terms of the MIT license, see [LICENSE](./LICENSE).
Contributing#
Contributions are welcome, and they are greatly appreciated! Every little bit helps.
Links#
Source code: veedata/cgroup-monitor