
Craig Sanders <cas@taz.net.au> writes:
dpkg's sync() fetish gives pretty poor performance on most filesystems.
For maximum fun, combine with collectd running unbuffered (i.e. default config). The mass of random seeks combined with dpkg's syncs were enough to bring my server to its knees. The dpkg workarounds have been mentioned; the collectd one is this. Note that it doesn't actually kick in until collectd has been running for half an hour. # On all collectd nodes (default is 10s) Interval 60 # On the collectd server LoadPlugin rrdtool <Plugin rrdtool> DataDir "/var/lib/collectd/rrd" # Instead of reducing the poll interval, increase the *write* # interval. Write any given RRD once every 30min, and randomly # distribute those across the entire 30min window (30±15min). CacheTimeout 1800 RandomTimeout 900 </Plugin>
(i used to do this on my home system with an xfs / before i got an SSD. dangerous, but *much* faster. YMMV but i never suffered any data loss or corruption of dpkg's status file etc from it - low risk of a problem but potentially catastrophic if power-failure/crash/whatever does occur)
dpkg also works much faster when the root filesystem is on a tmpfs :-) (I've been building a lot of live images lately; one buildhost has enough RAM I can build in /tmp instead of /var/tmp.)