Acties:
  • 0 Henk 'm!

  • rotij
  • Registratie: Januari 2007
  • Laatst online: 30-06 14:32
Beste,

Wij hebben hier op de zaak een Windows 2008R2 server met SQL 2008R2 geïnstalleerd. Deze liep al een tijdje maar sinds kort is er een database bij opgekomen voor Navision van ongeveer 10GB groot.

Het probleem sindsdien is dat die al het geheugen volop gebruikt, De (vm) server heeft 24GB intern geheugen toegekend gekregen. In SQL Manager heb ik aangegeven dat SQL niet meer dan 18GB mag gebruiken. Kennelijk doet hij hier niets mee want in de task scheduler staat het geheugen op 100%

Het gekke is wel dat de sqlsrv.exe volgens task scheduler (wat volgens mij niet altijd even betrouwbaar is) +- 5GB gebruikt. Overige taken gebruiken weinig tot bijna geen geheugen.

Ik heb totaal geen verstand van SQL Server maar wellicht dat jullie mij toch kunnen helpen?

Acties:
  • 0 Henk 'm!

  • CMD-Snake
  • Registratie: Oktober 2011
  • Laatst online: 13-11-2022
Je vraag wordt me niet direct duidelijk. Is de performance van je SQL Server nu slecht? Of wil je minder geheugen gebruiken?

Voor wat betreft performance:

SQL Server komt met een hele suite aan analyse tools om de performance na te lopen. Die doen checks om je DB te optimaliseren, denk aan kijken of o.a. je indexes wel optimaal zijn etc..Tevens kunnen die tools verbeteringen aandragen en deze doorvoeren voor je. Dat is altijd een mooi begin punt.

Tevens kan je overwegen om tabellen te partitioneren. Heb je veel historische gegevens in een tabel en worden oudere gegevens weinig geraadpleegd dan kan je overwegen om die tabel te partitioneren en de oudere gegevens in een andere file te zetten.

Ten tweede is het altijd de vraag of je een database server moet virtualiseren. Het kan wel, en het kan dan prima werken, maar I/O is altijd lastig bij VM's. Grote DB's willen in een VM nog wel slecht presteren dan.

Voor wat betreft geheugen verbruik:

Taskmgr vind ik wel redelijk goed als indicator van verbruik. Wil je meer zien dan moet je met Sysinternal tools gaan werken. Die kunnen dieper kijken.

SQL Server is wel een flinke verbruiker van geheugen, zeker als je een grote DB hebt die door veel gebruikers wordt bewerkt/uitgelezen etc. etc.. Bovendien lees ik dat je meerdere DB's host op die server. Zitten deze DB's in dezelfde instance of in aparte instances? Je moet de geheugensettings per instance instellen. Je kan de laatste DB instance wel beperken, maar als je andere DB's onbeperkt mogen vebruiken dan doen ze dat ook. Dus beperk dan alle instances of je moet meer geheugen toekennen aan de VM en zien of de situatie beter wordt of je laatste DB op een andere machine plaatsen. Let overigens wel dat het geheugen de performance van je DB kan beïnvloeden.

Met 100% geheugen verbruik heb je ook goede kans dat je VM de hele tijd zit te swappen, ook niet bevorderlijk voor je performance.

Acties:
  • 0 Henk 'm!

  • rotij
  • Registratie: Januari 2007
  • Laatst online: 30-06 14:32
Beste CMD-SNAKE,

Inderdaad, probleem is dus dat performance erg slecht is. Hij is inderdaad constant 100% bezet.

Acties:
  • 0 Henk 'm!

  • _Arthur
  • Registratie: Juli 2001
  • Laatst online: 10:31

_Arthur

blub

rotij schreef op donderdag 07 februari 2013 @ 14:48:
Hij is inderdaad constant 100% bezet.
Wat is 100% 'bezet'? Kom eens met wat screenshots uit de Resource Manager en een lijst met uit welke hardware de fysieke vmWare machine bestaat en hoeveel VM's (en wat die doen) op deze fysieke machine draaien.

Acties:
  • 0 Henk 'm!

  • Rolfie
  • Registratie: Oktober 2003
  • Laatst online: 07-07 19:49
rotij schreef op donderdag 07 februari 2013 @ 14:48:
Beste CMD-SNAKE,

Inderdaad, probleem is dus dat performance erg slecht is. Hij is inderdaad constant 100% bezet.
De vraag is waarmee is die 100% bezig? En beter wat is jouw definitie van 100% bezig?
1 slechte query, dan de meest zware server plat legt.

De vraag is dus voor jouw, waar is de server precies mee bezig.
En (vanuit gaande dat het SQL is) daarna uitzoeken wat de SQL precies op dat moment aan het doen is.

Acties:
  • 0 Henk 'm!

  • Razwer
  • Registratie: December 2000
  • Laatst online: 25-06 09:10
lol, Hyper-V zeker? dynamic memory aan zeker? je geheugen wordt er uit geballooned :)
Nooit dynamic memory zetten op een SQL server.
Op een VM waar meer geheugen wordt gebruikt dan taskmanager toekent aan processen is 9 van de 10 keer ballooned geheugen door dynamic memory. Gewoon op static zetten en daarna weer checken.

Newton's 3rd law of motion. Amateur moraalridder.


Acties:
  • 0 Henk 'm!

  • rotij
  • Registratie: Januari 2007
  • Laatst online: 30-06 14:32
Het lijkt erop dat we het probleem hebben gevonden. Het had inderdaad met ballooning te maken. We hebben hem verplaatst naar andere host en minder geheugen gegeven, 8GB totaal. Nu blijft die netjes daaronder.

  • demokert
  • Registratie: Mei 2011
  • Laatst online: 04-07 08:49
De vraag is... is die host voor de rest hetzelfde? :) Het kan namelijk meerdere oorzaken hebben...
Pagina: 1