Thread: Options for fsync?
Hi there! I'm trying to comprehend the current status of filesystem settings and PostgreSQL settings. If I run on a machine (using Linux and ext3) with no battery backed raid controller then I should use fsync=on and disable the write cache on my harddrives to avoid corruption. If I had a controller with battery, then I could use fsync=off, but I should still disable the write cache?
A B wrote: > Hi there! > > I'm trying to comprehend the current status of filesystem settings and > PostgreSQL settings. > > If I run on a machine (using Linux and ext3) with no battery backed > raid controller then I should use fsync=on and disable the write cache > on my harddrives to avoid corruption. > > If I had a controller with battery, then I could use fsync=off, but I > should still disable the write cache? > no, you would still want fsync on, otherwise commits are left in main memory. fsync forces the commits to be written to the controller cache which has the battery. most of the raid systems I've used that battery backed cache have storage media with proper cache flushing, and the raid controller issues the appropriate commands to insure the on-drive buffers get flushed too. Its usually when you use cheap desktop SATA that you can get into trouble, as long as you're using proper server grade storage like SAS, FC, SCSI, it generally works right.
A B wrote: > If I had a controller with battery, then I could use fsync=off, but I > should still disable the write cache? > Never turn fsync=off. Always disable any write cache on the drives themselves; most good battery-backed RAID controllers will do that for you. So long as the battery continues to work, you can keep the write cache on the controller itself enabled, and in fact you have to do so in order to get good commit performance. Given that eventually all batteries fail, the better cards on the market actually make that an explicit setting, which is the safest setting if available: write-back cache enabled when battery works, write-through [cache disabled] if doesn't. Make sure you setup monitoring alerts via e-mail for drive and battery failures too; test them out by yanking at drive before the server goes into production if you can. -- Greg Smith 2ndQuadrant US Baltimore, MD PostgreSQL Training, Services and Support greg@2ndQuadrant.com www.2ndQuadrant.us