On Jun 1, 2017, at 19:34, Russell Dekema <[email protected]> wrote:
> 
> Greetings,
> 
> Is there a way, either on the Lustre clients or (preferably) OSSes, to
> determine how many I/O operations each Lustre client is performing
> against the filesystem?
> 
> I know several ways of finding the number of *bytes* read or written
> by a client (or even on a per-job basis with job_stats), but we
> suspect we have some clients overwhelming our filesystem with large
> numbers of small I/O requests, and I don't know how to find per-client
> (or per-job) I/O operation counters.

On each OSS, there are per-client statistics via "lctl get_param 
obdfilter.*.exports.*.stats"
(/proc/fs/lustre/obdfilter/$fsname-OST*/exports/{client NID}/stats).  Of 
particular interest are the "read_bytes" and "write_bytes" stats:

$ lctl get_param obdfilter.*.exports.*.stats | egrep "=|_bytes"
[email protected]=
write_bytes               6 samples [bytes] 4096 1048576 1069056
[email protected]=
read_bytes                1 samples [bytes] 4096 4096 4096
write_bytes               122 samples [bytes] 6 202 928
[email protected]=
[email protected]=
write_bytes               122 samples [bytes] 6 6 732

This shows 1 read RPC, and 250 write RPCs, and the min, max, sum of bytes on a 
per-client basis.  You would be most interested in the number of RPCs (first 
numeric column), but you can also work out the mean RPC size for each client by 
dividing the last column (sum) by the RPC count.  

Cheers, Andreas
--
Andreas Dilger
Lustre Principal Architect
Intel Corporation







_______________________________________________
lustre-discuss mailing list
[email protected]
http://lists.lustre.org/listinfo.cgi/lustre-discuss-lustre.org

Reply via email to