Avatar billede janjacobsen Nybegynder
24. april 2004 - 15:25 Der er 5 kommentarer og
1 løsning

Skal serveren bruge mere ram

Jeg har denne server som kører en postgresql-database, men den kører så ufatteligt langsomt under komplekse forespørgsler.
Enten er forespørgslerne konstrueret dårligt fra forhandlersiden, eller også er der noget galt med serveren.

Oversigt:
      total      used      free  shared buffers cached
Mem:  526700544 488652800 38047744 0 18948096 353804288
Swap: 1044598784 210362368 834236416

Hvordan frigiver man mere ram? Kan smide en kommando i et cronjob som frigiver mere hukommelse.
Hvordan nedprioriterer man andre processer på maskinen til fordel for postgresql?
Hvordan kan man vide at maskinen friver processer hurtigt nok når postgresql skal bruge kræfter?

Evt. værktøjer til det.
Avatar billede mfalck Praktikant
24. april 2004 - 17:58 #1
databaser har det med at sluge al den ram den kan lægge fingrene på for at cache så meget som muligt, så jeg tror ikke du skal forsøge at frigive mere ram. Det kan være værd at overveje at smide mere ram i, især hvis performance halter.

du kan evt som root bruge "nice" eller "renice" kommandoen til at give postgres mere CPU tid, men som tommelfingerreglen til databaser siger: meget ram, hurtige diske . M.a.o. så tror jeg ikke du får så meget ud af at give den mere processtid.
Avatar billede janjacobsen Nybegynder
24. april 2004 - 19:43 #2
Jeg har brugt nice/renice til postgre, men synes ikke det giver performance.
Jeg tror der ligger en dårlig databasestruktur bag den ultradårlige performance.
Findes der ikke noget memorytool til dette et eller andet sted?
Avatar billede strych9 Praktikant
24. april 2004 - 20:23 #3
Det er sådan set meget normalt at al den ram der ikke er i brug bliver slugt til caching så det ser ud som om rammen er maxet ud i feks output af "top".

Det du savner er en "sql profiler". Det er sådan med sql at mange folk tror de er dygtige til det, men i regelen er der ikke mange der er i stand til at lave skalerbare løsninger i det. =) En profiler kan hjælpe dig med at finde frem til netop de forespørgsler der trækker tænder hos serveren.

Jeg kender ikke Postgresql særlig godt, så jeg kan ikke sige om den har features sammenlignelige med MySQL eller Oracle. Disse andre database systemer kan cache queries og output i RAM, udnytte transaktionslogs på RAID drev og lignende ting. Der er mange ting man kan gøre, men et godt første skridt er at prøve at optimere database strukturen, lave indexes, og studere godt med en profiler.
Avatar billede janjacobsen Nybegynder
24. april 2004 - 23:16 #4
Har du en sql-profiler du kan anbefale?
Avatar billede strych9 Praktikant
24. april 2004 - 23:20 #5
Jeg vidste at du ville spørge, så jeg skulle have sagt med det samme at det har jeg ikke ;)
Jeg har kun lavet profiling af en MS SQL database degang jeg var admin for jp.dk. I MSSQL er profileren indbygget. Det kan være der også er en i Postgresql
Avatar billede janjacobsen Nybegynder
24. april 2004 - 23:32 #6
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester