Planuję nową infrastrukturę pamięci współdzielonej dla małej farmy serwerów WWW. Dlatego przeprowadziłem wiele testów z wieloma systemami plików NAS. W ten sposób otrzymałem nieoczekiwane wyniki i chciałbym wiedzieć, czy ktoś tutaj może to potwierdzić.
W skrócie: Samba jest znacznie szybsza niż NFS i GlusterFS do zapisu małych plików.
Oto, co zrobiłem: uruchomiłem prosty „test porównawczy rsync” z dużą ilością plików, aby porównać wydajność zapisu dla małych plików. Aby ułatwić odtwarzanie, ponownie uruchomiłem go teraz z zawartością obecnego wordpress tar.gz.
- GlusterFS replikował 2: 32-35 sekund , duże obciążenie procesora
- GlusterFS single: 14-16 sekund , duże obciążenie procesora
- Klient GlusterFS + NFS: 16-19 sekund , duże obciążenie procesora
- Serwer jądra NFS + klient NFS (synchronizacja): 32-36 sekund , bardzo niskie obciążenie procesora
- Serwer jądra NFS + klient NFS (asynchronizacja): 3-4 sekundy , bardzo niskie obciążenie procesora
- Samba: 4-7 sekund , średnie obciążenie procesora
- Dysk bezpośredni: <1 sekunda
Absolutnie nie jestem guru samby (myślę, że moim ostatnim kontaktem był samba 2.x), więc niczego tu nie zoptymalizowałem - po prostu gotowa konfiguracja (pakiet debian / squeeze). Jedyną rzeczą, którą dodałem „synchronizacja zawsze = tak”, która ma wymusić synchronizację po zapisaniu (ale widząc te wyniki ..). Bez niego testy byłyby o około 1-2 sekundy szybsze.
Wszystkie testy były przeprowadzane na tym samym komputerze (samozmontowany eksport NAS), więc nie ma opóźnień w sieci - czysta wydajność protokołu.
Węzeł boczny: Jako system plików użyłem ext4 i xfs. Powyższe wyniki dotyczą ext4. xfs działał do 40% (krócej) lepiej. Maszyny są małymi instancjami EC2 m1. Eksport NAS odbywa się na woluminach EBS, źródłach (wyodrębniona smoła) na efemerycznym dysku.
No to proszę: czy ktoś może mi wyjaśnić, dlaczego samba jest o wiele szybsza?
Ponadto: Czy wydajność NFS z serwerem jądra powinna być tak okropna (przewyższona przez serwer NFS GlusterFS) w trybie synchronizacji? Masz pomysł, jak to dostroić?
Dzięki, L