Solaris 11.4 got a new fileops provider. This provider is independent from the filesystem you are using. So you can easily trace filesystem accesses with it. For example so see all filenames of accesses on your system, you can just use such a short script

fileops:::read
{
    @[args[0]->fi_name] =
    quantize(args[1]);
}

I have saved this script into a file called writeops. The script should show me write latencies for each file i'm writing to.

root@batou:~# dtrace -s writeops 
dtrace: script 'writeops' matched 1 probe

In a second window i just started a echo "test" > narf. After terminating the dtrace command, it yielded the following result:

^C

  narf                                              
           value  ------------- Distribution ------------- count    
            8192 |                                         0        
           16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1        
           32768 |                                         0

Do you want to learn more?

docs.oracle.com - Oracle® Solaris 11.4 DTrace (Dynamic Tracing) Guide - fileops Provider

1 Comment

Linear

  • Nan Xiao  
    You say "I have saved this script into a file called writeops.". Per my understanding, the script should be:

    fileops:::write
    {
    @[args[0]->fi_name] =
    quantize(args[1]);
    }

    Not "fileops:::read", thanks!

Add Comment

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
Standard emoticons like :-) and ;-) are converted to images.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA