New on quietlinux

You can now disable Root Certificate generation in CUPS.

why?

I set the disk spin-down to 2 minutes with hdparm.

I would like to set it up so that after boot it only starts the disk if the computer us used: When I am printing the printer makes noise anyway and usually I do not print while sleeping.

What I would really like is for Linux distributions to add a way to configure this. When you install Linux you should get the question: "should this computer minimize disk access?".

Problematic Programs

syslog

Prints "-- MARK --" in log files every 20 minutes.

Solution

Start syslogd with "-m 0" option. Edit /etc/init.d/syslog

modprobe

modprobe may search /lib/modules/kernelver/ for a nonexisting module every minute.

Solution 1

Look in /var/log/ksymoops/20020702.log (subsitute correct date)

20020702 161032 start /sbin/modprobe -s -k -- char-major-6 safemode=1

This was because i was running the "lpd" daemon without support for a parallel port.

Solution 2

Compile everything into the kernel and do not run modprobe (modutils)

ntp

ntp use /var/lib/ntp/ntp.drift and /var/log/ntpstats/loopstats

To minimize disk access increase the time between polls increase minpoll for each server: server clock.server.com minpoll 16 maxpoll 17

Solution

I do not really need ntp so I use ntpdate instead.

Wish list

A --quiet option to ntpd that disable drift files and stats.

CUPS

CUPS write a SSL certificate to /etc/cups/ssl/server.crt every 5 minutes. It read /etc/groups every time so making /etc/cups/certs a link to a RAM disk does not work.

Solution 1

Get the source. In scheduler/main.c change the 300 in

if ((time(NULL) - RootCertTime) >= 300)

to something bigger or remove the if statement.

Solution 2: RootCertDuration

If you have CUPS version 1.1.16 or newer you can add the following to /etc/cups/cupsd.conf:
RootCertDuration 0
This directive was on our wish list, good.

cron

runs a lot of things too often.

Solution

Remove everything you do not need from /etc/cron.d/, /etc/crontab, and /etc/cron.daily. See mail
I changed /etc/crontab so that /etc/cron.daily is run every week and /etc/cron.weekly is run every month.

Wish list

A --wait-for-disk option to cron.

This would make cron wait for the next disk access before starting anything.

ftpd

Ftp servers typically access /etc/{passwd,hosts,group}, user home directories etc.

Solution muddleftp and tmpfs

Create a tmpfs partition, run muddleftpd. You have to set up muddleftpd using /etc/muddleftpd.com in the followin way: A muddleftpd.conf for ONE user (luser).

browsers

Netscape 4.7 writes to its cache index even when not used. Opera touches the disk when it replaces the ads (free version).

Solution

Kill or suspend browsers when you do not use them.

mail

MTA's (sendmail, exim, postfix, etc) is sometimes run every 15 minutes from /etc/cron.d/MTA, where "MTA" is the name of your MTA.

Check /etc/init.d/MTA to see if an MTA is started that checks the spool files at intervals. This is probebly done with a "-q time" (eg "-q 1h22m") option.

Solutions

You probably do not need this: remove the "/etc/cron.d/MTA" file or the "-q" option in /etc/init.d/MTA.

updatedb

runs find, etc. every day to update the database used by "locate"

Solution

Uninstall updatedb or remove /etc/cron.daily/find

If you need the "locate" command, just run "updatedb" as root manually once in a while.


Other Hints

Mount file-systems with "noatime"

If you mount a file-system with option, "noatime" the inode access times will not be updated. This means that if a cached file or directory is read, the disk will not spin up.

Put it in you /etc/fstab file:

/dev/hda3 /home ext2 defaults,noatime 0 0

Noflushd

noflushd is a deamon that spins idle disks down and then blocks further writes to the disk to prevent it from spinning up again. It does not work well with journaling file systems.

Finding the culprits

As part of the DIKU Linux kernel course a patch to the kernel 2.4.18 was developed. The patch makes the kernel log all file operations. It logs PID, command name, filename etc. Get the patch here.

This User mode program turns logging on and off. Compile as "cc -o do_noisy_logging -I /usr/src/linux/include do_noisy_logging.c"

run as "./do_noisy_logging 0" or "./do_noisy_logging 1"

Links

Creative
Commons License
This work is licensed under a Creative Commons Attribution 2.5 License.
Niels Elgaard Larsen elgaard@diku.dk