Optimering af Pervasive v 9 databasen I forhold til IT Revisor Alle funktioner i IT Revisor benytter PSQL databasen, nogle mere intensivt end andre. Mange steder i IT Revisor kan den rigtige indstilling af databaseprogrammet mærkes i form af pæne hastighedsforøgelser. Enkelte af indstillingerne kan i visse situationer nærmest mirakuløst bevirke mere end en fordobling af hastighederne. Er der mange brugere af systemet, der deler databasen, kan de rigtige indstillinger endda give en mangedobling af alle proceshastigheder. Det konkrete udbytte afhænger af et utal af omstændigheder, som kort kan sammenfattes således: Hvis data access er en flaskehals, så er der virkelig noget at hente! s. 1
Indhold Optimering af Server... 3 Optimering af Klient... 7 Installation af Pervasive Control Center... 10 64 Bit Version 10 Server Engine... 11 Yderligere læsning... 11 s. 2
Optimering af Server Efter en del test og nogle konkrete erfaringer med individualiserede indstillinger på Pervasive SQL, ser vi os nu i stand til at give en mere indgående vejledning i, hvordan Pervasive SQL med fordel opsættes for at opnå den bedst mulige performance. Vejledningen gælder først for filservere (også eventuelle gateway-maskiner i Novel- og Linux-miljøer) og for terminalservere hvor data fysisk er placeret på terminalserveren. Sidst i dokumentet beskrives desuden klientopsætningen. De fleste indstillinger tager udgangspunkt i nedenstående skærmbillede, som fremkommer via: Start Alle Programmer Pervasive Pervasive.SQL Pervasive.SQL 9 Control Center. Er Control Centeret ikke til rådighed på computeren kan det installeres efter denne vejledning. I control centeret klikkes der på det nederste link i højre kolonne under Common Tasks: Configure Local Engine. Derved fremkommer egenskabs-dialogen hvori der vælges Performance tuning i venstre side af billede. På skærmbilledet er vist de anbefalede default indstillinger samt sat spørgsmålstegn ved de parametre, som forudsætter en konkret vurdering! Hverken Index Balancing eller Limit Segment Size to 2GB skal være tjekket, - førstnævnte fordi det ikke resulterer i mærkbar forbedring, og sidstnævnte fordi der ellers kan opstå bøvl, hvis filer s. 3
overskrider 2GB. En File Growth Factor på 15 vurderes at være fornuftigt på en gennemsnitlig tabel i IT Revisor. De øvrige parametre kræver en individuel vurdering: Cache Allocation Size: Denne parameter bestemmer i praksis, hvor meget hukommelse databasen har mulighed for at gøre brug af. Hvis serverens hovedopgave er at være filserver for IT Revisor bør den sættes til at bruge forholdsvis meget af den fysiske hukommelse (dog maksimalt 2GB for Pervasive version 9.x). Har serveren derimod mange andre opgaver bør tallet være lavere, - måske ned til ca. 20% af den fysiske hukommelse, for at give plads til afvikling af de andre programmer. I mange installationer, hvor man ikke har tilpasset denne parameter, kan den være angivet til kun 64MB eller mindre. Med mange brugere (>10) og realistiske databasestørrelser kan en ændring til f.eks. 1 GB give en dramatisk forbedring af systemets ydelse. Log Buffer Size: Denne parameter bestemmer hvor meget hukommelse der kan afsættes til brug for loggen. Hvis tallet er lavt skriver loggen oftere til en fil på disken end hvis tallet er højt, og performance kan derfor øges ved at øge mængden af hukommelsen til log-bufferen. Hvis der er hukommelse nok og CPU en ikke er overbelastet kan man med fordel skrue op for log-bufferen. Niveauet bør stå i forhold til Cache Allocation Size ca. således at Log Buffer Size er sat til højst 1/32 af Cache Allocation Size. Number of Input/Output Threads: Denne parameter styrer det maksimale antal af tråde der anvendes til at læse og skrive til/fra memory/disk. En tommelfingerregel er, at der ca. bør være en tråd til rådighed for hver 8 filer der er åbne. Ved brug af monitor-programmet (findes via Start Alle Programmer Pervasive Pervasive.SQL Other Utlities Monitor) kan man få indsigt i, hvor mange filer der er åbne lige nu og hvor mange der maksimalt har været åbnet siden start af Pervasive. Oplysninger om antallet af åbne filer findes ved i monitor menuen at vælge MicroKernel Ressource Usage. Antallet af åbne filer afhænger meget af brugen af IT Revisor, men vi har set, at der nogle steder ca. er 50 filer åbne pr. bruger. I sådanne tilfælde bør antallet af input/output tråde ca. være: (50 * antallet af brugere)/8. Communications Threads: I monitor-programmet kan det aktuelle antal brugte Communication Threads aflæses, ved i hovedmenuen at vælge MicroKernel Communications. Det anbefales at lade denne værdi danne udgangspunktet for det fremtidige maksimum, - eventuelt sat i forhold til antallet af Input/Output Threads således: Communications Threads = ½ * Number of Input/Output Threads Transaction Log Size: Denne parameter bestemmer størrelsen af hver enkelt transaction log fil, og kan derfor ikke være mindre end Log Buffer Size. (Hvis den sættes lavere end Log Buffer Size ændres Transaction Log Size automatisk til Log Buffer Size). Pr. default er Transaction Log Size ca. på størrelse med Log Buffer Size * 2. s. 4
Max MicroKernel Memory Usage: Denne parameter styrer brugen af den automatiske (Level 2) cache, og værdien angiver hvor stor en procentdel af serverens cache man maksimalt bruger. Hvis der angives 0 slås automatisk cache fra, og man kan i stedet gøre brug af System Cache (se nedenfor). Hvorvidt system cache kan anbefales frem for automatisk cache afhænger bl.a. af om Windows serveren har Large System Cache slået til eller fra. Dette kan kontrolleres ved at tjekke registreringsnøglen: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Memory Management\LargeSystemCache. LargeSystemCache er slået til hvis værdien er 1 og slået fra hvis værdien er 0. I fald Large System Cache er slået til er den generelle anbefaling at slå System Cache fra og sætte Max Microkernel Memory Usage til den procentdel af memory som databasen med rimelighed kan gøre krav på. Hvis serveren udelukkende håndterer Pervasive SQL vil det stort set være al den hukommelse som ikke anvendes af styresystemet (måske ca. 60-90%), men i andre tilfælde vil værdien naturligvis være lavere måske helt ned til ca. 20%. System Cache: Som nævnt ovenfor under Max MicroKernel Memory Usage er det afgørende om serveren har slået Large System Cache til. Har den det, er den generelle anbefaling at undlade at aktivere System Cache på databasen. I billedet nedenfor, hvortil der opnås adgang ved at vælge Memory Usage i menuen til venstre - redigeres System Cache. Hvis System Cache er slået til bør Max Micro Kernel Memory Usage sættes til 0. Allocates Resources at Startup I samme skærmbillede er det muligt at indstille om databasen skal allokere hukommelse allerede ved opstart. Dette giver øget hastighed for de første klienter, og indstillingen anbefales generelt. Communication protols: En sidste lille ting som har indvirkning på performance er valget af protokol. På Windows servere bør dette formodentlig sættes til TCP/IP. Nedenstående skærmbillede hvor den foretrukne protokol kan vælges fremfindes ved at vælge Communication protocols i venstre side af dialogen. s. 5
Efter endt opsætning skal Pervasive genstartes før indstillingerne træder i kraft. Det gøres lettest ved at genstarte servicen Pervasive...XX i services (Gå til Start Kør og skriv services.msc) og genstarte servicen. Inden bør det dog sikres, at ingen kører i IT Revisor. I monitor-programmet (se hvordan det startes op under afsnittet Number of Input/Output Threads) kan man under MicroKernel Active Files og MicroKernel Active Users danne sig et overblik over, om der er åbne filer, - og evt. hvem der har dem åbnet. s. 6
Optimering af Klient Med opsætningerne ovenfor er serveren sat op, men der er også et par ting som med fordel kan gøres på klienten. Klienten vil i denne sammenhæng sige alle de arbejdsstationer som har Pervasive SQL installeret, men hvor data ikke fysisk ligger på den pågældende maskine (dog undtaget eventuelle Gateways i Novell- og Linux-miljøer). De fleste indstillinger tager udgangspunkt i nedenstående skærmbillede, som fremkommer via: Start Alle Programmer Pervasive Pervasive.SQL Pervasive.SQL 9 Control Center. I control centeret klikkes der på det øverste link i højre kolonne under Common Tasks: Configure Microkernel Router. Derved fremkommer egenskabs-dialogen hvori der vælges Performance tuning i venstre side af billedet. På skærmbilledet er vist den ene indstilling, som har vist sig at være særligt udbytterig ved kørsel med IT Revisor, og det anbefales at aktivere Use Cache Engine. s. 7
Communication protols: Helt på samme måde som for serveren, bør der nøjes med at vælge en enkelt protokol til netværkskommunikationen, - en indstilling der formodentlig bør sættes til TCP/IP. Nedenstående skærmbillede s. 8
Use Local MicroKernel Engine: Pr. default er Use MicroKernel Engine aktiveret, hvilket betyder at klienten i princippet kan fungere som databaseserver. Dette er fordelagtigt hvis der til tider kopieres data ud på klienten, hvilket eksempelvis er tilfældet, hvis en revisor har lavet en lokal installation af IT Revisor. I Terminal Server setups med filservere til data vil der derimod næppe være brug for at aktivere den lokale engine, og her kan man dermed med fordel deaktivere Use Local MicroKernel Engine. Er du i tvivl, vil den sikre løsning være at lade Use Local MicroKernel Engine være checked. Indstillingen kan påvirkes i nedenstående skærmbillede, - ved at vælge Acces i egenskabs-dialogen. I modsætning til serveropsætningen er det ikke nødvendigt at genstarte klienten før indstillingerne træder i kraft. Hvis du har brug for at distribuere en opsætning ud til mange klienter, kan det muligvis være en fordel at eksportere dele af reg-basen på en tilrettet klient, og lade de øvrige klienter importere denne reg-fil. Pervasives klientindstillinger ligger under: HKEY_LOCAL_MACHINE\SOFTWARE\Pervasive Software\Microkernel Router\Version 9\Settings og indstillingerne for Communication Protocols ligger placeret i: HKEY_LOCAL_MACHINE\SOFTWARE\Pervasive Software\Communications Requester\Version 9\Settings\Supported protocols s. 9
Installation af Pervasive Control Center Er Pervasive Control Center ikke installeret på computeren kan det gøres således: 1. Start monitor-programmet fra Start Alle Programmer Pervasive Other Utilities Monitor. Vælg MicroKernel Active Files og kontroller, at der ikke er åbne filer. Hvis der er åbne filer skyldes det formodentlig at en eller flere brugere har IT Revisor åbent. Fortsæt først til punkt 2 når der ikke længere er filer åbne. 2. Åben filen Workstat\PSQL\Workgroup\ptksetup.ini og sørg for, at der i sektionen features står PCC=Yes - som vist i nedenstående skærmbillede og gem filen. 3. Kør setup.exe fra mappen Workstat\PSQL\Workgroup. Vælg remove og lad programmet køre færdigt. 4. Kør samme setup.exe program igen, men vælg denne gang Complete og lad igen programmet køre færdigt. 5. Gå i Start Kør. Skriv services.msc og tryk Enter. 6. Hvis der i den fremkomne dialog med services findes en service der hedder Pervasive.SQL 2000 Workgroup skal du gøre følgende: a. Højreklik på ikonet nederst i højre hjørne af skærmen. Højreklik og vælg Stop Engines and Exit. b. Gå i Start Alle Programmer Start og højreklik på Pervasive.SQL Workgroup Engine. Vælg delete. c. Vælg genstart på servicen Pervasive.SQL 2000 Workgroup. 7. Findes der derimod en service der hedder Pervasive Workgroup Engine skal du gøre følgende: a. Gå i Workstat\PSQL og kør programmet psqlsvcsetup.exe. Klik blot næste hele vejen igennem. 8. Er begge services at finde kan punkt 7 køres, men sørg efterfølgende for, at en af de to services er deaktiveret. s. 10
64 Bit Version 10 Server Engine På store installationer med mange brugere (flere end 50 eller 100) bør det overvejes at benytte en Windows 2008 64 Bit som dedikeret filserver. Med 64 Bit versionen af PSQL databasen har man dermed muligheden for at optimere databasen ved brug af meget større Cache Allocation Size (adskillige gigabytes) og naturligvis tilsvarende RAM i maskinen. En mærkbar effekt forudsætter som indledningsvis nævnt, at databaseserveren er flaskehalsen i installationen. Yderligere læsning For yderligere dokumentation om optimering af performance kan der med fordel læses videre i dette dokument: http://docs.pervasive.com/products/database/psqlv10/wwhelp/wwhimpl/js/html/wwhelp.htm#href=a dvops/performance.6.2.html (Selvom artiklen omhandler version 10 er indstillingerne brugbare på version 9.5) Eller her: http://www.pervasivedb.com/documents/wp0907b04_psqlperformance.pdf s. 11