summaryrefslogtreecommitdiffstats
path: root/tuningplugins/disk.py
diff options
context:
space:
mode:
Diffstat (limited to 'tuningplugins/disk.py')
-rw-r--r--tuningplugins/disk.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/tuningplugins/disk.py b/tuningplugins/disk.py
index e41403f..5bdcea2 100644
--- a/tuningplugins/disk.py
+++ b/tuningplugins/disk.py
@@ -16,7 +16,7 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
-import os
+import os, copy
class DiskTuning:
def __init__(self):
@@ -35,12 +35,14 @@ class DiskTuning:
def setTuning(self, load):
disks = load.setdefault("DISK", {})
+ oldidle = copy.deepcopy(self.devidle)
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)
+ if self.devidle[dev]["READ"] == 30 or self.devidle[dev]["WRITE"] == 30:
+ os.system("hdparm -Y -S60 -B1 /dev/"+dev)
+ if oldidle.has_key(dev) and oldidle[dev]["READ"] > 30 and oldidle[dev]["WRITE"] > 30 and (self.devidle[dev]["READ"] == 0 or self.devidle[dev]["WRITE"] == 0):
+ os.system("hdparm -S255 -B127 /dev/"+dev)
print(load, self.devidle)
_plugin = DiskTuning()