hoffentlich ganz einfache Frage(n):
Was spricht dagegen die CRC (–data-checksums) bei initdb zu aktivieren?
Ja, in der Anleitung ist von “noticeable performance penalty” die Rede.
Wer hat da Erfahrungen aus der Praxis? Wie stark waren die Auswirkungen “wahrnehmbar”?
Musste jemand deswegen schonmal die Rolle Rückwärts machen?
Was habt ihr sonst noch als Nachteil empfunden?
Unterm Strich kannst Du das ja leicht mit pgbench auf Deiner Hardware selber rausfinden:
Eine neue Instanz mit initdb anlegen
pgbench laufen lassen
Prüfsummen aktivieren (pg_checksum -e -D …)
pgbench mit den gleichen Parametern nochmal laufen lassen.
Werte vergleichen.
Auf meinem (eher schwachbrüstigen) Windows 10 Laptop mit einer SSD, habe ich so gut wie keinen Unterschied feststellen können.
Ich weiß aber nicht genau wieviel pgbench wirklich schreibt, d.h. wie aussagekräftig so eine Vergleich ist.
Hier mal die Werte von meinem Laptop
Ohne Checksummen:
starting vacuum...end.
transaction type: <builtin: TPC-B (sort of)>
scaling factor: 50
query mode: simple
number of clients: 16
number of threads: 1
duration: 300 s
number of transactions actually processed: 673613
latency average = 7.126 ms
tps = 2245.342455 (including connections establishing)
tps = 2245.550431 (excluding connections establishing)
Mit Checksummen:
starting vacuum...end.
transaction type: <builtin: TPC-B (sort of)>
scaling factor: 50
query mode: simple
number of clients: 16
number of threads: 1
duration: 300 s
number of transactions actually processed: 611060
latency average = 7.855 ms
tps = 2036.826986 (including connections establishing)
tps = 2037.074491 (excluding connections establishing)
Und seit Postgres 12 kann man das ja auch problemlos ein- und wieder ausschalten - zumindest wenn man ein Fenster hat bei dem Postgres abgeschaltet werden darf (aber man braucht kein neues initdb mehr)