Utför en prestandaanalys av din SQL Server #4
Innehåll
»»
»
»
»
»
»
»
»
»
»
»
»
»
Checklista för operativsystemets prestanda
av Brad M. MacGee
Checklista för prestandaanalys
Skriv in dina resultat i tabellen ovan
Att konfigurera din Windows 2000 Server är lätt, men noggrant
I den här delen av din prestandaanalys ska vi tala om operativsystemet, och hur du kan optimera det för att få ut det bästa av SQL Serverns prestanda. Trots att SQL Server kan köras både under Windows NT 4.0 och Windows 2000, så ska vi i den här artikeln fokusera oss på Windows 2000 eftersom det är det ledande operativsystemet. Windows 2000 är för det mesta självinställande, precis som SQL Server. Och precis som med SQL Server, så finns det vissa åtgärder du kan ta till för att höja Windows 2000s prestanda. Varje gång som du sen förbättrar Windows 2000s prestanda, så förbättrar du samtidigt SQL Serverns prestanda.
Är diskpartitionerna formaterade med NTFS 5.0?
Om du har en ny Server där du nyligen har installerat Windows 2000, så är alla hårddiskar som har formaterats av Windows 2000 formaterade med NTFS 5.0. Men om det är en gammal Server där man tidigare körde Windows NT 4.0, och om hårddiskarna inte har formaterats om efter att ha uppgraderat till Windows 2000, så är hårddiskarna troligen formaterade med NTFS 4.0. Trots att det inte finns så många skillnader mellan NTFS 4.0 och NTFS 5.0, så finns det vissa du bör känna till. NTFS 5.0 inkluderar några nya utvecklingar inom prestanda, vilket innebär t ex färre diskaccesser då den ska finna en fil eller snabbare diskläsningar. I tiden före Windows 2000 så formaterade DBA hårddiskar – som endast var avsedda för loggfiler – som FAT, eftersom FAT gav lite bättre prestanda än NTFS 4.0. Men nu med NTFS 5.0 så gäller inte det längre, så för att få bästa prestandan så måste du formaterade alla hårddiskar till SQL Servern som NTFS 5.0.
Om du för tillfället har en produktions SQL Server som fortfarande kör med NTFS 4.0 partitioner under Windows 2000, så kan det vara svårt att konvertera dem till NTFS 5.0. Oftast skulle jag rekommendera att du inte oroar dig så mycket över det, prestandan är inte så hemskt mycket sämre. Men om du uppgraderar från Windows NT 4.0 till Windows 2000 så bör du definitivt fundera på att formatera om hårddiskarna till NTFS 5.0, för att kunna dra fördel av minsta lilla förbättring av prestanda som du kan få ut av din Server.
Är "NTFS Data File Encryption and Compression" avstängd?
NTFS 5.0 under Windows 2000 stöder både kryptering och komprimering, och som standard så är de funktionerna avstängda på en nyligen installerad Windows 2000 Server. Trots att funktionerna kan ge vissa fördelar under begränsade förhållanden, så ger de inte några fördelar för SQL Server. Faktum är att du kan skada SQL Serverns prestanda genom att använda en eller båda av funktionerna.Som du vet så kräver SQL Server mycket I/O, och allt som sänker disk I/O skadar SQL Serverns prestanda. Både filkrypteringen och filkomprimeringen kräver mycket disk I/O, då de manipulerar data allteftersom datan används. Så om filkryptering och/eller filkomprimering används på SQL Server filer, så skadas prestandan.
Om du blir DBA för en existerande SQL Server som du inte är familjär med, så bör du kontrollera så att ingen har råkat sätta på någon av funktionerna av misstag. Om någon är på så stänger du av den, och då blir du prestandahjälten för alla användare på Servern.
Har din Server det senaste Servicepacket?
Var och en av alla Servicepack som jag har skådat, ger en eller flera förbättringar i prestandan. Det kan bero på att Microsoft har gjort vissa omställningar, eller att de har fixat en gammal bugg, allt för att höja prestandan.Du bör kanske inte köpa in ett nytt Sericepack och installera det så fort det har släppts från Microsoft. Du bör vänta på att det har blivit grundligt testat under realistiska former innan du installerar det.
Har din Server de senaste Microsoft-certifierade drivrutinerna för hårddiskarna?
Jag har vid flera tillfällen sett gamla och buggiga drivrutiner som har orsakat prestandaproblem i Windows 2000. De vanligaste är hårddisk- eller nätverksrelaterade drivrutiner.Du bör regelbundet se till att din Server har de senaste Microsoft-certifierade hårdvarudrivrutinerna. Det kan du göra genom att gå in på hårdvaruförsäljarens hemsida och titta på Microsofts uppdateringstjänst. Ibland kan du finna en senare version av en drivrutin tillgänglig, men som ännu inte har blivit certifierad och testad av Microsoft. Jag rekommenderar att du har tålamod och väntar på den Microsoft-certifierade versionen. Trots att en ökad prestanda är viktig, så är en stabil mjukvara ännu viktigare.
Är din Windows 2000 Server konfigurerad som en stand-alone Server?
En Windows 2000 Server kan antingen konfigureras som en stand-alone Server eller som en domänkontrollant. För bästa prestanda så bör SQL Server köras som en stand-alone Server. Det beror på att domänkontrollanter kräver för mycket Serverresurser från SQL Server på grund av sina höga arbetslast, vilket skadar prestandan.
Är de fysiska filerna på Servern väldigt fragmenterade?
Om Windows 2000 Servern upplever en överdriven fysisk filfragmentering, så kan det påverka disk I/O och därmed sänka SQL Serverns prestanda. Trots att NTFS 5.0 försöker minimera filfragmenteringen, så är det omöjligt att förhindra det helt. Du bör regelbundet använda de inbyggda defragmenteringsverktygen i Windows 2000, eller använda en tredjepartens defragmenteringsverktyg, för att se hur illa de fysiska filerna är fragmenterade. Om det väldigt fragmenterat, så bör du defragmentera för att få bättre prestanda.Tyvärr så går det inte att defragmentera filer som är öppna, som t ex SQL Serverns databasfiler. För att kunna defragmentera sådana filer så måste du stoppa SQL Serverns tjänster, till defragmenteringen är klar.
Det idealiska vore att köra defragmenteringsverktygen regelbundet, för att försäkra sig om den bästa I/O prestandan i Servern. Det är det bästa sättet att försäkra sig om att all prestanda förbättras.
Är inställningen "Application Response" satt till "Optimize Performance" för "Background Services?"
Om du går in i Kontrollpanelen och väljer System, och sedan klickar på Advancedfliken, så kan du konfigurera den inställning som kallas ”Application Response”. Du kan välja att optimera prestandan för antingen ”Application” eller för ”Background Services”. Det som är valt som standard är ”Background Services”, och det bör förbli så också.Inställningen talar om för SQL Server att de tjänster som körs i bakgrunden, som t ex SQL Server Services, ska ha högre prioritet än de tjänster som körs synligt. På en Server som endast kör SQL Server, så är det alternativet det mest optimala.
Är säkerhetsanalysen på?
Windows 2000 har en förmåga att virtuellt kunna analysera alla aktiviteter på en Server. Som standard så är säkerhetsanalysen avstängd. För bästa prestanda så bör inga extra analyseringstjänster vara på, eftersom det kommer att öka I/O aktiviteten och tvingar SQL Servern att kämpa för att få samma I/O. Om du däremot måste ha på en extra analyseringstjänst (för att din manager säger det), så försök i alla fall att begränsa den så mycket som möjligt för att reducera den negativa effekten på prestandan.
Hur stor är Serverns Swapfil PAGEFILE.SYS?
Microsoft rekommenderar att storleken på PAGEFILE.SYS filen ska vara 1,5 gånger mängden fysisk RAM. Den exakta mängden du behöver beror på vilka extra SQL tjänster som du har igång. Om du t ex kör Full Text Search tjänsten, så rekommenderar Microsoft att storleken på PAGEFILE.SYS filen ska vara 3 gånger mängden fysisk RAM. Microsofts rekommendationer må vara ett bra ställe att börja på, men det bästa sättet att bestämma filens storlek är genom att övervaka Performance Monitor Countern; Page File Object: % Usage, och därigenom se hur mycket av PAGEFILE.SYS filen som används under produktion. Sen får du ändra storleken på filen till en minimistorlek som är lite högre än den mängd som faktiskt används av filen (enligt Countern), och till en maximal storlek på 50 MB över minimivärdet.
PAGEFILE.SYS filens inställningar kan skådas och ändras genom att högerklicka på My Computer, välja Properties och sedan Advancedfliken. Sen klickar du på Performance Options och klickar på Changeknappen under Virtual Memory. Om du gör ändringar i det virtuella minnet så måste du starta om datorn för att inställningarna ska aktiveras.
Är onödiga tjänster avstängda?
För att få den bästa prestandan så bör du stänga av SQL Server tjänster som egentligen inte behövs. Det sparar på både RAM och CPU cykler, samt höjer SQL Severns prestanda i allmänhet. Nedan följer en lista (ej komplett) på de av operativsystemets tjänster som egentligen inte behövs, och som kan stängas ner (om de inte används). En del av de här tjänsterna kanske inte är installerade på din Server, och andra kanske är satta som ”Disabled” eller ”Manual”, beroende på hur din Server är installerad och konfigurerad. Tjänster som är satta till ”Manual” är designade till att köras igång när de behövs, och stängas av när de inte längre behövs.- Alerter
- Application Management
- Clipbook
- Distributed Link Tracking Server
- Fax Service
- File Replication
- FTP Service
- Indexing Service
- Internet Connection Sharing
- Intersite Messaging
- Kerberos Key Distribution Center
- License Logging Service
- Logical Disk Manager Administrative Service
- Messenger
- Microsoft Search
- NetMeeting Remote Desktop Sharing
- Network DDE
- Network DDE DSDM
- Print Spooler Service (om du inte vill skriva ut från den här Servern)
- QoS RSVP
- Remote Access Auto Connection Manager
- Remote Procedure Call (RPC) Locator
- Routing and Remote Access
- RunAsService
- Smart Card
- Smart Card Helper
- SMTP Service
- Telnet
- Utility Manager
- Windows Installer
- World Wide Web Service
Förutsatt att tjänsterna är på, så brukar jag vanligtvis stänga ner dem, samtidigt som jag försäkrar mig om att dess ”Startup Type” är satta till ”Manual”. Sen om du faktiskt behöver någon av de här tjänsterna, så behöver du självklart inte stänga ner dem.
Är alla onödiga nätverksprotokoll avstängda?
Det enda nätverksprotokoll som du egentligen behöver då du kör SQL Server på det, är TCP/IP. Genom att ta bort onödiga nätverksprotokoll så reducerar du lasten på Servern samt onödig nätverkstrafik.
Och nu då?
Vårt mål är att utföra den del av prestandaanalyseringen som vi har diskuterat i den här artikeln, på var och en av dina Servrar, och sedan använda den informationen du får ut till att göra eventuella korrigeringar – om du kan.När du har klarat av den här delen i analyseringen, så är du nu redo för att analysera din SQL Servers konfigurationer.
0 Kommentarer