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 <tpsdoodle at 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 at opensolaris.org
>
--
http://dtrace.org/blogs/brendan
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://mail.opensolaris.org/pipermail/dtrace-discuss/attachments/20110228/20285b6e/attachment.html>