Page 28

Wysoko wydajny PostgreSQL 9.0

Jednak powysze ustawienie nie bdzie funkcjonowao na wszystkich platformach. Warto pamita, e po zmianie wartoci domylnej na przedstawion powyej nastpi pewien spadek wydajnoci. Dzieje si tak zawsze podczas przejcia z buforowania niebezpiecznego do bezpiecznego. Na innych platformach optymalizacja parametru wal_sync_method moe by znacznie bardziej skomplikowana. Teoretycznie istnieje moliwo poprawienia wydajnoci operacji zapisu w systemach z rodziny Unix poprzez zmian dowolnej metody zapisu uywajcej par write/fsync lub write/fdatasync na stosujc zapis prawdziwie synchroniczny. Mona si przekona, po wydaniu polecenia SHOW, e na platformach obsugujcych bezpieczne zachowanie zapisu DSYNC jest to opcja stosowana domylnie: wal_sync_method=open_datasync

Jednak take w tym przypadku opcja ta nie jest jawnie podana w pliku konfiguracyjnym. Jeeli tak jest na uywanej przez czytelnika platformie, mona przeprowadzi jedynie niewielk optymalizacj. Warto open_datasync to ogólnie optymalne podejcie, a kiedy wymieniona opcja jest dostpna, pozwala nawet na bezporednie uywanie urzdze wejcia-wyjcia, a take pomijanie bufora systemu operacyjnego. W systemie Linux sytuacja jest prawdopodobnie najbardziej skomplikowana. Jak przedstawiono we wczeniejszym fragmencie kodu, platforma Linux domylnie uywa metody fdatasync. Za pomoc poniszego polecenia mona wczy tryb synchronicznych operacji zapisu: wal_sync_method=open_sync

Ponadto w wielu przypadkach mona odkry, e metoda ta dziaa szybciej — czasami nawet znacznie szybciej — ni okrelona domylnie. Jednak bezpieczestwo jej stosowania zaley od uywanego systemu plików. W wikszoci systemów Linux domylnym systemem plików jest ext3, który w wielu przypadkach nie obsuguje bezpiecznych operacji zapisu O_SYNC, co moe doprowadzi do uszkodzenia danych. Przykady niebezpieczestw takiego ustawienia na platformie Linux przedstawiono w wtku „PANIC caused by open_sync on Linux” znajdujcym si na stronie http://archives.postgresql.org/pgsql-hackers/2007-10/msg01310.php. Istniej dowody, e w ostatnich wersjach jdra (2.6.32) ten problem nie istnieje, jeli uywany jest system plików ext4, ale takie rozwizanie nie zostao jeszcze intensywnie przetestowane na poziomie bazy danych. W kadym przypadku podczas przeprowadzania wasnych testów wartoci parametru wal_sync_method naley wykona równie test polegajcy na „wycigniciu z gniazda sieciowego

wtyczki przewodu zasilajcego serwer”. Spowoduje to nage odcicie zasilania serwera i pozwoli na sprawdzenie, czy nastpia utrata jakichkolwiek danych w wyniku stosowania testowanej metody. Zalecane jest równie przeprowadzenie dugotrwaych testów przy duym obcieniu, aby znale  sporadyczne bdy, które mog doprowadzi do awarii.

158

Wysoko wydajny PostgreSQL 9.0  

Masz w rękach kompletny podręcznik, przeznaczony dla średnio i bardzo zaawansowanych administratorów baz danych, którzy już używają PostgreS...

Advertisement