Archive
Posts from 2006
Asynchronous writes in NFSv3
While debugging an interesting NFSv3 problem last week, I came across the following information in one of my snoop captures: Prior to reviewing the snoop capture, I didn't know that NFSv3 supported asynchronous I/O. While reading through various pieces of information, I came across the following nugget of information: "NFS Version 3 introduces the concept of "safe asynchronous writes." A Version 3 client can specify that the server is allowed to reply before it has saved the requested data to disk, permitting the server to gather small NFS write operations into a single efficient disk write operation. A Version 3 client can also specify that the data must be written to disk before the server replies, just like a Version 2 write. The client specifies the type of write by setting the stable_how field in the arguments of each write operation to UNSTABLE to request a safe asynchronous write, and FILE_SYNC for an NFS Version 2 style write." This explained why we were seeeing what we were seeing (more on that later), and is one of those things to keep in the back of your mind…
$ read more →Limiting how much memory BIND can use
I support BIND on a few servers, and when run as a caching name server, BIND can consume a fair amount of memory if you have lots of clients. There are two ways to restrict the amount of memory BIND uses. The first method, which is described in Pro DNS and BIND, is to set the "datasize" variable to the total amount of memory you want to allocate to BIND. The book provides an awesome description of this variable: datasize >"The maximum amount of data memory the server may use…
$ read more →New version of ssl-cert-check
I got a couple of patches for ssl-cert-check, and released version 3.4 to my website. The patches address a couple of annoying bugs, and I changed the global binary paths to to work by default on Solaris, BSD and Solaris systems. If you haven't used ssl-cert-check before, you can check out my article Proactively handling SSL certificate expiration with ssl-cert-check to see what it does.
$ read more →Determining if an application is using random vs. sequential I/O
The DTraceToolkit comes with two super useful scripts to observe the "randonmess" or "sequentialness" of an application. The first script is iopattern, which provides a system-wide view of random and sequential I/O, the total amount of I/O generated, and an I/O size distribution: The second script is seeksize.d. Seeksize.d provides a histogram of the number of sectors traversed between I/O operations for each process on the system: While discussing these scripts last night, I didn't provide many details on how they actually work. Each script uses the io provider to detect when an I/O occurs, and the value of "b_blkno" to determine which block is being read into memory or written to disk…
$ read more →DTraceToolkit presentation slides
Tonight I gave a talk at the local opensolaris users group titled "DTrace for SysAdmins: An introduction to the DTraceToolkit." I would like to thank everyone for coming out, and for putting up with my broken voice (I am currently getting over a cold). I put the presentation slides up on prefetch.net, and I hope everyone will snag the latest version of the toolkit and test it out!
$ read more →