Running 512 containers on a laptop

As an exercise on how lightweight and extensible LXC can be I decided to create a large installation of LXC containers on my laptop.  I wanted to see if LXC would allow me to create large-scale testing environments often needed for testing software with several moving parts.

Continue reading “Running 512 containers on a laptop”

Munin-cron overlap fix

Recently I’ve migrated my munin instance onto a Linode virtual machine. Having fewer resources was a potential source of problems.
One of the problems that I ran into early on was that sometimes a munin-cron run would still be executing when another munin-cron was scheduled to start. This caused many contention issues, ridiculous load(35+), and once caused a reboot of the VM.

One solution I tried was to turn up the time between tests from 5 minutes to 10 minutes. This still had generated problems, as munin-cron runs still weren’t done after 10 minutes, and any greater time between polls meant subpar graph granularity.

My final solution was to modify munin’s cron entry to the following:


*/7 * * * * munin test ( ! "$(pidof /usr/bin/munin-cron)" ) && test -x /usr/bin/munin-cron && nice -19 /usr/bin/munin-cron

I ran a test to see if there’s still a PID active from munin-cron, and if not check to see if the munin-cron executable exists. If it does exist, run a munin-cron job with the nicest setting possible.

This has solved the problem while still keeping granular graphs, and has significantly reduced the load on the virtual machine.
load average: 0.09, 0.42, 0.38

Part III: Munin[node] in cfEngine

At work we use munin and cfEngine extensively, therefore it is accurate to assume that we have a tight-knit setup that allows us to scale munin-node to all hosts in cfEngine, and have the munin-master configured through it as well. This post describes our configuration, and how it takes place. Continue reading “Part III: Munin[node] in cfEngine”

Part II: The Munin-master

Hopefully you’ve read the first part(Munin-Node), and have one or more nodes already configured. It’s alright if the munin-node is running on the same machine as the munin-master. The master is more of a pain to set up than the client, and could require significantly more debugging. Continue reading “Part II: The Munin-master”

Part I: Setting up Munin-Node

After becoming increasingly frustrated with cacti’s lack of sane repeatable configuration and extensibility I began to explore other options.

Munin showed the most promise and compatibility with many of the services we run at the OSL, such as memcached and varnish. I liked how the plugin system is set up independently on each host, and that each plugin can be managed, configured, and consolidated through symlinks. Continue reading “Part I: Setting up Munin-Node”

Gentoo on the Fujitsu P1620

Recently I picked up a Fujitsu P1620 on eBay.  I’ve grown to really appreciate all the hardware in it, and consider it grade ‘A’ hardware, except for a few gotchas in Linux.  This serves as a document for those who are seeking to gain full hardware functionality of a P1620 in Linux. Continue reading “Gentoo on the Fujitsu P1620”

Tiling Window Managers: A Comparison

Over the past few years I’ve been trying to find the perfect window manager for me. Some have had the correct features, but terrible behavior. Some turn me off with painful programming languages. Others have horrible authors who are bat-shit insane.  What follows is a chronicle of my progression through various window managers, and a brief overview and review of each. Continue reading “Tiling Window Managers: A Comparison”