About EOS MGM I/O statistics

Good morning,

We have some questions about the IO commands (eos io ...) that might interest us. We can see already that some interesting output can be found for eos io stat, but we would like to understand more about eos io ns and eos io reort ones :

  • does calling these commands on a very large namespace (e.g. our one has 780M files and 162M folders) have impact on the performance, or can we use them freely and the output is returned immediately (even with -10000 flag) ?
  • what is the meaning of eos io report output ? On our test instance, even when doing some access, the output is always :
----------------------- SUMMARY -------------------
| avg. readd: 0.00 MB/s | avg. write: 0.00  MB/s | total read: 0 B | total write: 0 B | times read: 0 | times written: 0 |

even if :

# eos io enable -n
error: IO report namespace already enabled
  • is there a way to have in any case the usage of one part of the namespace (i.e. /eos/instance/path/to/folder) for the period since the MGM start, even if by this we need to add it to a watch list ?
  • Do you know if this output is used on some instance to keep some metrics about these values ?

The IO report namespace creates a namespace on a local mount of the MGM and reports all accesses on files in that local namespace. It only creates the files, which have been read or written since you configured that. Essentially you can end up having a local filesystem tree with 780 M files and 162 M folders … the only option is to enable or disable it. You must be careful, because it can easily fill your partition if you have many file transactions.

OK, thank you @apeters for your answer.

Now I could find this report namespace in the test instance. Indeed, this doesn’t seem a good idea on our huge production instance, and we already have the all gathered report by years with same information, and compressed.

What about the eos io report /path command ? Is it supposed to give some output if the namespace report is enabled or not ? And is it safe (i.e. we get the output immediately) output to run on a large instance ?