我有 dio vicious 小部件,用于在一个很棒的小部件中监视 IO。它的定义如下:
diowidget = widget({ type = "textbox" })
vicious.register(diowidget, vicious.widgets.dio, '<span color="#4682b4">${sda read_mb}</span>/<span color="#bf3eff">${sda write_mb}</span>', 3)
然而,我的硬盘使用lvm,看起来像:
; df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 50G 8.0G 40G 17% /
devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs 2.0G 1.8M 2.0G 1% /dev/shm
tmpfs 2.0G 804K 2.0G 1% /run
/dev/mapper/vg_nightwatch-lv_root 50G 8.0G 40G 17% /
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
tmpfs 2.0G 0 2.0G 0% /media
/dev/mapper/vg_nightwatch-lv_home 409G 15G 374G 4% /home
使用“mapper”而不是“sda”给我一个Invalid markup
.
我应该用什么来代替?
答案1
使用源码,其内容为(摘录)
for line in io.lines("/proc/diskstats") do
local device, read, write =
-- Linux kernel documentation: Documentation/iostats.txt
string.match(line, "([^%s]+) %d+ %d+ (%d+) %d+ %d+ %d+ (%d+)")
disk_lines[device] = { read, write }
end
[...]
-- Calculate and store I/O
helpers.uformat(disk_usage, device.." read", read, unit)
helpers.uformat(disk_usage, device.." write", write, unit)
helpers.uformat(disk_usage, device.." total", read + write, unit)
[...]
return disk_usage
因此,您中列出的任何内容都/proc/diskstats
将成为关键disk_usage
并可以进行查询。我不使用 LVM,所以我无法猜测。 虽然看起来相当复杂,由于虚拟设备的 I/O,那么,...您想要测量什么? 但是,如果您使用一仅设备,这些数字显然是有意义的希望这可以进一步帮助您。