I am looking at moving from openindiana to omnios and I have a dtrace script
(below) that works on openindiana however I have tried running it on the
latest omnios r151010 and it doesn't run with the error ": No such file or
directory"

 

I am running it with ./wfileio.d, the other DTT scripts seem to work fine

 

When I run it with dtrace -s wfileio.d I also get an error "dtrace: failed
to compile script wfileio.d: line 39: failed to set option 'quiet': Invalid
option name

 

#!/usr/sbin/dtrace -s

/*

* wfileio.d - write file I/O stats, with cache miss rate.

*             Written using DTrace (Solaris 10 3/05)

*

* This script provides statistics on the number of reads and the bytes

* read from filesystems (logical), and the number of bytes read from

* disk (physical). A summary is printed every five seconds by file.

*

* A total miss-rate is also provided for the file system cache.

*

* $Id: wfileio.d 3 2007-08-01 10:50:08Z brendan $

*

* USAGE:            wfileio.d

*

* IDEA: Richard McDougall, Solaris Internals 2nd Ed, FS Chapter.

*

* COPYRIGHT: Copyright (c) 2006 Brendan Gregg.

*

* CDDL HEADER START

*

*  The contents of this file are subject to the terms of the

*  Common Development and Distribution License, Version 1.0 only

*  (the "License").  You may not use this file except in compliance

*  with the License.

*

*  You can obtain a copy of the license at Docs/cddl1.txt

*  or http://www.opensolaris.org/os/licensing.

*  See the License for the specific language governing permissions

*  and limitations under the License.

*

* CDDL HEADER END

*

* 19-Mar-2006  Brendan Gregg   Created this.

* 23-Apr-2006      "      "   Last update.

* 20-Mar-2014  Linda Kateley     Modified into writes

*/

 

#pragma D option quiet

 

self int trace;

uint64_t lbytes;

uint64_t pbytes;

 

dtrace:::BEGIN

{

                trace("Tracing...\n");

}

 

fbt::fop_write:entry

/self->trace == 0 && args[0]->v_path/

{

                self->pathname = cleanpath(args[0]->v_path);

                @wio[self->pathname, "logical"] = count();

                lbytes += args[1]->uio_resid;

                self->size = args[1]->uio_resid;

                self->uiop = args[1];

}

 

fbt::fop_write:return

/self->size/

{

                @wbytes[self->pathname, "logical"] =

                    sum(self->size - self->uiop->uio_resid);

                self->size = 0;

                self->uiop = 0;

                self->pathname = 0;

}

 

io::bdev_strategy:start

/self->size && args[0]->b_flags & B_READ/

{

                @wio[self->pathname, "physical"] = count();

                @wbytes[self->pathname, "physical"] =
sum(args[0]->b_bcount);

                pbytes += args[0]->b_bcount;

}

 

profile:::tick-5s

{

                trunc(@wio, 20);

                trunc(@wbytes, 20);

                printf("\033[H\033[2J");

                printf("\nWrit IOPS, top 20 (count)\n");

                printa("%-54s %10s %10@d\n", @wio);

                printf("\nWrite Bandwidth, top 20 (bytes)\n");

                printa("%-54s %10s %10@d\n", @wbytes);

                trunc(@wio);

}

_______________________________________________
OmniOS-discuss mailing list
OmniOS-discuss@lists.omniti.com
http://lists.omniti.com/mailman/listinfo/omnios-discuss

Reply via email to