Svenne Krap wrote:
> Først lige lidt generelt...
>
> Kør postgresql v. 7.2, den er helt ny og hver ny version giver
> væsentlig bedre performance..
Det gør jeg allerede....
> Mine indstillering er (for 512 ram)
>
> Sharedmem 5120 (5k)
> Sortbuffers 32678 (32k)
> vacuum mem 65536 (64k)
>
> Du er nok nødt til at køre en sysctl for at tillade så stor mængde
> shared mem bruges (for mig ca. 150 mb).
Også gjort - kører pt med 64 MB shared mem. Noget der undrer mig er at
der spawnes 3-4 postmaster processer ved opstart - som tilsyneladende
hver især insisterer på at æde op til 64 MB shared mem....
> Herefter kører den ved mig ca. 120 tpc-b ved 200 simultane brugere.
>
> Derpå til selve databasen.. Husk at køre
>
> "vacuum analyse <tabel>" efter du har fyldt mange data i tabellen
> lav et cron til at køre "vaccumdb -z -a -q" (all databases all tables,
> analyse, quiet).
> Det er begynderfejlen at glemme det :)
Støvsuger regelmæssigt
> Ellers kan du søge hjælp i comp.databases.postgresql.generel. Husk
> tabledefinition, antal række og outputtet af "explain <query>"
>
> Mht. plads.. data fylder og det er ikke et mål for PGSQL at være
> pladsbesparende...
Tjae... Det er vel som man ser det, jo mindre data fylder jo større del
af databasen buffres i ram. Men det der undrede mig var speciet at
$PGDATA diret fylder ca 4-5 gange mere end den mængde data der ligger i
databasen - der er selvfølgelig noget overhed til indexes og log buffere
mm, men det forklarar ikke at databasen fylder ~400-500 MB mere end jeg
regnede med....
> Det lyder lidt underligt med beskrivelsen af dine tabeller, er du
> sikker på de ikke kan designes anderledes/bedre?
Nej... Men umiddelbart er alternativet at lave en stor tabel med hele
indholdet af de andre tabeller = meget spild + _stor_ tabel. Data kommer
fra flade filer som indeholder et stort antal records i et tekstbaseret
format som så parses og gemmes i DB. Da et af formålene med databasen er
at kunne læse/liste de enkelte records i deres helhed vil en større
opsplitning af records føre til en forfærdelig masse JOINS på de mindre
tabeller.
> Jeg er ikke så sikker på, det er en god ide at slå fsync fra.. du skal
> hellere pakke dine inserts ind i transaktioner.. og skal du køre mange
> på en gang, så kig på copy kommandoen.. den sparker for vildt røv..
Har jeg også overvejet - men da data ikke umiddelbart er kritiske og kan
genfindes er det ikke blevet til noget endnu. Pt. får jeg en performance
forbedring på ca. 500%-1000% på inserts ved at slå fsync fra... (fsync
er dog blevet væsentlig hurtigere siden ver 7.0 her var performance ca.
2000% bedre uden)
-Mikkel