A Long and Winding Road

published

It’s happened again. I set off to investigate one specific thing, and wind up learning a whole lot about things in which I wasn’t the least bit interested originally.

I’m looking into installing Mailman for one of my virtual domains. First I set off looking at alternatives to Mailman, as I have an unnatural fear of Python. I looked at Enemies of Carlotta, SmartList, and a host of other solutions. They all had some (perceived) short-coming, and since I’m already modestly familiar with Mailman administration, I decided to install Mailman onto my workstation. (apt-get install <a href="http://packages.debian.org/cgi-bin/search_packages.pl?keywords=mailman&searchon=names&subword=1&version=all&release=all" title="Debian packages: Mailman">mailman</a> is such a wonderful thing!)

To properly support my environment, I need to configure Mailman to interoperate with Postfix virtual domains. For some reason, I became concerned that Mailman might be a performance drain on my system. The Mailman FAQ suggested mounting my mail spool with noatime, so off I went Google-ing for “Postfix noatime”. I found this thread on the Postfix users’ mailing list, which I followed to the end, re-learning much about SCSI and RAID filesystems that I’d forgotten (and none of which is directly appropriate to my paltry IDE-based server).

Another Mailman FAQ addressed memory consumption, and how to diagnose it. This re-introduced me to vmstat, and I learned that new Linux versions (kernel 2.5.41+) support a -a option to vmstat that displays active/inactive memory. Not quite sure of the difference, I Linux Google-ed for “vmstat inactive memory”, which led me to this discussion, which helped me better understand why my server looks to be using so much memory:

$ free
             total       used       free     shared    buffers     cached
Mem:       1035568     974844      60724          0      34752     561812
-/+ buffers/cache:     378280     657288
Swap:       971924          0     971924
$ vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa
 0  0      0  58188  34752 561880    0    0     1     7    2     3  1  0 99  0

I’d been worried that my system was running dangerously low on RAM but the new -a switch to vmstat, with the previous explanation about “inactive memory”, makes me feel much better:

$ vmstat -a
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
 r  b   swpd   free  inact active   si   so    bi    bo   in    cs us sy id wa
 0  0      0  58396 229728 586144    0    0     1     7    2     3  1  0 99  0

This whole process happens to me again and again. I set off to investigate mrtg to monitor my network performance, and that leads me to rrdtool, which in turns has me pondering what kind of script to call from cron: sh, perl, command-line php? Do I really want to run an SNMP daemon on my system, or can I get by with some fancy shell scripts? Heck, while I’m monitoring, why stop at network throughput? Why not monitor Apache performance (on a vhost basis, no less!), or Postfix performance?


home / about / archive / RSS