QuietDisk is a lightweight Go application designed to manage the power states of hard drives by monitoring their activity. It helps reduce power consumption and extend the lifespan of drives by transitioning them into standby mode when idle. The tool also provides features for checking the current power state of drives and manually putting them into sleep mode.
- Monitors hard drive activity and puts idle devices into standby mode.
- Directly interacts with devices using custom SG_IO and HDIO commands, avoiding external dependencies.
- List and check the power mode of devices without running the daemon.
- Option to manually put devices into standby mode.
- Set a timeout for transitioning devices to standby mode after inactivity.
- Prevents frequent toggling by enforcing a delay before a device can re-enter standby mode after waking up.
- Set a threshold for Input/Output Operations Per Second to determine when a device is idle.
Usage: qd [options] [device ...]
Options:
-h, --help print this help
-v, --version print version
-H, --hdd-only works only with HDDs (rotational drives), skipping SSDs and NVMe devices.
-l, --list lists all available devices with their power mode
-C, -c, --check check power mode of listed devices
-Y, --sleep put listed devices into sleep mode
-i, --idle [SECONDS] sets idle period, before device is put into standby mode (default = 300)
-g, --grace [SECONDS] sets grace period, before device could be put into standby mode after return from standby mode (default = 600)
-t, --treshold [IOPS] sets IOPS treshold (default = 1)
-V, --verbose adds verbosity into logs
Clone the repository and build the application using Go.
git clone https://github.com/tvrzna/quietdisk.git
cd quietdisk
make build install
Start monitoring /dev/sda with a 10-minute idle period and a grace period of 15 minutes:
qd -i 600 -g 900 /dev/sda
List available devices and their power states:
qd -l
Check the power state of a specific device (e.g., /dev/sda):
qd -C /dev/sda
Put a device into sleep mode manually:
qd -Y /dev/sda