Prefetch Technologies // Keeping your cache lines cozy

Archive

Posts from 2010

CFengine 3 Tutorial -- Part 2 -- Building Software and SMF Manifests / Scripts

infrastructureJul 2, 2010 2 min read

CFEngine and dependencies Building OpenSSL Building PCRE Building CFEngine Note: I modify the Makefile to statically compile in the BerkeleyDB, OpenSSL, and libpcre libraries into the CFEngine binaries. I also modify the reference for pthread to pthreads for Solaris. These adjustments to the Makefile are dependant on how you built the software above. Caveat emptor Subversion and dependencies…

$ read more →

CFengine 3 Tutorial -- Part 1 -- System Architecture

Jul 2, 2010 8 min

I recently stood up a CFengine 3 configuration management infrastructure and took notes during the process to share with my team. This was my first attempt at using CFengine, so hopefully this multi-part overview will help others trying to bootstrap their environments as well. Many of these notes were taken from the CFengine 3 reference manual and tutorial found on the docs website here. There is some excellent documentation on the CFengine.org so if you have more questions about something specific, be sure to check out the reference manuals…

$ read more →

Getting an accurate view of process memory usage on Linux hosts

linuxJul 2, 2010 1 min

Having debugged a number of memory-related issues on Linux, one thing I've always wanted was a tool to display proportional memory usage. Specifically, I wanted to be able to see how much memory was unique to a process, and have an equal portion of shared memory (libraries, SMS, etc.) added to this value. My wish came true a while back when I discovered the smem utility. When run without any arguments, smem will give you the resident set size (RSS), the unique set size (USS) and the proportional set size (PSS) which is the unique set size plus a portion of the shared memory that is being used by this process…

$ read more →

Getting DNS ping (aka nsping) to compile on Linux hosts

networkinglinuxJul 1, 2010 2 min

While debugging a DNS issue this week, I wanted to run my trusty old friend nsping on my Linux desktop. I grabbed the source from the FreeBSD source site, checked to make sure the bits were legit, then proceeded to compile it: Erf! The source archive I downloaded didn't compile, and from the error message it appears the function definition for dprintf conflicts with a function definition in libc. Instead of mucking around with map files, I changed all occurrences of dprintf to ddprintf…

$ read more →

Ridding your Solaris host of zombie processes

solarisJun 30, 2010 1 min

We encountered a nasty bug in our backup software this week. When this bug is triggered, each job (one process is created per job) that completes will turn into a zombie. After a few days we will have hundreds or even thousands of zombie processes, which if left unchecked will eventually lead to the system-side process table filling up. Solaris comes with a nifty tool to help deal with zombies (no, they don't ship you a shotgun with your media kit), and it comes by the name preap…

$ read more →