summaryrefslogtreecommitdiffstats
path: root/tuningplugins/disk.py
diff options
context:
space:
mode:
Diffstat (limited to 'tuningplugins/disk.py')
-rw-r--r--tuningplugins/disk.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/tuningplugins/disk.py b/tuningplugins/disk.py
new file mode 100644
index 0000000..32f6256
--- /dev/null
+++ b/tuningplugins/disk.py
@@ -0,0 +1,28 @@
+import os
+
+class DiskTuning:
+ def __init__(self):
+ self.devidle = {}
+
+ def __updateIdle__(self, dev, devload):
+ for type in ("READ", "WRITE"):
+ if devload[type] == 0.0:
+ idle = self.devidle.setdefault(dev, {})
+ idle.setdefault(type, 0)
+ idle[type] += 1
+ else:
+ idle = self.devidle.setdefault(dev, {})
+ idle.setdefault(type, 0)
+ idle[type] = 0
+
+ def setTuning(self, load):
+ disks = load.setdefault("DISK", {})
+ for dev in disks.keys():
+ devload = disks[dev]
+ self.__updateIdle__(dev, devload)
+ if self.devidle[dev]["READ"] == 30 and self.devidle[dev]["WRITE"] == 30:
+ os.system("hdparm -S5 /dev/"+dev)
+ os.system("hdparm -B1 /dev/"+dev)
+ print(load, self.devidle)
+
+_plugin = DiskTuning()