Prefetch Technologies // Keeping your cache lines cozy

Oh how I love my iRobot roomba

personalFeb 18, 2008 1 min read

One of my friends recently purchased an iRobot Roomba, and he let me test it out while he was out of town. I thoroughly tested out his Roomba, and was amazed that it was able to do as good of a job as my existing vacuum cleaner! The Roomba also has a key advantage over my upright vacuum cleaner in that it could wander under couches, beds and dressers to get dust and debree that had made its way there. I was also overjoyed when I found out that once I pushed the CLEAN button on the Roomba, it would begin vacuuming the room with no manual intervention…

$ read more →

Measuring the time an application was stopped due to garbage collection

Feb 18, 2008 3 min

I recently spent some of my spare time assisting a friend with debugging some Java performance problems his company was experiencing. When I originally looked into the performance problem several weeks back, I used the mpstat and jstat utilities to observe CPU utilization and object allocations, and based on some jstat anomalies, I used the techniques described in my object allocation p ost to get a better understanding of how their Java application was allocating objects. After a bit of analysis and a a couple of email exchanges with my friend and one of the developers he worked with, we were able to locate two application problems that the developer has since fixed. But even with these changes (which resulted in some significant speedups!!), my friend noticed that request times would periodically shoot up to unacceptable levels…

$ read more →

Locating files on Solaris servers with pkgchk

solarisFeb 18, 2008 1 min

Most Linux and BSD distributions ship with the locate utility, which allows you to quickly find files on a system: While not quite as thorough as locate, the Solaris pkgchk utility has a "-P" option that provides similar capabilities: Nice!

$ read more →

Cleaning up HTML files with tidy

linuxwebFeb 16, 2008 2 min

I have read a number of documents on correctly using CSS and XHTML over the past month, and have learned about a number of common mistakes people make when creating content that uses these technologies. Most of the articles discussed ways to structure web content to avoid these pitfalls, which got me wondering if anyone had taken these recommendations and created a tool to analyze content for errors. After a bit of googling, I came across the W3C content validation site, as well as the tidy utility. The W3C website is super easy to use, and it provides extremely useful feedback that you can use to improve your content…

$ read more →

Determining the capabilities of a NIC on a Solaris host

networkingFeb 13, 2008 1 min

There are a myriad of NIC chipsets in use by the major server vendors (Broadcom, Intel, NVidia, etc.), and each chipset typically contains a unique set of capabilities (e.g., hardware offload support, some amount of on board cache devoted to RX / TX rings, hardware flow classification, etc.). To see which capabilities a given NIC chipset supports, you can usually read through the technical white papers and engineering documents that were published when the chipset shipped. To find the NIC chipsets that are in use on a Solaris host, the kstat utility can be run with the the name of a network driver, the instance of the driver, and the "chipid" name: module: bge instance: 0 name: chipid class: net asic_rev 2416115712 bus_size 64 bit bus_speed fast bus_type PCI-X businfo 4746 cache_line_size 16 chip_type 5715 command 342 This will display a number of pieces of information, including the type of BUS in use, whether it is 32- or 64-bit, and the chipset version. In the output above, we can see that a 64-bit PCI express Broadcom model 5715 adapter is in use by the server…

$ read more →