Idle Sleep Monitor
This program monitors system resource usage and automatically suspends the system when it detects extended periods of low resource utilization.
Requirements
- Linux system with systemd
- NVIDIA GPU with drivers installed
- Go 1.21 or later
- Root privileges (required for system suspension)
Installation
- Clone this repository
- Install dependencies:
go mod download
- Build the program:
go build
Usage
The program must be run as root since it needs permissions to suspend the system:
sudo ./idlesleep
The program will monitor the following metrics over a 5-minute period:
- CPU usage across all cores (threshold: < 20%)
- GPU usage (threshold: < 20%)
- Disk I/O (threshold: < 5 MB/s)
- Network I/O (threshold: < 1 MB/s)
If all metrics stay below their thresholds for the entire monitoring period, the system will be suspended.
Configuration
The thresholds are defined as constants in main.go
. You can modify them by editing the following values:
const (
checkInterval = 10 * time.Second
monitoringPeriod = 5 * time.Minute
cpuThreshold = 20.0 // percentage
gpuThreshold = 20.0 // percentage
diskThreshold = 5 * 1024 * 1024 // 5 MB/s
networkThreshold = 1 * 1024 * 1024 // 1 MB/s
)
Description
Languages
Go
100%