Zwiekszenie wydajnosci NDS

Najwazniejszym elementem wplywajacym na wydajnosc NDS jest jego bufor. We wczesniejszych wersjach NDS 8, mozna bylo okreslic limit wielkosci bufora bloków w celu regulacji ilosci pamieci uzywanej przez NDS na bufor. Domyslna wielkosc bufora wynosila 8 MB pamieci RAM.

W NDS eDirectoryTM 8.5, istnieje mozliwosc okreslenia limit bufora bloków i limit bufora wpisów. Bufor bloków dostepny we wczesniejszych wersjach NDS 8 buforuje tylko fizyczne bloki z bazy danych. Bufor wpisów bedacy nowym elementem NDS eDirectory 8.5, buforuje logiczne wpisy z bazy danych. Buforowanie wpisów zmniejsza czas potrzebny na utworzenie w pamieci egzemplarzy wpisów z bufora bloków.

Chociaz oba bufory w pewnym stopniu dubluja sie nawzajem (wystepuje miedzy nimi pewna nadmiarowosc), kazdy z nich ma za zadanie zwiekszenia szybkosci dzialania przy innych operacjach. Bufor bloków jest najbardziej uzyteczny przy operacjach aktualizacji. Bufor wpisów natomiast - przy operacjach zwiazanych z przegladaniem drzewa NDS poprzez odczytywanie wpisów, takich jak rozwiazywanie nazw.

Oba bufory przydatne sa przy zwiekszeniu szybkosci realizacji zapytan. Bufor bloków przyspiesza przeszukiwanie indeksów. Bufor wpisów przyspiesza odczytywanie wpisów wskazywanych przez indeks.

Ponizej przedstawiono domyslne ustawienia w NDS eDirectory 8.5:


Podzial pamieci pomiedzy bufory wpisów i bloków

Przy obecnosci bufora bloków i bufora wpisów, calkowita pamiec przeznaczona na buforowanie, jest podzielona na te dwa bufory. Domyslnym ustawieniem jest równy podzial. Aby utrzymac wielkosc bufora bloków dostepna we wczesniejszych wersjach NDS 8, nalezy podwoic calkowity rozmiar bufora NDS. Jezeli bufor wykorzystywany jest do zwiekszenia szybkosci importowania plików LDIF, mozna np. podwoic calkowity rozmiar bufora lub zmienic jego domyslne ustawienia. Aby uzyskac informacje na temat zmiany ustawien domyslnych, patrz to Konfiguracja limitów dostosowujacych sie dynamicznie i sztywnych .

Im wiecej bloków i wpisów mozna umiescic w buforze, tym lepsza jest calkowita sprawnosc systemu. Idealnym rozwiazaniem jest buforowanie calej bazy danych zarówno w buforze wpisów, jak i bloków, chociaz w przypadku bardzo duzych baz danych jest to niemozliwe. Ogólna zasada jest dazenie do uzyskania relacji 1:1 pomiedzy rozmiarem bufora bloków a rozmiarem zbioru DIB. W przypadku bufora wpisów, nalezy dazyc do uzyskania relacji 1:2 lub 1:4. Dla uzyskania najwiekszej wydajnosci, nalezy przekroczyc te relacje.


Korzystanie z domysnych ustawien bufora

NDS eDirectory 8.5 udostepnia dwie metody kontroli zuzycia pamieci bufora: dynamicznie dostosowujacy sie limit i sztywny limit pamieci. Mozna wykorzystac kazda z tych metod, lecz nie mozna ich uzywac jednoczesnie gdyz wzajemnie wykluczaja sie. Ostatnia wykorzystywana metoda zawsze zastepuje poprzednie ustawienia.


Limit dostosowujacy sie dynamicznie

Przy limicie dostosowujacym sie dynamicznie, NDS okresowo dostosowuje zuzycie swojej pamieci w odpowiedzi na zmienne zuzycie pamieci przez inne procesy. Limit okresla sie jako procent dostepnej pamieci fizycznej. Wykorzystujac ta wartosc, NDS przelicza nowy limit pamieci w stalych odstepach czasu. Nowy limit jest procentem fizycznej pamieci dostepnej w danym momencie.

Wraz z procentem mozna ustawic maksymalny i minimalny próg. Próg jest liczba bajtów do której NDS dostosowuje sie. Moze byc ustawiony zarówno jako bajtów które maja byc wykorzystane, lub jako liczba bajtów które maja pozostac dostepne. Domyslnym progiem minimalnym jest 16 MB, a maksymalnym - 4 GB.

Jezeli próg minimalny i maksymalny nie zgadzaja sie, przyjety zostaje próg minimalny. Dla przykladu okreslmy nastepujace ustawienia:

Próg minimalny

8 MB

Procent dostepnej pamieci fizycznej do wykorzystania

75

Próg maksymalny

Pozostawienie 10 MB wolnych

Po dostosowaniu przez NDS limitu rozmiaru bufora, dostepnych jest 16 MB pamieci fizycznej. NDS wylicza nowy limit na 12 MB. NDS sprawdza równiez czy nowy limit miesci sie w granicach wyznaczonych przez próg minimalny i maksymalny. W powyzszym przykladzie, próg maksymalny wymaga pozostawienia 10 MB pamieci wolnych, tak wiec ustala limit na 6 MB. Jednak próg minimalny wynosi 8 MB, wiec NDS ustala ostateczny limit na 8 MB.

Przy limicie dostosowujacym sie dynamicznie, nalezy równiez okreslic odstep czasu aktualizacji dostepnej pamieci fizycznej. Wartoscia domyslna jest 15 sekund. Im krótszy odstep, tym bardziej zuzycie pamieci uzaleznione jest od warunków biezacych. Jednak krótsze odstepy czasu nie koniecznie musza byc lepsze gdyz kazda ponowna kalkulacja stwarza koniecznosc ponownej alokacji i zwalniania pamieci.


Sztywny limit pamieci

Sztywny limit pamieci jest metoda uzywana przez wczesniejsze wersje NDS do kontroli zuzycia pamieci. Sztywny limit pamieci mozna ustalic na jeden z nastepujacych sposobów:


Czyszczenie bufora

NDS 8 tworzy kilka wersji bloków i wpisów w swoim buforze dla celów integralnosci transakcji. Wczesniejsze wersje NDS 8 nie usuwaly tych bloków i wpisów gdy stawaly sie niepotrzebne. W NDS eDirectory 8.5, proces wykonywany w tle okresowo przeglada bufor i usuwa starsze wersje. Pomaga to w minimalizacji zuzycia pamieci bufora Domyslnym okresem przegladania jest 15 sekund.


Konfiguracja limitów dostosowujacych sie dynamicznie i sztywnych

  1. Otwórz plik NDSDB.INI w edytorze tekstów.

    W NetWare®, plik ten znajduje sie w katalogu SYS:\NETWARE. W Windows* NT* i Windows 2000, zazwyczaj znajduje sie w katalogu \NOVELL\NDS\DIBFILES.

  2. Dolacz do tego pliku odpowiednia skladnie:


    Tabela 133.

    Polecenie Objasnienie zmiennej Definicja

    cache=bajty_bufora

    Stala liczba bajtów które maja byc uzyte.

    Ustawia sztywny limit pamieci.

    Aby ustawic sztywny limit pamieci na 8 MB, wpisz cache=8000000.

    cache=opcje_bufora

    Mozna podac kilka opcji w dowolnym porzadku, oddzielajac je przecinkami.

    • DYN

      Ustawia limit dostosowujacy sie dynamicznie.

    • HARD

      Ustawia sztywny limit pamieci.

    • %:percentage

      Procent wolnej lub fizycznej pamieci która ma zostac uzyta.

    • AVAIL or TOTAL

      Procent wolnej lub calkowitej pamieci fizycznej, przeznaczony wylacznie na sztywny limit pamieci.

    • MINnumber_of_bytes

      Minimalna liczba bajtów.

    • MAX:number_of_bytes

      Maksymalna liczba bajtów.

    • LEAVE:number_of_bytes

      Minimalna liczba bajtów do pozostawienia.

    Ustawia sztywny lub dynamicznie dostosowujacy sie limit.

    Aby na przyklad ustawic limit dostosowujacy sie dynamiczny na 75% wolnej pamieci i 16 MB minimum, wpisz cache=DYN,%:75,MIN:16000000.

    Aby ustawic sztywny limit na 75% calkowitej pamieci fizycznej i 16 MB minimum, wpisz cache=HARD,%:75,MIN: 16000000.

  3. (Opcjonalnie) Aby okreslic przedzial czasu dla dynamicznego dostosowania sie limitu pamieci, dolacz nastepujacy wiersz:

    cacheadjustinterval=liczba_sekund

  4. (Opcjonalnie) Aby okreslic przedzial czasu dla usuwania starszych wersji bloków i wpisów, dodaj nastepujacy wiersz:

    cachecleanupinterval=liczba_sekund

  5. (Opcjonalnie) Aby zmienic procentowy podzial pamieci pomiedzy buforem bloków a wpisów, dodaj nastepujacy wiersz:

    blockcachepercent=procent

    Zmienna procent powinna miescic sie w granicach od 0 do 100. Okreslona wartosc jest procentem pamieci bufora przydzielonej dla bufora bloków. Pozostala czesc uzywana jest na bufor wpisów. Nie zalecamy ustawiania procentu na 0.

  6. Aby zmiany odniosly skutek, ponownie uruchom serwer NDS.


Konfigurowanie limitów przy uzyciu DSTRACE

Przy korzystaniu z NDS eDirectory dla NetWare, limity dostosowujace sie dynamicznie oraz sztywne mozna skonfigurowac w programie DSTRACE. Aby zmiany odniosly skutek nie trzeba tutaj ponownie uruchamiac serwera.

  1. (Opcjonalnie) Aby ustawic limit sztywny, na konsoli serwera wpisz:

    SET DSTRACE=!MBilosc_pamieci_do_wykorzystania_w_bajtach

    Jezeli na przyklad chcesz ustawic sztywny limit na 8 MB, wpisz

    SET DSTRACE=!MB8388608

  2. (Opcjonalnie) Aby ustawic wyliczony limit sztywny, na konsoli serwera wpisz ponizsze polecenie. Uzyj tylko opcji które chcesz okreslic.

    SET DSTRACE=!MHARD,AVAIL OR TOTAL,%:procentMIN:liczba_bajtów,MAX:liczba_bajtów,LEAVE:liczba_bajtów_do _pozostawienia,NOSAVE

    Aby na przyklad ustawic sztywny limit na 75% calkowitej pamieci fizycznej i 16 MB minimum, oraz wybrac opcje niezapisywania tych opcji do pliku startowego, wpisz

    SET DSTRACE=!MHARD,%:75,MIN:16777216,NOSAVE

  3. (Opcjonalnie) Aby ustawic limit dostosowujacy sie dynamicznie, na konsoli serwera wpisz:

    SET DSTRACE=!MDYN,%:procent,MIN:liczba_bajtów,MAX:
    liczba_bajtów,LEAVE:liczba_bajtów_do _pozostawienia,
    NOSAVE

    Aby na przyklad ustawic limit dynamiczny na 75% wolnej pamieci i 8 MB minimum, wpisz

    SET DSTRACE=!MDYN,%:75,MIN:8388608