Write bytes read and network performance stats to arv-mount logs
Toggle with a
--crunchstat-interval argument (default 0 means don't output stats).
Use the same format as crunchstat, so the results show up in Workbench graphs. Example:
crunchstat: blkio:0:0 123456 write 1234560 read -- interval 10.0002 seconds 0 write 0 read crunchstat: net:keep0 1546380901 tx 3166208 rx -- interval 10.0002 seconds 1546352010 tx 2066527 rx
blkio:0:0 indicates filesystem traffic between userspace programs and arv-mount.
net:keep0 indicates network traffic between arv-mount and keep servers.
Additionally, it would be helpful to know the number of IO operations on both sides, i.e., number of Keep block reads/writes and number of userspace read() and write() calls serviced. (Formatting TBD?)
#7 Updated by Brett Smith over 4 years ago
Heads up, arvados_fuse needs its dependency on arvados-python-client bumped to get arvados.keep.Counter.
Beyond that, I just have a couple of naming suggestions, nothing to block a merge:
- In the Stat class, the relationship between "egress" and "egr" is not clear from the names. Ditto "ingress" and "ing." Would better names help clarify that one is a specific value in time from the other?
Possibly related: there doesn't seem to be any need to hold onto "egr_prev" and "ing_prev" as instance variables. They only function as local variables to calculate the interval value in the update method.
- In the Counter class, "lk" seems like a sort of gratuitous abbreviation of "lock".