2013/4/14 Vali Dragnuta <vali.dragn...@inode.ro> > > > - nu sunt recomandate "journaled fs" pentru a tine pe ele baze de date. > > --- Um, what ?Asta e o prostie, folosesc de multi ani de zile baze de > date si toate pe fs-uri jurnalizate (ext3,xfs, ext4...). Sincer chiar nu > cred ca e vreun issue acolo. >
Scuze, nu am vrut sa sune ca un postulat. Mai corect s-ar spune "nu intotdeauna sunt recomandate JFS". M-am lamurit inclusiv in cazul meu, am mers pe ext4 default (data=ordered, cu bariere, cu atime etc) ani de zile si nu am avut probleme pe productie, pana cand am dat de problema asta cu un "anumit" model de executie (foarte multe update-uri). Recomandarea anti-journaled am citit-o in mai multe locuri (ex. http://informix-myview.blogspot.ro/2010/07/new-journaled-filesystem-rant.html ). > > Ce-i drept nu am > lucrat cu firebird, insa daca intr-adevar face sync pt fiecare operatie, > va merge prost no matter what. > > Manualul lor spune ca by default (setarea forced-writes=on sau writes=sync) deschide database cu O_SYNC. In plus, ext4 incepand cu 2.6.32 (exact kernelul meu) are ceva reduceri majore de performanta tocmai ca sa imbunatateasca securitatea datelor ( http://www.phoronix.com/scan.php?page=article&item=ext4_then_now&num=3, e un benchmark de postgres dar cred ca e pe-aproape si pentru alte DB). Nu as merge pana acolo incat sa incerc sa dezactivez bariere samd, insa e clar ca forced writes din Firebird + barierele si jurnalele din ext4 post-2.6.32 duc la o reducere majora a performantelor. "performance or security - pick one". Chestii ortogonale, asta e. > --- Din pacate raspunsul la intrebarea ta ar depinde de DB. Insa > indiferent de db NU as renunta la un fs jurnalizat. Peste tot vad sugestii despre "tune and benchmark based on your own workload", ceea ce inseamna ca nu exista "retete" sau best-practices aplicabile in orice situatie (vorbesc de cazul DB peste varii FS). Pe de alta parte, eu unul m-as increde in sync-ul facut de motorul DB, ar trebui sa nu il intereseze absolut deloc de FS pe care lucreaza; de altfel, firebird (probabil si alte DBMS) accepta fara probleme sa lucreze cu un nume de genul /dev/sda1 in loc de /cale/catre/database.fdb. Pe scurt, "kilometraju' variaza" la fiecare. > Mai degraba as > investiga de ce db-ul tau mai vrea in secolul asta sa scrie totul in mod > sincron (ma rog, intrebarea este chiar TOT ce scrie scrie sincron ? Ca > daca doar logul (sau echivalentul sau in dbul ala) este sincron, asta e > ok. > Cum spuneam mai sus, din documentatia lor rezulta ca folosesc by default O_SYNC pentru date si metadate. Deci da, se pare ca introduce penalitate de performanta majora, pe de alta parte incearca sa rezolve D-ul ala din ACID indiferent de FS-ul/RAW-ul de dedesubt. > De asemenea, as sugera sa rescrii acel script sa face updateurile > intr-un mod mai eficient - sa updatezi mai multe inregistrari inainte sa > faci commit-. Daca faci commit dupa fiecare update pt fiecare > inregistrare (si ai si DB-ul lucrind in mod sincron) este de asteptat sa > mearga prost, chiar si pentru simplul fapt ca trebuie sa faci foarte des > apeluri de sistem sa scrii ceea ce tocmai ai modificat. > Nu e scriptul meu, insa din ce vad in procedura aia se baleiaza multe linii din db, se face pe fiecare update, fiecare update are vreo 3-4 triggere, care triggere mai apeleaza si ele fiecare niste proceduri stocate samd samd... Multumesc tuturor, probabil voi mai rula o vreme pe configuratia curenta pana cand se vor observa incetiniri majore pe productie, dupa care fac saltul la SSD. _______________________________________________ RLUG mailing list RLUG@lists.lug.ro http://lists.lug.ro/mailman/listinfo/rlug