How do I minimize idle I/O on Linux to decrease noise?

You can use iotop (preferably with a large interval and the -o option) to find out which program is writing to disk.

If you have enough RAM, you may also want to turn off swap with:

$ sudo swapoff -a

, or permanently by removing the swap line from /etc/fstab.

The typical culprits for I/O in the night are:

  • cron. This daemon allows one to schedule commands (like "update at 2am" or "clear sessions every 30 minutes"). Have a look at /etc/cron* and use crontab -e (there is one for each user) to find out what is being executed, and when, and remove the offending lines. Since most of the preconfigured cronjobs are indexing in some way, you can safely turn cron off if you don't depend on any action being scheduled.
  • logfiles Have a look at /var/log. If some file is constantly growing in there, consider reducing the program's log level. If you don't care about logs, turn them off in the programs and/or mount a memory filesystem at /var/log. You can find out which files change with what with $ sudo tail -f /var/log/*
  • On-disk temporary files. Usually, that means some process is writing to /tmp (you can find out with iotop). Consider mounting a memory-based filesystem (tmpfs) on there if you have enough RAM and the size of these files is limited.

You may also be interested in powertop, which shows which programs are waking up your CPU. If something unexpected is in there, consider filing a bug against the program.

On the hardware side, you can get a silent disk (an SSD has no movable parts, so it's a good candidate) or put the HDD to standby manually. hdparm (particularily the -C and -y options) is a good tool for that.


Get a Solid State Drive (SSD), they contain no moving parts. That is the only guarantee.


If you don't need your computer to compute anything, turn it off at night and you will save yourself quite a bit of power; not to mention you are then also eliminating the fan noise from lowering your sleep quality.


You can try to use the hdparm command, it can change the HDD status. But not all HDDs suport it. Take a look at this page at the -s -y -Y or -z parameters.

You could also try alternatives:

  1. buy one SSD
  2. Search how to make your computer less noisier (using foam inside it, in very specific places, if you know how to build a computer and dissipate the heating
  3. Change your HDD for another one, quieter (like the ones used in notebooks)