summaryrefslogtreecommitdiffstats
path: root/glances/plugins/glances_diskio.py
diff options
context:
space:
mode:
Diffstat (limited to 'glances/plugins/glances_diskio.py')
-rw-r--r--glances/plugins/glances_diskio.py86
1 files changed, 60 insertions, 26 deletions
diff --git a/glances/plugins/glances_diskio.py b/glances/plugins/glances_diskio.py
index 25b2bfe7..1439bfa4 100644
--- a/glances/plugins/glances_diskio.py
+++ b/glances/plugins/glances_diskio.py
@@ -21,8 +21,7 @@
import operator
-# Import Glances libs
-from glances.core.glances_timer import getTimeSinceLastUpdate
+from glances.timer import getTimeSinceLastUpdate
from glances.plugins.glances_plugin import GlancesPlugin
import psutil
@@ -44,8 +43,7 @@ class Plugin(GlancesPlugin):
def __init__(self, args=None):
"""Init the plugin."""
- GlancesPlugin.__init__(
- self, args=args, items_history_list=items_history_list)
+ super(Plugin, self).__init__(args=args, items_history_list=items_history_list)
# We want to display the stat in the curse interface
self.display_curse = True
@@ -96,7 +94,20 @@ class Plugin(GlancesPlugin):
diskio_new = diskiocounters
for disk in diskio_new:
+ # By default, RamFS is not displayed (issue #714)
+ if self.args is not None and not self.args.diskio_show_ramfs and disk.startswith('ram'):
+ continue
+
+ # Do not take hide disk into account
+ if self.is_hide(disk):
+ continue
+
+ # Compute count and bit rate
try:
+ read_count = (diskio_new[disk].read_count -
+ self.diskio_old[disk].read_count)
+ write_count = (diskio_new[disk].write_count -
+ self.diskio_old[disk].write_count)
read_bytes = (diskio_new[disk].read_bytes -
self.diskio_old[disk].read_bytes)
write_bytes = (diskio_new[disk].write_bytes -
@@ -104,6 +115,8 @@ class Plugin(GlancesPlugin):
diskstat = {
'time_since_update': time_since_update,
'disk_name': disk,
+ 'read_count': read_count,
+ 'write_count': write_count,
'read_bytes': read_bytes,
'write_bytes': write_bytes}
except KeyError:
@@ -130,7 +143,7 @@ class Plugin(GlancesPlugin):
def update_views(self):
"""Update stats views."""
# Call the father's method
- GlancesPlugin.update_views(self)
+ super(Plugin, self).update_views()
# Add specifics informations
# Alert
@@ -154,15 +167,18 @@ class Plugin(GlancesPlugin):
# Header
msg = '{0:9}'.format('DISK I/O')
ret.append(self.curse_add_line(msg, "TITLE"))
- msg = '{0:>7}'.format('R/s')
- ret.append(self.curse_add_line(msg))
- msg = '{0:>7}'.format('W/s')
- ret.append(self.curse_add_line(msg))
+ if args.diskio_iops:
+ msg = '{0:>7}'.format('IOR/s')
+ ret.append(self.curse_add_line(msg))
+ msg = '{0:>7}'.format('IOW/s')
+ ret.append(self.curse_add_line(msg))
+ else:
+ msg = '{0:>7}'.format('R/s')
+ ret.append(self.curse_add_line(msg))
+ msg = '{0:>7}'.format('W/s')
+ ret.append(self.curse_add_line(msg))
# Disk list (sorted by name)
for i in sorted(self.stats, key=operator.itemgetter(self.get_key())):
- # Do not display hidden interfaces
- if self.is_hide(i['disk_name']):
- continue
# Is there an alias for the disk name ?
disk_real_name = i['disk_name']
disk_name = self.has_alias(i['disk_name'])
@@ -175,19 +191,37 @@ class Plugin(GlancesPlugin):
disk_name = '_' + disk_name[-8:]
msg = '{0:9}'.format(disk_name)
ret.append(self.curse_add_line(msg))
- txps = self.auto_unit(
- int(i['read_bytes'] // i['time_since_update']))
- rxps = self.auto_unit(
- int(i['write_bytes'] // i['time_since_update']))
- msg = '{0:>7}'.format(txps)
- ret.append(self.curse_add_line(msg,
- self.get_views(item=i[self.get_key()],
- key='read_bytes',
- option='decoration')))
- msg = '{0:>7}'.format(rxps)
- ret.append(self.curse_add_line(msg,
- self.get_views(item=i[self.get_key()],
- key='write_bytes',
- option='decoration')))
+ if args.diskio_iops:
+ # count
+ txps = self.auto_unit(
+ int(i['read_count'] // i['time_since_update']))
+ rxps = self.auto_unit(
+ int(i['write_count'] // i['time_since_update']))
+ msg = '{0:>7}'.format(txps)
+ ret.append(self.curse_add_line(msg,
+ self.get_views(item=i[self.get_key()],
+ key='read_count',
+ option='decoration')))
+ msg = '{0:>7}'.format(rxps)
+ ret.append(self.curse_add_line(msg,
+ self.get_views(item=i[self.get_key()],
+ key='write_count',
+ option='decoration')))
+ else:
+ # Bitrate
+ txps = self.auto_unit(
+ int(i['read_bytes'] // i['time_since_update']))
+ rxps = self.auto_unit(
+ int(i['write_bytes'] // i['time_since_update']))
+ msg = '{0:>7}'.format(txps)
+ ret.append(self.curse_add_line(msg,
+ self.get_views(item=i[self.get_key()],
+ key='read_bytes',
+ option='decoration')))
+ msg = '{0:>7}'.format(rxps)
+ ret.append(self.curse_add_line(msg,
+ self.get_views(item=i[self.get_key()],
+ key='write_bytes',
+ option='decoration')))
return ret