multiload-ng icon indicating copy to clipboard operation
multiload-ng copied to clipboard

? use disk busy time instead of bps speed ?

Open vn971 opened this issue 7 years ago • 8 comments

Is it possible to use disk "busy time" instead of "bps speed" for disk load measurement?

I'm not sure about that, but "busy time" feels like a more natural measurement, and does not need any configuration or automatic detection. I've seen "busy time" as an optional measurement type in XFCE4 "disk performance monitor" plugin.

If the idea is indeed healthy, it might be good to support it as an alternative for disk load section.

Also, I know it doesn't fit the issue tracking system, but thanks for a great project! It was such a relief to see "multiload" indicator running back again after so many years of missing it (missing the bug-free version, anyway). Thank you!

vn971 avatar Dec 23 '16 10:12 vn971

Hello, thanks for your feedback! This is a nice idea, I will look into it.

One of the goals of Multiload-ng is extreme customization, so (in most cases) additional choices are seen as giving more power to the user and are very welcome.

Thank you very much for appreciation, it's a big source of motivation to me :)

udda avatar Dec 23 '16 15:12 udda

BTW, I've investigated multiload-ng further and seems it works well in all cases except one -- disk load. Somewhy multiload always thinks there is zero disk io, and the graph almost always stays at 0. There are times where it sporadically shows one "bar" (single pixel line with a non-zero height) and then it disappears again. Once a day maybe?. I have an encrypted filesystem, maybe this is the reason why it works so. // If anything, ideas can be copied from xfce4-diskperf-plugin because it seemingly does detect the disk io load (although it only has a bar and no graph).

vn971 avatar Jan 22 '17 09:01 vn971

The encrypted FS is definitely the reason it doesn't work. The legacy code upon which Multiload-ng is based excludes some fs types (namely rootfs, smbfs, nfs, cifs, fuse.*) because they does not directly map to a physical device. I think you are using encfs, whose fstype is fuse.encfs, so it's excluded.

Can you show your output of some commands?

  • mount
  • df
  • cat /proc/partitions
  • Also, which partitions are listed in Disk Graph detailed tooltip

I am currently rewriting entire code from scratch: Multiload-ng 2.0 (will release a beta soon). Among other things, it's capable of measuring also disk time.

About encrypted devices, I need to make some tests, but in v2.0 these should be correctly supported. I may ask you some additional data in near future. Thanks again for the feedback!

udda avatar Jan 22 '17 11:01 udda

I'm using "LVM on LUKS": https://wiki.archlinux.org/index.php/Dm-crypt/Encrypting_an_entire_system#LVM_on_LUKS meaning the basic partition is LUKS (which gives encryption), and LVM is layered above it (which gives separate partitions for /home, /, swap etc).

Relevant entries in mount:

/dev/mapper/MyVol-root on / type ext4 (rw,relatime,data=ordered)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev)
/dev/mapper/MyVol-home on /home type ext4 (rw,relatime,data=ordered)
/dev/sda2 on /boot type ext2 (rw,relatime,block_validity,barrier,user_xattr,acl,stripe=4)

df:

Filesystem              1K-blocks      Used  Available Use% Mounted on
dev                       8150896         0    8150896   0% /dev
run                       8158868      1016    8157852   1% /run
/dev/mapper/MyVol-root   51343840  20593380   28112636  43% /
tmpfs                     8158868         0    8158868   0% /dev/shm
tmpfs                     8158868         0    8158868   0% /sys/fs/cgroup
tmpfs                     8158868       144    8158724   1% /tmp
/dev/mapper/MyVol-home 1801871864 219155208 1491116784  13% /home
/dev/sda2                  198337    101333      86764  54% /boot
tmpfs                     1631772        24    1631748   1% /run/user/1000
tmpfs                     1631772         0    1631772   0% /run/user/0

cat /proc/partitions:

major minor  #blocks  name

   8        0 1953514584 sda
   8        1       1024 sda1
   8        2     204800 sda2
   8        3 1953307719 sda3
  11        0    1048575 sr0
 254        0 1953305671 dm-0
 254        1   16777216 dm-1
 254        2   52428800 dm-2
 254        3   52428800 dm-3
 254        4 1831669760 dm-4

multiload-ng shows the following partitions in its list: sda, sda1, sda2, sda3.

Cool, will be waiting for that.:) Thank you!

vn971 avatar Jan 22 '17 12:01 vn971

Ah, I was wrong about encfs :) Thanks for the brief explanation.

I am making the following assumptions:

  • based on partition sizes, the base partition for your LVM setup is /dev/sda3
  • since LVM is a full abstraction layer, underlying block device encryption should not matter at all
  • since at least one program (xfce4-diskperf-plugin) works, the IO stats are there, just not in the location where Multiload-ng expects them

I will begin by looking at the xfce4-diskperf-plugin code, while experimenting with LVM in development machine. Will write updates here, if any.

udda avatar Jan 22 '17 12:01 udda

Ok here are the updates:

  1. Added support to LVM volumes into Multiload-ng 2.0. I can't test it, but it should also handle well other device mapper virtual devices.

  2. The approach used by xfce4-diskperf-plugin (reading /proc/diskstats for all relevant information) works because it unconditionally parses all existing partitions, making no differences between mounted and unmounted devices. It can't be used here, because Multiload-ng 2.0 checks also free space with the same code (yeah there is a new storage graph!), and this is possible only on mounted devices, so there are additional checks.

  3. When the first beta is released, you could test it, so we can close this issue.

udda avatar Jan 22 '17 17:01 udda

Update: using disk busy time instead of bps will be available in Multiload-ng 2.0 :)

udda avatar Mar 25 '17 22:03 udda

That's great! Currently XFCE-s "Disk Performance Monitor" is the only panel item left besides multiload-ng. (And there were 6 of them.) Will be waiting!

vn971 avatar Mar 26 '17 08:03 vn971