Next: Testy wydajno¶ci
Up: Poprawa wydajno¶ci systemu NFS
Previous: Proces czyszcz±cy schowek
Zasadnicze ró¿nic± miêdzy moj± implementacj±, a implementacj± Grega Badrosa
s± wymienione poni¿ej:
- Badros umieszcza w schowku tylko ca³e pliki. Uwa¿am to za niepraktyczne. Istnieje
wiele plików, np. biblioteki, które czêsto s± odczytywane tylko fragmentarycznie.
Umieszczanie ich w ca³o¶ci w schowku jest marnowaniem przestrzeni dyskowej;
- Badros tworzy proces nfsfillind, który ¶ci±ga od serwera brakuj±ce bloki
danych. Powoduje to niepotrzebny ruch w sieci i obci±¿enie serwera. W systemie
Linux istnieje czytanie danych z wyprzedzeniem, wiêc nfsfillind nie poprawia
wydajno¶ci;
- w rozwi±zaniu Badrosa pliki, które nie zosta³y jeszcze ¶ci±gniête w ca³o¶ci,
wymagaj± dodatkowej struktury j±dra, która przechowuje informacje o stopniu
wype³nienia pliku. Jest to sprzeczne z moim za³o¿eniem o mo¿liwie jak najmniejszym
wykorzystywaniu zasobów j±dra. Poza tym, przechowywanie opisu zawarto¶ci schowka
w j±drze utrudnia dzia³anie procesu oczyszczaj±cego schowek. Nie mo¿e on usuwaæ
plików, które nie s± kompletne. To z kolei powoduje, ¿e gdy w schowku jest wiele
plików niepe³nych i brakuje w nim miejsca, to pierwszy kompletnie wype³niony
plik zosanie z niego usuniêty w pierwszej kolejno¶ci;
- w rozwi±zaniu Badrosa restart komputera przetrwaj± tylko kompletne pliki;
- Badros ogranicza rozmiar plików umieszczanych w schowku do 16MB. Jest to zwi±zane
z ograniczeniem rozmiaru wy¿ej opisanej struktury j±dra, przechowuj±cej informacje
o tym, jakie bloki pliku s± w schowku. W moim rozwi±zaniu nie ma ograniczeñ
na rozmiar plików;
- w rozwi±zaniu Badrosa, aby powiadomiæ proces oczyszczaj±cy schowek o potrzebie
usuniêcia starych danych, serwer zapisuje w standardowym pliku ¿±danie. Nie
ma mechanizmu bezpo¶redniej komunikacji. Proces musi co pewien czas sprawdzaæ
zawarto¶æ tego pliku. Je¿eli robi to czêsto, to pojawia siê aktywne oczekiwanie.
Je¿eli robi to rzadko, to j±dro przez pewien czas nie mo¿e umieszczaæ danych
w schowku. W moim rozwi±zaniu j±dro budzi proces wysy³aj±c do niego komunikat.
Nie wystêpuje wiêc aktywne oczekiwanie;
- w implementacji Grega Badrosa zmieniona zostaje struktura iwêze³, w tej czê¶ci,
która jest wykorzystywana przez wiele funkcji systemu operacyjnego. Jest to
nieeleganckie rozwi±zanie i mo¿e spotkaæ siê ze sprzeciwem Linusa Torvaldsa.
Wprowadzenie przez Grega Badrosa za³o¿enia, ¿e w schowku mog± znajdowaæ siê
tylko ca³e pliki, niepotrzebnie komplikuje ca³y system. To z tego powodu j±dra
zawiera dodatkowe struktury, utworzony zostaje proces nfsfillindi istnieje
ograniczenie na rozmiar plików.
Next: Testy wydajno¶ci
Up: Poprawa wydajno¶ci systemu NFS
Previous: Proces czyszcz±cy schowek
root
2000-08-18