Looks good. On Wed, Mar 27, 2019 at 4:54 AM Steve French <smfrench@xxxxxxxxx> wrote: > > How about this updated patch - note how I now display min/max > (although min in this case will always be zero since jiffies are > pretty coarse granularity - maybe would be more helpful to run this > example over a slow link, or I could just make the patch simpler and > not save the minimum time for each command). Note that the new stats > begin with the line "Total time spent processing by command ..." > > > > > $ cat /proc/fs/cifs/Stats > Resources in use > CIFS Session: 1 > Share (unique mount targets): 3 > SMB Request/Response Buffer: 1 Pool size: 5 > SMB Small Req/Resp Buffer: 1 Pool size: 30 > Total Large 38854 Small 1039857 Allocations > Operations (MIDs): 0 > > 0 session 0 share reconnects > Total vfs operations: 272653 maximum at one time: 3 > > Total time spent processing by command. Time units are jiffies (250 per second) > SMB3 CMD Number Total Time Fastest Slowest > -------- ------ ---------- ------- ------- > 0 1 1 1 1 > 1 2 1 0 1 > 2 0 0 0 0 > 3 6 1 0 1 > 4 3 0 0 0 > 5 95353 5163 0 12 > 6 95314 3012 0 1 > 7 2 2 1 1 > 8 4263 57 0 1 > 9 1101 33 0 1 > 10 0 0 0 0 > 11 16 0 0 0 > 12 0 0 0 0 > 13 0 0 0 0 > 14 121 37 0 1 > 15 0 0 0 0 > 16 56357 1100 0 1 > 17 16703 1089 0 1 > 18 0 0 0 0 > > 1) \\localhost\btrfs-scratch > SMBs: 72 > Bytes read: 0 Bytes written: 210729 > Open files: 1 total (local), 2 open on server > TreeConnects: 1 total 0 failed > TreeDisconnects: 0 total 0 failed > Creates: 21 total 2 failed > Closes: 15 total 0 failed > Flushes: 0 total 0 failed > Reads: 0 total 0 failed > Writes: 11 total 0 failed > Locks: 0 total 0 failed > IOCTLs: 2 total 1 failed > QueryDirectories: 0 total 0 failed > ChangeNotifies: 0 total 0 failed > QueryInfos: 22 total 1 failed > SetInfos: 0 total 0 failed > OplockBreaks: 0 sent 0 failed > 2) \\localhost\btrfs > SMBs: 269059 > Bytes read: 115059522 Bytes written: 87813235 > Open files: 0 total (local), 0 open on server > TreeConnects: 1 total 0 failed > TreeDisconnects: 0 total 0 failed > Creates: 95304 total 14 failed > Closes: 95277 total 0 failed > Flushes: 2 total 0 failed > Reads: 4263 total 0 failed > Writes: 1090 total 0 failed > Locks: 0 total 0 failed > IOCTLs: 2 total 1 failed > QueryDirectories: 117 total 0 failed > ChangeNotifies: 0 total 0 failed > QueryInfos: 56300 total 0 failed > SetInfos: 16703 total 0 failed > OplockBreaks: 0 sent 0 failed > > > On Tue, Mar 26, 2019 at 1:38 AM ronnie sahlberg > <ronniesahlberg@xxxxxxxxx> wrote: > > > > Very nice. > > But maybe min and max to each command as well. > > I have all three of min/max/avg is very useful. > > > > At least avg and max will tell you if there are any abnormal outliers. > > > > On Tue, Mar 26, 2019 at 3:39 PM Steve French <smfrench@xxxxxxxxx> wrote: > > > > > > I created a small experimental patch (leveraging the existing code for > > > the slow command check we already have in mid processing) to track the > > > total time per SMB2/SMB3 command. Seems like it could be useful - > > > here is sample output (see below) from running seven xfstests to > > > generate the stats (these stats require CONFIG_CIFS_STATS2 to be > > > compiled as do the slow command counters). I wanted to keep the > > > patch small and low risk so this seemed like the best place to capture > > > it. This could be helpful in calculating average time per command > > > (and perhaps help isolate performance problems, and isolate what is > > > really causing slowdowns). As with other counters: "echo 0 > > > > /proc/fs/cifs/Stats" resets them. The new stats counters start at > > > the line "Total time spent processing each command" > > > > > > Thoughts? > > > > > > $ cat /proc/fs/cifs/Stats > > > Resources in use > > > CIFS Session: 1 > > > Share (unique mount targets): 3 > > > SMB Request/Response Buffer: 1 Pool size: 5 > > > SMB Small Req/Resp Buffer: 2 Pool size: 30 > > > Total Large 60864 Small 1165977 Allocations > > > Operations (MIDs): 1 > > > > > > 0 session 0 share reconnects > > > Total vfs operations: 280236 maximum at one time: 3 > > > Total time spent processing each command > > > cmd: 0 jiffies: 0 seconds 0 > > > cmd: 1 jiffies: 2 seconds 0 > > > cmd: 2 jiffies: 0 seconds 0 > > > cmd: 3 jiffies: 1 seconds 0 > > > cmd: 4 jiffies: 1 seconds 0 > > > cmd: 5 jiffies: 6212 seconds 24 > > > cmd: 6 jiffies: 3993 seconds 15 > > > cmd: 7 jiffies: 135 seconds 0 > > > cmd: 8 jiffies: 83 seconds 0 > > > cmd: 9 jiffies: 44 seconds 0 > > > cmd: 10 jiffies: 0 seconds 0 > > > cmd: 11 jiffies: 1 seconds 0 > > > cmd: 12 jiffies: 0 seconds 0 > > > cmd: 13 jiffies: 0 seconds 0 > > > cmd: 14 jiffies: 47 seconds 0 > > > cmd: 15 jiffies: 0 seconds 0 > > > cmd: 16 jiffies: 1890 seconds 7 > > > cmd: 17 jiffies: 1368 seconds 5 > > > cmd: 18 jiffies: 0 seconds 0 > > > > > > 1) \\localhost\btrfs-scratch > > > SMBs: 42255 > > > Bytes read: 25379425 Bytes written: 53689661 > > > Open files: 1 total (local), 1 open on server > > > TreeConnects: 1 total 0 failed > > > TreeDisconnects: 0 total 0 failed > > > Creates: 14012 total 0 failed > > > Closes: 14009 total 0 failed > > > Flushes: 27 total 0 failed > > > Reads: 41 total 0 failed > > > Writes: 112 total 0 failed > > > Locks: 0 total 0 failed > > > IOCTLs: 2 total 1 failed > > > QueryDirectories: 28 total 0 failed > > > ChangeNotifies: 0 total 0 failed > > > QueryInfos: 11312 total 0 failed > > > SetInfos: 2711 total 0 failed > > > OplockBreaks: 0 sent 0 failed > > > 2) \\localhost\btrfs > > > SMBs: 77 > > > Bytes read: 282 Bytes written: 94 > > > Open files: 0 total (local), 0 open on server > > > TreeConnects: 1 total 0 failed > > > TreeDisconnects: 0 total 0 failed > > > Creates: 23 total 0 failed > > > Closes: 21 total 0 failed > > > Flushes: 0 total 0 failed > > > Reads: 3 total 0 failed > > > Writes: 1 total 0 failed > > > Locks: 0 total 0 failed > > > > > > -- > > > Thanks, > > > > > > Steve > > > > -- > Thanks, > > Steve