next up previous
Next: Opis rozwiązania Up: Poprawa wydajności systemu NFS Previous: Poprawa wydajności systemu NFS

Rozwiązania w systemie Linux

Wydajność NFS pod systemem Linux 2.2 jest znacznie mniejsza niż w innych implementacjach. Składa się na to dwa czynniki:

Optymalizacjami NFS w systemie Linux 2.2 po stronie klienta są:

Próbą poprawy wydajności była przedstawiona w 1998 roku przez Grega J. Badrosa [12] implementacja dyskowego schowka NFS opartego na wersji 2.0 systemu Linux. Nie weszła ona jednak do głównej dystrybucji systemu operacyjnego, przez co nie istnieje w aktualnej wersji 2.2 systemu.

Schowek Grega Badrosa znajdował się w dowolnym katalogu systemu plików. Były w nim przechowywane tylko całe pliki. Jeżeli plik nie był odczytany w całości, uruchomiony zostawał dodatkowy proces, który uzupełniał brakujące bloki otrzymując je od serwera. Do czasu otrzymania kompletnego pliku, jądro musiało przechowywać w pamięci operacyjnej informacje o wszystkich blokach niekompletnych plików. Gdyby tak nie było, to nie wiadomo by było które części pliku zawierały dane, a które były puste.

Proces oczyszczający schowek był wydzielony z jądra. Występowałą dwustonna komunikacja między jądrem i procesem. Jądro informowało proces o potrzebie usunięcia starych danych wpisując żądanie do odpowiedniego pliku. Proces informuje jądra o wykonaniu zadania poprzez psedourządzenie10.

W schowku mogły być umieszczane tylko pliki, których rozmiar był nie większy niż 16MB.

W implementacji Grega Badrosa, oprócz schowków dla danych, pojawiają się dwa dodatkowe elementy, których nie było w Linuksie 2.0:

W wersji 2.2 systemu Linux powyższe dwa elementy nie są potrzebne, ponieważ wirtualna przestrzeń plików ma zaimplementowany schowek dla operacji lookup. Stosowanie dodatkowego schowka mogłoby tylko zmniejszyć wydajność systemu. W wersji 2.2 zaimplementowane jest też asynchroniczne zapisywanie danych.

Podjąłem się powtórnej implementacji dyskowego schowka NFS z czterech powodów:


next up previous
Next: Opis rozwiązania Up: Poprawa wydajności systemu NFS Previous: Poprawa wydajności systemu NFS
root
2000-08-18