tk7k
Active
Posts: 9
|
Post by tk7k on Sept 5, 2022 16:59:41 GMT
I would love to use SIV's data to graph disk read/write usage per disk using RainMeter the graphical display showing X KB/Sec read and write speeds. Sentest.exe has ID's for each drive in the Thermals section already, but we would obviously need to fit the disk utilization data in another section to be usable in RainMeter. It looks like SIV is collecting the data under Devices > Statistics > Drive <letter> already. I'd be interested in the sum of read and writes per second and not specifically broken down into User data, meta data, Root index and so on. What are your thoughts on how feasible this is to add to Sentest.exe so that it's usable by RainMeter? Attachments:
|
|
|
Post by siv on Sept 5, 2022 21:12:10 GMT
Were I to add this then I would not use the data that Menu->Devices->Statistics->Drive X: reports as there is way too much of it (one set for every CPU!) and there could be multiple drive letters on the same physical drive/RAID array.
A better starting point would be what Menu->Devices->Disk Performance reports, what do you think?
I am also unsure how to deal with RAID arrays as SIV reports the temperature for each physical drive in the RAID array, but the read/write sizes are for the RAID Array as a whole, what would you like?
The SMART data (temperature) get's updated every 10 seconds, over what interval would you like the transfer rates calculated ?
|
|
tk7k
Active
Posts: 9
|
Post by tk7k on Sept 6, 2022 0:56:28 GMT
Ah yes! The Disk Performance report has the read/write size delta that would be perfect. A one second update interval would be ideal for my use case to make the graphing lines look smoother. I'm not sure about the performance overhead of doing it every second, but I'm assuming it's negligible for several drives.
I don't have any RAID arrays in my system currently. If I setup a RAID1 setup in the future I think would probably only be interested in the rate as a whole like you described. If I did want to get a rough idea of what one specific Raid drive was reading/writing I could just use the sum of the RAID's read/write values that SIV provided and on my side divide by number of drives in the RAID I think. It wouldn't be precise of course, but good enough for my use.
|
|
|
Post by siv on Sept 6, 2022 7:01:53 GMT
A one second update interval would be ideal for my use case to make the graphing lines look smoother. I'm not sure about the performance overhead of doing it every second, but I'm assuming it's negligible for several drives. For a rate of once per second I feel getting this information from SIV is the incorrect solution and the correct one is for RainMeter to directly read the information. Doing this should be quite simple, on start-up use the Setup API to enumerate GUID_DEVINTERFACE_DISK interfaces to get the disks then simply do CreateFile(), DeviceIoControl( IOCTL_DISK_PERFORMANCE ) and CloseHandle() once a second to get the data. What do you think?
|
|
tk7k
Active
Posts: 9
|
Post by tk7k on Sept 7, 2022 0:58:49 GMT
I think I could muddle my way through it with some time. I would have to do a bit more research to learn the syntax and how to get the data back into RainMeter, but your direction sounds logical and I'm always up for learning. Thanks for the advice!
|
|
|
Post by siv on Sept 7, 2022 8:56:47 GMT
Good luck with adding support, I have no idea what RainMeter needs, but if you get stuck with Setup API and/or the IOCTL I could e-mail you some code.
I just checked and on this system with 10 disks it typically takes 20 ms CPU time, 25 ms elapsed to read the data and update the panel. From [ Disk Performance ] do Menu->Edit->STC Info and look at the Worker Thread to see how long things take on your system.
|
|