Używam gridfs w pracy na jednym z naszych serwerów, który jest częścią strony porównującej ceny z honorowymi statystykami ruchu (około 25 000 odwiedzających dziennie). Serwer nie ma dużo pamięci RAM, 2 gigigabajtów, a nawet procesor nie jest zbyt szybki (Core 2 duet 1,8 Ghz), ale serwer ma dużo miejsca do przechowywania:10 Tb (sata) w konfiguracji raid 0. Zadanie wykonywane przez serwer jest bardzo proste:
Każdy produkt w naszej porównywarce cenowej ma obraz (według naszej bazy danych produktów jest około 10 milionów produktów), a zadaniem serwerów jest pobranie obrazu, zmiana jego rozmiaru, zapisanie go w gridfs i dostarczenie go do przeglądarki odwiedzających. .. jeśli nie ma go w siatce... lub... dostarcz go do przeglądarki odwiedzających, jeśli jest już zapisany w siatce. Można to więc nazwać „tradycyjnym schematem CDN”.
Przechowaliśmy i przetworzyliśmy 4 miliony obrazów na tym serwerze od czasu jego uruchomienia. Zmiana rozmiaru i przechowywanie odbywa się za pomocą prostego skryptu php ... ale na pewno skrypt Pythona lub coś takiego jak java może być szybszy.
Aktualny rozmiar danych:11.23g
Aktualny rozmiar przechowywania:12,5 g
Indeksy:5
Rozmiar indeksu:849,65 m
O niezawodności:jest to bardzo niezawodne. Serwer się nie ładuje, rozmiar indeksu jest w porządku, zapytania są szybkie
O szybkości :Z pewnością nie jest tak szybka jak lokalna pamięć masowa, może o 10% wolniejsza, ale wystarczająco szybka, aby można było używać jej w czasie rzeczywistym, nawet gdy obraz wymaga przetworzenia, co w naszym przypadku jest bardzo zależne od php. Czas konserwacji i rozwoju również został skrócony:tak proste stało się usuwanie jednego lub wielu obrazów:wystarczy wysłać zapytanie do bazy danych za pomocą prostego polecenia usuwania. Kolejna ciekawa rzecz:kiedy zrestartowaliśmy nasz stary serwer, z lokalną pamięcią plików (tak milion plików w tysiącach folderów), czasami zawiesza się na wiele godzin, ponieważ system sprawdza integralność plików (to naprawdę zajęło wiele godzin...). Nie mamy już tego problemu z gridfs, nasze obrazy są teraz przechowywane w dużych porcjach mongodb (pliki 2gb)
Więc... myślę... Tak, Gridfs jest wystarczająco szybki i niezawodny, aby można go było używać do produkcji.