How do I unroll an aggregation? I want to printout @Io[R,], at Io[W,] , @Size[R,], at Size[W,] and @Time[R,], at Time[W,] all on the same line. 1 line per file that I am monitoring? How do I unroll the values out of the aggregation? { self->rw="R" or self->rw="W"; self->vpath="/full/path/name/to/file/*"; @Size[self->rw, self->vpath]=sum( self->size ); @Io[self->rw, self->vpath]=count(); @Time[self->rw, self->vpath]=avg( timestamp-self->start ); } profile:::tick-TIMEsec { normalize( @Size, (1024 * TIME )); normalize( @Io, TIME ); normalize( @Time, 1000); printf(" r/s w/s kr/s kw/s wait actv wsvc_t asvc_t w b device\n"); printa( @Size ); printa( @Io ); printa( @Time ); clear( @Size ); clear( @Io ); clear( @Time ); } -- Ian Matchett Sun Microsystems Burlington MA 01803 USA Phone x22043 781-442-2043 Email <mailto:Ian.Matchett at Sun.COM> Mobile 413 237 6599 Vtext Webservice <http://www.vtext.com/customer_site/jsp/messaging_lo.jsp?min=ian.matchett at vtext.com> SMS Email <mailto:Ian.Matchett at vtext.com> Map and Hotels <http://www.mapquest.com/maps/map.adp?formtype=address&cat=Hotels&zipcode=01803-2756> Sun.COM <http://www.sun.com/> Solaris Download <http://www.sun.com/software/solaris/get.jsp> -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.opensolaris.org/pipermail/dtrace-discuss/attachments/20070131/0209f75b/attachment.html>
Hi Ian, The best way is probably to use a different aggregation for each of the columns (e.g. @io_r and @io_w) and then use printa with multiple aggregations. This feature was introduces in snv_30 and should be in the next update to Solaris 10. Check out this thread from 2005: http://www.opensolaris.org/jive/thread.jspa?messageID=13704㖈 Adam On Wed, Jan 31, 2007 at 12:28:33PM -0500, Ian Matchett wrote:> How do I unroll an aggregation? > > I want to printout @Io[R,], at Io[W,] , @Size[R,], at Size[W,] and > @Time[R,], at Time[W,] all on the same line. > 1 line per file that I am monitoring? > > How do I unroll the values out of the aggregation? > > { > > self->rw="R" > or > self->rw="W"; > > self->vpath="/full/path/name/to/file/*"; > > @Size[self->rw, self->vpath]=sum( self->size ); > @Io[self->rw, self->vpath]=count(); > @Time[self->rw, self->vpath]=avg( timestamp-self->start ); > } > > > > profile:::tick-TIMEsec > { > normalize( @Size, (1024 * TIME )); > normalize( @Io, TIME ); > normalize( @Time, 1000); > printf(" r/s w/s kr/s kw/s wait actv wsvc_t asvc_t w b device\n"); > printa( @Size ); > printa( @Io ); > printa( @Time ); > clear( @Size ); > clear( @Io ); > clear( @Time ); > > } > > -- > Ian Matchett Sun Microsystems > Burlington MA 01803 USA > Phone x22043 781-442-2043 > Email <mailto:Ian.Matchett at Sun.COM> > Mobile 413 237 6599 > Vtext Webservice > <http://www.vtext.com/customer_site/jsp/messaging_lo.jsp?min=ian.matchett at vtext.com> > SMS Email <mailto:Ian.Matchett at vtext.com> > Map and Hotels > <http://www.mapquest.com/maps/map.adp?formtype=address&cat=Hotels&zipcode=01803-2756> > Sun.COM <http://www.sun.com/> Solaris Download > <http://www.sun.com/software/solaris/get.jsp>> _______________________________________________ > dtrace-discuss mailing list > dtrace-discuss at opensolaris.org-- Adam Leventhal, Solaris Kernel Development http://blogs.sun.com/ahl
Ok I got past this formating problem now I am getting this! What do I do? dtrace: 1143 dynamic variable drops dtrace: 2 dynamic variable drops dtrace: 1143 dynamic variable drops dtrace: 2 dynamic variable drops dtrace: 20 dynamic variable drops dtrace: 1123 dynamic variable drops dtrace: 2 dynamic variable drops dtrace: 1143 dynamic variable drops dtrace: 2 dynamic variable drops dtrace: 31 dynamic variable drops dtrace: 1112 dynamic variable drops dtrace: 2 dynamic variable drops dtrace: 1143 dynamic variable drops dtrace: 2 dynamic variable drops dtrace: 32 dynamic variable drops dtrace: 1111 dynamic variable drops dtrace: 2 dynamic variable drops dtrace: 1143 dynamic variable drops dtrace: 2 dynamic variable drops dtrace: 32 dynamic variable drops dtrace: 1111 dynamic variable drops dtrace: 2 dynamic variable drops dtrace: 1143 dynamic variable drops dtrace: 2 dynamic variable drops dtrace: 1126 dynamic variable drops dtrace: 17 dynamic variable drops dtrace: 2 dynamic variable drops dtrace: 1 dynamic variable drop dtrace: 1143 dynamic variable drops dtrace: 2 dynamic variable drops dtrace: 1143 dynamic variable drops dtrace: 2 dynamic variable drops dtrace: 21 dynamic variable drops dtrace: 1124 dynamic variable drops dtrace: 1145 dynamic variable drops dtrace: 34 dynamic variable drops dtrace: 1111 dynamic variable drops dtrace: 2 dynamic variable drops dtrace: 1143 dynamic variable drops dtrace: 2 dynamic variable drops dtrace: 32 dynamic variable drops dtrace: 1111 dynamic variable drops dtrace: 2 dynamic variable drops dtrace: 1143 dynamic variable drops dtrace: 707 dynamic variable drops dtrace: 4136 dynamic variable drops dtrace: 3246 dynamic variable drops dtrace: 3476 dynamic variable drops dtrace: 3449 dynamic variable drops dtrace: 3545 dynamic variable drops dtrace: 3267 dynamic variable drops dtrace: 2264 dynamic variable drops dtrace: 3028 dynamic variable drops dtrace: 2186 dynamic variable drops Ian Matchett wrote:> How do I unroll an aggregation? > > I want to printout @Io[R,], at Io[W,] , @Size[R,], at Size[W,] and > @Time[R,], at Time[W,] all on the same line. > 1 line per file that I am monitoring? > > How do I unroll the values out of the aggregation? > > { > > self->rw="R" > or > self->rw="W"; > > self->vpath="/full/path/name/to/file/*"; > > @Size[self->rw, self->vpath]=sum( self->size ); > @Io[self->rw, self->vpath]=count(); > @Time[self->rw, self->vpath]=avg( timestamp-self->start ); > } > > > > profile:::tick-TIMEsec > { > normalize( @Size, (1024 * TIME )); > normalize( @Io, TIME ); > normalize( @Time, 1000); > printf(" r/s w/s kr/s kw/s wait actv wsvc_t asvc_t w b > device\n"); > printa( @Size ); > printa( @Io ); > printa( @Time ); > clear( @Size ); > clear( @Io ); > clear( @Time ); > > } > > -- > Ian Matchett Sun Microsystems > Burlington MA 01803 USA > Phone x22043 781-442-2043 > Email <mailto:Ian.Matchett at Sun.COM> > Mobile 413 237 6599 > Vtext Webservice > <http://www.vtext.com/customer_site/jsp/messaging_lo.jsp?min=ian.matchett at vtext.com> > SMS Email <mailto:Ian.Matchett at vtext.com> > Map and Hotels > <http://www.mapquest.com/maps/map.adp?formtype=address&cat=Hotels&zipcode=01803-2756> > Sun.COM <http://www.sun.com/> Solaris Download > <http://www.sun.com/software/solaris/get.jsp>-- Ian Matchett Sun Microsystems Burlington MA 01803 USA Phone x22043 781-442-2043 Email <mailto:Ian.Matchett at Sun.COM> Mobile 413 237 6599 Vtext Webservice <http://www.vtext.com/customer_site/jsp/messaging_lo.jsp?min=ian.matchett at vtext.com> SMS Email <mailto:Ian.Matchett at vtext.com> Map and Hotels <http://www.mapquest.com/maps/map.adp?formtype=address&cat=Hotels&zipcode=01803-2756> Sun.COM <http://www.sun.com/> Solaris Download <http://www.sun.com/software/solaris/get.jsp> -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.opensolaris.org/pipermail/dtrace-discuss/attachments/20070201/53cfec5a/attachment.html>
Ian, You''re blowing out your dynamic variable space, which is where thread-local variables and associative arrays are allocated from. As you finish with thread-local variables and associative array elements, you should assign zero to them to free them. (The following is in case you''re not familiar with the rationale behind thread-local variables: if you are, ignore this paragraph.) Remember, if you have a 100 different threads trigger an event that causes a specific probe clause to execute, and that probe clause sets a thread-local variable, you get 100 copies of that variable. The only way D knows you are finished with the variable is when you set it to zero, which usually happens in some kind of completion clause. For example, you detect a file open, set a thread-local variable for that open, keep track of IOs with that variable, and then when a file close happens the thread-local that was set on the open should be set to zero to give the space back. If you actually need a lot of space, you could try increasing dynvarsize. See the Solaris Dynamic Tracing Guide for more info. Chip Ian Matchett wrote:> Ok I got past this formating problem now I am getting this! > What do I do? > > > > dtrace: 1143 dynamic variable drops > dtrace: 2 dynamic variable drops > dtrace: 1143 dynamic variable drops > dtrace: 2 dynamic variable drops > dtrace: 20 dynamic variable drops > dtrace: 1123 dynamic variable drops > dtrace: 2 dynamic variable drops > dtrace: 1143 dynamic variable drops > dtrace: 2 dynamic variable drops > dtrace: 31 dynamic variable drops > dtrace: 1112 dynamic variable drops > dtrace: 2 dynamic variable drops > dtrace: 1143 dynamic variable drops > dtrace: 2 dynamic variable drops > dtrace: 32 dynamic variable drops > dtrace: 1111 dynamic variable drops > dtrace: 2 dynamic variable drops > dtrace: 1143 dynamic variable drops > dtrace: 2 dynamic variable drops > dtrace: 32 dynamic variable drops > dtrace: 1111 dynamic variable drops > dtrace: 2 dynamic variable drops > dtrace: 1143 dynamic variable drops > dtrace: 2 dynamic variable drops > dtrace: 1126 dynamic variable drops > dtrace: 17 dynamic variable drops > dtrace: 2 dynamic variable drops > dtrace: 1 dynamic variable drop > dtrace: 1143 dynamic variable drops > dtrace: 2 dynamic variable drops > dtrace: 1143 dynamic variable drops > dtrace: 2 dynamic variable drops > dtrace: 21 dynamic variable drops > dtrace: 1124 dynamic variable drops > dtrace: 1145 dynamic variable drops > dtrace: 34 dynamic variable drops > dtrace: 1111 dynamic variable drops > dtrace: 2 dynamic variable drops > dtrace: 1143 dynamic variable drops > dtrace: 2 dynamic variable drops > dtrace: 32 dynamic variable drops > dtrace: 1111 dynamic variable drops > dtrace: 2 dynamic variable drops > dtrace: 1143 dynamic variable drops > dtrace: 707 dynamic variable drops > dtrace: 4136 dynamic variable drops > dtrace: 3246 dynamic variable drops > dtrace: 3476 dynamic variable drops > dtrace: 3449 dynamic variable drops > dtrace: 3545 dynamic variable drops > dtrace: 3267 dynamic variable drops > dtrace: 2264 dynamic variable drops > dtrace: 3028 dynamic variable drops > dtrace: 2186 dynamic variable drops > > > > > Ian Matchett wrote: >> How do I unroll an aggregation? >> >> I want to printout @Io[R,], at Io[W,] , @Size[R,], at Size[W,] and >> @Time[R,], at Time[W,] all on the same line. >> 1 line per file that I am monitoring? >> >> How do I unroll the values out of the aggregation? >> >> { >> >> self->rw="R" >> or >> self->rw="W"; >> >> self->vpath="/full/path/name/to/file/*"; >> >> @Size[self->rw, self->vpath]=sum( self->size ); >> @Io[self->rw, self->vpath]=count(); >> @Time[self->rw, self->vpath]=avg( timestamp-self->start ); >> } >> >> >> >> profile:::tick-TIMEsec >> { >> normalize( @Size, (1024 * TIME )); >> normalize( @Io, TIME ); >> normalize( @Time, 1000); >> printf(" r/s w/s kr/s kw/s wait actv wsvc_t asvc_t w b >> device\n"); >> printa( @Size ); >> printa( @Io ); >> printa( @Time ); >> clear( @Size ); >> clear( @Io ); >> clear( @Time ); >> >> } >> >> -- >> Ian Matchett Sun Microsystems >> Burlington MA 01803 USA >> Phone x22043 781-442-2043 >> Email <mailto:Ian.Matchett at Sun.COM> >> Mobile 413 237 6599 >> Vtext Webservice >> <http://www.vtext.com/customer_site/jsp/messaging_lo.jsp?min=ian.matchett at vtext.com> >> SMS Email <mailto:Ian.Matchett at vtext.com> >> Map and Hotels >> <http://www.mapquest.com/maps/map.adp?formtype=address&cat=Hotels&zipcode=01803-2756> >> Sun.COM <http://www.sun.com/> Solaris Download >> <http://www.sun.com/software/solaris/get.jsp> > > -- > Ian Matchett Sun Microsystems > Burlington MA 01803 USA > Phone x22043 781-442-2043 > Email <mailto:Ian.Matchett at Sun.COM> > Mobile 413 237 6599 > Vtext Webservice > <http://www.vtext.com/customer_site/jsp/messaging_lo.jsp?min=ian.matchett at vtext.com> > SMS Email <mailto:Ian.Matchett at vtext.com> > Map and Hotels > <http://www.mapquest.com/maps/map.adp?formtype=address&cat=Hotels&zipcode=01803-2756> > Sun.COM <http://www.sun.com/> Solaris Download > <http://www.sun.com/software/solaris/get.jsp> > ------------------------------------------------------------------------ > > _______________________________________________ > dtrace-discuss mailing list > dtrace-discuss at opensolaris.org
Thanks Chip Second question. clear( @Size ); clear( @Io ); clear( @Time ); Do I need to change from clear() to trunc() I can also move the sample rate from 10 second to 1 second as I am post processing it all. IanM Chip Bennett wrote:> Ian, > > You''re blowing out your dynamic variable space, which is where > thread-local variables and associative arrays are allocated from. As > you finish with thread-local variables and associative array elements, > you should assign zero to them to free them. > > (The following is in case you''re not familiar with the rationale > behind thread-local variables: if you are, ignore this paragraph.) > Remember, if you have a 100 different threads trigger an event that > causes a specific probe clause to execute, and that probe clause sets > a thread-local variable, you get 100 copies of that variable. The > only way D knows you are finished with the variable is when you set it > to zero, which usually happens in some kind of completion clause. For > example, you detect a file open, set a thread-local variable for that > open, keep track of IOs with that variable, and then when a file close > happens the thread-local that was set on the open should be set to > zero to give the space back. > > If you actually need a lot of space, you could try increasing > dynvarsize. See the Solaris Dynamic Tracing Guide for more info. > > Chip > > Ian Matchett wrote: >> Ok I got past this formating problem now I am getting this! >> What do I do? >> >> >> >> dtrace: 1143 dynamic variable drops >> dtrace: 2 dynamic variable drops >> dtrace: 1143 dynamic variable drops >> dtrace: 2 dynamic variable drops >> dtrace: 20 dynamic variable drops >> dtrace: 1123 dynamic variable drops >> dtrace: 2 dynamic variable drops >> dtrace: 1143 dynamic variable drops >> dtrace: 2 dynamic variable drops >> dtrace: 31 dynamic variable drops >> dtrace: 1112 dynamic variable drops >> dtrace: 2 dynamic variable drops >> dtrace: 1143 dynamic variable drops >> dtrace: 2 dynamic variable drops >> dtrace: 32 dynamic variable drops >> dtrace: 1111 dynamic variable drops >> dtrace: 2 dynamic variable drops >> dtrace: 1143 dynamic variable drops >> dtrace: 2 dynamic variable drops >> dtrace: 32 dynamic variable drops >> dtrace: 1111 dynamic variable drops >> dtrace: 2 dynamic variable drops >> dtrace: 1143 dynamic variable drops >> dtrace: 2 dynamic variable drops >> dtrace: 1126 dynamic variable drops >> dtrace: 17 dynamic variable drops >> dtrace: 2 dynamic variable drops >> dtrace: 1 dynamic variable drop >> dtrace: 1143 dynamic variable drops >> dtrace: 2 dynamic variable drops >> dtrace: 1143 dynamic variable drops >> dtrace: 2 dynamic variable drops >> dtrace: 21 dynamic variable drops >> dtrace: 1124 dynamic variable drops >> dtrace: 1145 dynamic variable drops >> dtrace: 34 dynamic variable drops >> dtrace: 1111 dynamic variable drops >> dtrace: 2 dynamic variable drops >> dtrace: 1143 dynamic variable drops >> dtrace: 2 dynamic variable drops >> dtrace: 32 dynamic variable drops >> dtrace: 1111 dynamic variable drops >> dtrace: 2 dynamic variable drops >> dtrace: 1143 dynamic variable drops >> dtrace: 707 dynamic variable drops >> dtrace: 4136 dynamic variable drops >> dtrace: 3246 dynamic variable drops >> dtrace: 3476 dynamic variable drops >> dtrace: 3449 dynamic variable drops >> dtrace: 3545 dynamic variable drops >> dtrace: 3267 dynamic variable drops >> dtrace: 2264 dynamic variable drops >> dtrace: 3028 dynamic variable drops >> dtrace: 2186 dynamic variable drops >> >> >> >> >> Ian Matchett wrote: >>> How do I unroll an aggregation? >>> >>> I want to printout @Io[R,], at Io[W,] , @Size[R,], at Size[W,] and >>> @Time[R,], at Time[W,] all on the same line. >>> 1 line per file that I am monitoring? >>> >>> How do I unroll the values out of the aggregation? >>> >>> { >>> >>> self->rw="R" >>> or >>> self->rw="W"; >>> >>> self->vpath="/full/path/name/to/file/*"; >>> >>> @Size[self->rw, self->vpath]=sum( self->size ); >>> @Io[self->rw, self->vpath]=count(); >>> @Time[self->rw, self->vpath]=avg( timestamp-self->start ); >>> } >>> >>> >>> >>> profile:::tick-TIMEsec >>> { >>> normalize( @Size, (1024 * TIME )); >>> normalize( @Io, TIME ); >>> normalize( @Time, 1000); >>> printf(" r/s w/s kr/s kw/s wait actv wsvc_t asvc_t w b >>> device\n"); >>> printa( @Size ); >>> printa( @Io ); >>> printa( @Time ); >>> clear( @Size ); >>> clear( @Io ); >>> clear( @Time ); >>> >>> } >>> >>> -- >>> Ian Matchett Sun Microsystems >>> Burlington MA 01803 USA >>> Phone x22043 781-442-2043 >>> Email <mailto:Ian.Matchett at Sun.COM> >>> Mobile 413 237 6599 >>> Vtext Webservice >>> <http://www.vtext.com/customer_site/jsp/messaging_lo.jsp?min=ian.matchett at vtext.com> >>> SMS Email <mailto:Ian.Matchett at vtext.com> >>> Map and Hotels >>> <http://www.mapquest.com/maps/map.adp?formtype=address&cat=Hotels&zipcode=01803-2756> >>> >>> Sun.COM <http://www.sun.com/> Solaris Download >>> <http://www.sun.com/software/solaris/get.jsp> >> >> -- >> Ian Matchett Sun Microsystems >> Burlington MA 01803 USA >> Phone x22043 781-442-2043 >> Email <mailto:Ian.Matchett at Sun.COM> >> Mobile 413 237 6599 >> Vtext Webservice >> <http://www.vtext.com/customer_site/jsp/messaging_lo.jsp?min=ian.matchett at vtext.com> >> SMS Email <mailto:Ian.Matchett at vtext.com> >> Map and Hotels >> <http://www.mapquest.com/maps/map.adp?formtype=address&cat=Hotels&zipcode=01803-2756> >> >> Sun.COM <http://www.sun.com/> Solaris Download >> <http://www.sun.com/software/solaris/get.jsp> >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> dtrace-discuss mailing list >> dtrace-discuss at opensolaris.org >-- Ian Matchett Sun Microsystems Burlington MA 01803 USA Phone x22043 781-442-2043 Email <mailto:Ian.Matchett at Sun.COM> Mobile 413 237 6599 Vtext Webservice <http://www.vtext.com/customer_site/jsp/messaging_lo.jsp?min=ian.matchett at vtext.com> SMS Email <mailto:Ian.Matchett at vtext.com> Map and Hotels <http://www.mapquest.com/maps/map.adp?formtype=address&cat=Hotels&zipcode=01803-2756> Sun.COM <http://www.sun.com/> Solaris Download <http://www.sun.com/software/solaris/get.jsp> -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.opensolaris.org/pipermail/dtrace-discuss/attachments/20070202/13b16a2a/attachment.html>
Michael Schuster
2007-Feb-02 10:25 UTC
[dtrace-discuss] Re: How do I unroll an aggregation?
Ian Matchett wrote:> Thanks Chip > > Second question. > > clear( @Size ); > clear( @Io ); > clear( @Time ); > > Do I need to change from clear() to trunc()clear() only clears the *numbers* from the aggregations, whereas trunc() also clears the *keys*. So if you don''t want to see the keys where no data collecting has happened since the last printout, you''ll be better off with trunc(). I for my part only use trunc(), but YMMV. HTH Michael -- Michael Schuster Sun Microsystems, Inc. Recursion, n.: see ''Recursion''
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta content="text/html;charset=ISO-8859-15" http-equiv="Content-Type"> </head> <body bgcolor="#ffffff" text="#000000"> <tt>Thanks<br> <br> I think I want clear()<br> I am simulating ''iostat -xndTd''<br> <br> I can read "iostat" into SWAT and get a graphical IO display on per file descriptor basis.<br> <br> Next project is </tt><tt>''iostat -xndTdz'' where null lines are dropped.<br> <br> I guess I could generate the null lines in my perl post processor, but I would need 2 passes.<br> SWAT does not support the iostat -z option.<br> <br> IanM<br> </tt><br> Michael Schuster wrote: <blockquote cite="mid45C3117E.4010405@sun.com" type="cite">Ian Matchett wrote: <br> <blockquote type="cite">Thanks Chip <br> <br> Second question. <br> <br> clear( @Size ); <br> clear( @Io ); <br> clear( @Time ); <br> <br> Do I need to change from clear() to trunc() <br> </blockquote> <br> clear() only clears the *numbers* from the aggregations, whereas trunc() also clears the *keys*. So if you don''t want to see the keys where no data collecting has happened since the last printout, you''ll be better off with trunc(). I for my part only use trunc(), but YMMV. <br> <br> HTH <br> Michael <br> </blockquote> <br> <div class="moz-signature">-- <br> <meta http-equiv="Content-Type" content="text/html; "> <title>Ian Matchett</title> <link rel="stylesheet" media="all" type="text/css" href="http://home.comcast.net/%7Eian-matchett/sig3.css"> <style media="all" type="text/css"> div.sig {color:#fff; background-color:#58a; width:350px; height:150px;} div.sig a, div.sig span{height:14px; font-size:12px;font-family:Arial,Helvetica,FreeSans,"Luxi-sans","Nimbus Sans L",sans-serif;} div.sig span:hover {background-color:#000;} div.sig a {color:#fff; text-decoration:none;} div.sig a:hover {background:#00c;text-decoration:underline;} div.sig a:visited {color:#fff;text-decoration:underline;} </style> <div class="sig"> <div style="margin-top: 3px; margin-right: 15px; float: right; text-align: center;"><span>Ian Matchett</span> <span>Sun Microsystems</span><br> <span>Burlington</span> <span>MA 01803 USA</span><br> <span>Phone x22043</span> <span>781-442-2043</span><br> <a href="mailto:Ian.Matchett@Sun.COM" title="Send Me Email">Email</a><br> <span>Mobile 413 237 6599</span><br> <a href="http://www.vtext.com/customer_site/jsp/messaging_lo.jsp?min=ian.matchett@vtext.com" title="Text My Mobile">Vtext Webservice</a> <a href="mailto:Ian.Matchett@vtext.com" title="Email My Mobile">SMS Email</a><br> <a href="http://www.mapquest.com/maps/map.adp?formtype=address&cat=Hotels&zipcode=01803-2756" title="Burlington Maps">Map and Hotels</a><br> </div> <a href="http://www.sun.com/" title="Sun.COM"><img class="sun_img" alt="Sun.COM" moz-do-not-send="true" src="http://www.sun.com/im/a.gif" height="121" width="136"></a> <a href="http://www.sun.com/software/solaris/get.jsp" title="Solaris Download"><img class="get_img" alt="Solaris Download" moz-do-not-send="true" src="http://www.sun.com/im/a.gif" height="26" width="100%"></a></div> </div> </body> </html>