[dtrace-discuss] One write is split into many physical IO (from result of fsrw.d )
Hi, All, I have three questions about the output of fsrw.d 1: The write is to a shareplex queue(for oracle replication), but the write is split into many many physical IO (I didn't paste all the disk_io here to save space, but tons of such line contain disk_io). Does that means the queue file is fragmented on disk? And it is also very strange as a writing to a queue file resulted in disk_io on oracle file (the oracle file is QIO file) 2: In the most right column, many lines are with value none, what's the meaning of it? 3: In the second column for disk_io. The value is like vxio127003, vxdmp100 and sd59. I used prtdiag and prtconf but can't find their definition. Where can I find them? sc-read . R 3608 0 /oracle/ULOOKUP/splex/vardir53_9i/rim/q_uhs_mig_part5+P+o.ULOOKUP-o.ULOOKUP.q fop_read. R 3608 0 /oracle/ULOOKUP/splex/vardir53_9i/rim/q_uhs_mig_part5+P+o.ULOOKUP-o.ULOOKUP.q sc-write . W 3608 0 /oracle/ULOOKUP/splex/vardir53_9i/rim/q_uhs_mig_part5+P+o.ULOOKUP-o.ULOOKUP.q fop_write . W 3608 0 /oracle/ULOOKUP/splex/vardir53_9i/rim/q_uhs_mig_part5+P+o.ULOOKUP-o.ULOOKUP.q disk_io vxio127003 W 8192 0 none disk_iovxdmp100 W 8192 0 none disk_iosd59 W 8192 0 none disk_io vxio127003 W 8192 0 none disk_iovxdmp100 W 8192 0 none disk_iosd59 W 8192 0 none disk_io vxio127000 R 131072 0 /oracle/ULOOKUP/data01/.ULOOKUP_index01_21.dbf::cdev:vxfs: disk_io vxdmp36 R57344 0 none disk_iosd63 R57344 0 none disk_io vxdmp44 R65536 0 none disk_iosd61 R65536 0 none disk_io vxdmp92 R 8192 0 none disk_iosd67 R 8192 0 none disk_io vxio127000 R 131072 0 /oracle/ULOOKUP/data01/.ULOOKUP_index01_21.dbf::cdev:vxfs: disk_io vxdmp92 R57344 0 none disk_iosd67 R57344 0 none disk_io vxdmp68 R65536 0 none disk_iosd65 R65536 0 none disk_io vxdmp36 R 8192 0 none disk_iosd63 R 8192 0 none disk_io vxio127000 R 131072 0 /oracle/ULOOKUP/data01/.ULOOKUP_index01_21.dbf::cdev:vxfs: disk_io vxdmp36 R57344 0 none disk_iosd63 R57344 0 none disk_io vxdmp44 R65536 0 none disk_iosd61 R65536 0 none disk_io vxdmp92 R 8192 0 none disk_iosd67 R 8192 0 none disk_io vxio127000 R 131072 0 /oracle/ULOOKUP/data01/.ULOOKUP_index01_21.dbf::cdev:vxfs: disk_io vxdmp92 R57344 0 none disk_iosd67 R57344 0 none disk_io vxdmp68 R65536 0 none disk_iosd65 R65536 0 none disk_io vxdmp36 R 8192 0 none disk_iosd63 R 8192 0 none disk_io vxio127000 R 131072 0 /oracle/ULOOKUP/data01/.ULOOKUP_index01_21.dbf::cdev:vxfs: disk_io vxdmp36 R57344 0 none ___ dtrace-discuss mailing list dtrace-discuss@opensolaris.org
Re: [dtrace-discuss] C++ Applications with Dtrace
venkat venki.dammalap...@gmail.com wrote: Hi , I am using MDB to find memory leaks . i am getting Good report with mdb. Are you using mdb with libumem for this, or something else? In one process , MDB showing zero memory leaks but process usage size is increasing day by day . How can we know reason for increasing size . if any body know to find this one please let me know If you are using libumem, you could use the ::umausers dcmd to try to find the biggest users of the allocator. However, that only works for allocations of less than 16k. You can tell if you are making allocations greater than 16k by checking for non-zero usage of umem_oversize, as reported by ::umastat. I recently blogged about finding memory leaks with libumem at http://blogs.sun.com/dlutz/entry/memory_leak_detection_with_libumem but only addressed the case where you actually lose track of memory you allocated, not where you continually grow your memory foot print but still maintain pointers to all of the memory. HTH, David I have another process with same problem but for this process MDb showing some memory leaks , the cause for that leaks is i am allocating memory to some variable when the process startup only . After that am just using those variables . in this case MDB showing only leaks at one time allocated variables , but process usage size increasing. Thanks in advance, Venkat -- ___ dtrace-discuss mailing list dtrace-discuss@opensolaris.org
[dtrace-discuss] Programmatic interface to DTrace?
This might be a n00b question, but is there an example that demonstrates how one can collect DTrace output programmatically? For example, if I were interested in building a web interface for dtrace, how should I go about it? Thanks in advance, Kedar -- This message posted from opensolaris.org ___ dtrace-discuss mailing list dtrace-discuss@opensolaris.org
Re: [dtrace-discuss] Programmatic interface to DTrace?
For a java API you might look at: http://opensolaris.org/os/project/dtrace-chime/java_dtrace_api/ and for the C API (libdtrace): http://dev.lrem.net/tcldtrace/wiki/LibDtrace http://www.osdevcon.org/2008/files/osdevcon2008-petr.pdf Chip -Original Message- From: dtrace-discuss-boun...@opensolaris.org [mailto:dtrace-discuss- boun...@opensolaris.org] On Behalf Of Kedar Mhaswade Sent: Friday, January 16, 2009 12:02 PM To: dtrace-discuss@opensolaris.org Subject: [dtrace-discuss] Programmatic interface to DTrace? This might be a n00b question, but is there an example that demonstrates how one can collect DTrace output programmatically? For example, if I were interested in building a web interface for dtrace, how should I go about it? Thanks in advance, Kedar -- This message posted from opensolaris.org ___ dtrace-discuss mailing list dtrace-discuss@opensolaris.org ___ dtrace-discuss mailing list dtrace-discuss@opensolaris.org
Re: [dtrace-discuss] Programmatic interface to DTrace?
On Fri, Jan 16, 2009 at 02:03:48PM -0500, Chip Bennett wrote: and for the C API (libdtrace): http://dev.lrem.net/tcldtrace/wiki/LibDtrace Oh, and there's a tantalizing link to a Tcl interface, not yet populated, and an even more tantalizing link to what a TclDTrace script would look like! ___ dtrace-discuss mailing list dtrace-discuss@opensolaris.org
Re: [dtrace-discuss] C++ Applications with Dtrace
Hi David. I am using mdb with libumem only LD_PRELOAD=libumem.so UMEM_DEBUG=audit=30,maxverify=0,verbose ./myservice and while running my service i took core dump by gcore command 3 times with some time gap and appied dcmd commands while issue dcmd ::umastat i saw some moery allocations and use sizes as increased , here find one cache name details cachebuf bufbuf memory alloc alloc namesizein use total in use succeed fail umem_alloc_64 64 2463725024 3203072 172506 0 umem_alloc_64 64 2463725088 3211264 417738 0 umem_alloc_64 64 2497225088 3211264 1215782 0 If this inceasing only causes for my problem. please tell me how can i get stack for that cache . Thanks in advance, Venkat -- This message posted from opensolaris.org ___ dtrace-discuss mailing list dtrace-discuss@opensolaris.org
Re: [dtrace-discuss] C++ Applications with Dtrace
Hi Venkat, Try running ::umausers umem_alloc_64 to see the top users of that cache. The output will be a list of stack traces and their allocation stats. David - Original Message - From: venkat venki.dammalap...@gmail.com Date: Friday, January 16, 2009 12:04 pm Hi David. I am using mdb with libumem only LD_PRELOAD=libumem.so UMEM_DEBUG=audit=30,maxverify=0,verbose ./myservice and while running my service i took core dump by gcore command 3 times with some time gap and appied dcmd commands while issue dcmd ::umastat i saw some moery allocations and use sizes as increased , here find one cache name details cachebuf bufbuf memory allocalloc namesizein use total in use succeed fail umem_alloc_64 64 2463725024 3203072172506 0 umem_alloc_64 64 2463725088 3211264417738 0 umem_alloc_64 64 2497225088 32112641215782 0 If this inceasing only causes for my problem. please tell me how can i get stack for that cache . Thanks in advance, Venkat -- ___ dtrace-discuss mailing list dtrace-discuss@opensolaris.org
Re: [dtrace-discuss] Programmatic interface to DTrace?
Excellent resource, Chris. Thank you. -- This message posted from opensolaris.org ___ dtrace-discuss mailing list dtrace-discuss@opensolaris.org
Re: [dtrace-discuss] C++ Applications with Dtrace
Hi david, What is allocated succeed block from umastat dcmd . that value is keep on increasing . Is that memory occupieng by process? like that way my process memory usage also keep on increasing ? can u clarify plz ? Thanks, Venkat -- This message posted from opensolaris.org ___ dtrace-discuss mailing list dtrace-discuss@opensolaris.org
[dtrace-discuss] Can I pass a parameter to Dtrace script as a part of function name?
I want to trace function whose name has certain value, such as read or write. But seems dtrace can't replace the variable with the value I passed in. bash-3.00$ cat d.d #!/usr/sbin/dtrace -s #pragma D option flowindent syscall::**$1**:entry { self-interest = 1; } fbt::: /self-interest/ {} syscall::**$1**:return { self-interest = 0; } bash-3.00$ ./d.d *read* dtrace: failed to compile script ./d.d: line 5: invalid probe description * syscall::*$1*:entry*: Undefined macro variable in probe description ___ dtrace-discuss mailing list dtrace-discuss@opensolaris.org
Re: [dtrace-discuss] Can I pass a parameter to Dtrace script as a part of function name?
$1 is not a D variable it's a shell var. Have a look at the inline function/operand. http://wikis.sun.com/display/DTrace/Type+and+Constant+Definitions There's loads of examples in the DTrace Toolkit that you can look at and use as examples. Google dtrace inline for more examples. -- This message posted from opensolaris.org ___ dtrace-discuss mailing list dtrace-discuss@opensolaris.org