멋진 위젯에서 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
"sda" 대신 "mapper"를 사용하면 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로 인해... 무엇을 측정하고 싶나요? 그러나 사용하는 경우하나기기에만 해당됩니다. 이 숫자는 분명히 의미가 있습니다.이것이 당신에게 더 도움이 되기를 바랍니다.