G'Day Tony,

Sorry about the dynvardrops; there are at least a couple of things you can
try.

1) increasing dynvarsize; this is commented in the script itself:

   201   /* boost the following if you get "dynamic variable drops" */
   202   #pragma D option dynvarsize=8m

That's 8 Mbytes.  You could try 16 Mbytes.

2) reworking the associative array key.  From the script:

   253          this->dev = args[0]->b_edev;
   254          this->blk = args[0]->b_blkno;
   255
   256          /* save disk event details, */
   257          start_uid[this->dev, this->blk] = uid;

I'm using both device number and block number as a 2-key unique ID.  I'd
suspect that a 1-key ID would be less expensive, such as by replacing
"this->dev, this->blk" with just "arg0" throughout the script.  The downside
is that this is not stable - it may work on Solaris and Mac OS X today, but
not in the future.  arg0 is actually a "struct buf *", which as an address
is unique and is a handy 1-key ID, but isn't part of the stable io provider
interface (it's using implementation details from pre-translation).

If you still have issues with drops due to high load, I'd write a much
shorter script to answer the specific question.

Brendan


On Thu, Feb 24, 2011 at 9:06 AM, Tony MacDoodle <tpsdoo...@gmail.com> wrote:

> Hello,
>
> How do I eliminate the following when running iotop dtrace script:
>
> dynamic variable drops
> dynamic variable drops
> dynamic variable drops
>
> Thanks Mike
>
> _______________________________________________
> dtrace-discuss mailing list
> dtrace-discuss@opensolaris.org
>



-- 
http://dtrace.org/blogs/brendan
_______________________________________________
dtrace-discuss mailing list
dtrace-discuss@opensolaris.org

Reply via email to