Strona główna
» ADMINISTRATOR SIECI
»
ownCloud Infinite Scale kontra NextCloud 28: Wyjaśnienie wydajności i wykorzystania pamięci RAM
ownCloud Infinite Scale kontra NextCloud 28: Wyjaśnienie wydajności i wykorzystania pamięci RAM
Zarówno ownCloud Infinite Scale, jak i NextCloud 28 mogą zapewnić synchronizację i udostępnianie plików na własnym hostingu, ale osiągają ten cel dzięki zupełnie innym architekturom serwerów. Ta różnica ma znaczenie, gdy próbujesz przewidzieć obciążenie pamięci, opóźnienia żądań, zachowanie skalowania i nakład pracy związany z dostrajaniem wdrożenia.
Najważniejsze zastrzeżenie pojawia się na początku: nie ma wiarygodnej, uniwersalnej wartości, takiej jak „Infinite Scale używa X MB, podczas gdy NextCloud 28 używa Y MB”. Zużycie pamięci RAM zmienia się w zależności od włączonych usług, współbieżności użytkowników, zadań w tle, zapleczy pamięci masowej, liczby procesów PHP, buforowania, podglądów, integracji z pakietem Office i aplikacji. Oficjalna dokumentacja publikuje również różne wytyczne dotyczące pamięci dla obu produktów, więc traktowanie tych danych jako bezpośredniego benchmarku byłoby mylące.
Występuje również problem z cyklem życia. NextCloud 28, znany również jako Hub 7, został wydany w grudniu 2023 roku i zakończył wsparcie w grudniu 2024 roku; ostatnią wersją 28.x była wersja 28.0.14. Od października 2026 roku nie otrzymuje już standardowych poprawek błędów ani aktualizacji zabezpieczeń. To porównanie jest zatem najbardziej przydatne do zrozumienia istniejącej instalacji NextCloud 28 lub planowania migracji, a nie do rekomendowania nowego wdrożenia NextCloud 28. Zobacz oficjalny harmonogram konserwacji i wydań NextCloud .
Uproszczone porównanie architektury. Ilustruje ono różnice w zachowaniu pamięci RAM między obiema platformami; nie jest to mierzalny benchmark ani dowód przepustowości.
Różnice architektoniczne są przyczyną większości kompromisów w zakresie wydajności
Platforma ownCloud Infinite Scale, często skracana do oCIS w konfiguracji i dokumentacji, została zbudowana jako zestaw usług Go. Jej domyślne środowisko uruchomieniowe może uruchamiać wbudowane usługi w ramach pojedynczego procesu i nadzorować je za pomocą wbudowanego modułu nadzorującego. Firma ownCloud twierdzi, że taka konstrukcja pomaga zmniejszyć zużycie pamięci, a poszczególne usługi można również przenosić na inne węzły, gdy wdrożenie wymaga skalowania poziomego. Platforma nie wymaga PHP ani tradycyjnej bazy danych aplikacji do swojego podstawowego działania. Zapoznaj się z oficjalną dokumentacją architektury Infinite Scale oraz omówieniem administracji Infinite Scale .
NextCloud 28 opiera się na znanym modelu aplikacji webowych PHP. Typowy stos produkcyjny obejmuje serwer webowy, taki jak Apache lub Nginx, procesy PHP lub PHP-FPM, obsługiwaną relacyjną bazę danych i zazwyczaj buforowanie w pamięci. Własna dokumentacja NextCloud zaleca APCu do buforowania lokalnego, a Redis do rozproszonego buforowania i blokowania plików transakcyjnych we wdrożeniach organizacyjnych. To sprawia, że NextCloud jest bardzo elastyczny, ale oznacza to również, że całkowity budżet pamięci jest rozłożony na kilka niezależnych procesów i usług, a nie reprezentowany przez jeden proces serwera.
Wykorzystanie pamięci RAM: co tak naprawdę oznaczają oficjalne liczby
Obszar
ownCloud Nieskończona Skala
Nextcloud 28
Opublikowane wskazówki dotyczące pamięci
Przykładowa wersja produkcyjna Compose firmy ownCloud zaleca co najmniej 4–6 GB na potrzeby pełnego wdrożenia przykładowego.
Nextcloud 28 podaje, że na proces potrzeba co najmniej 128 MB pamięci RAM, a zaleca co najmniej 512 MB na proces.
Czy można bezpośrednio porównać te liczby?
Nie. Wartość Infinite Scale odnosi się do przykładu wdrożenia obejmującego dodatkowe oprogramowanie, takie jak komponenty pakietu Office online, natomiast wartość Nextcloud dotyczy pojedynczego procesu, a nie całkowitej pamięci RAM serwera.
Główne zmienne
Włączone usługi, integracja z biurem, oprogramowanie antywirusowe, typ pamięci masowej, topologia usług, współbieżność.
Liczba pracowników PHP-FPM, aplikacje, podglądy, bufory bazy danych, Redis/APCu, zadania cron/w tle, współbieżność.
Aktualny przykład wdrożenia produkcyjnego ownCloud wyraźnie zaleca minimum 4-6 GB pamięci i zwraca uwagę na dodatkowe zapotrzebowanie na pamięć po włączeniu skanowania antywirusowego. Nie należy interpretować tej wartości jako „sam oCIS zawsze zużywa 4-6 GB”. Udokumentowana konfiguracja obejmuje również pakiety biurowe i inne wymagane komponenty. Zobacz oficjalny przykład wdrożenia produkcyjnego Infinite Scale .
Nextcloud 28 stosuje inne podejście w swojej dokumentacji wymagań: podaje, że zapotrzebowanie na pamięć RAM znacznie różni się w zależności od użytkowników, aplikacji, plików i aktywności, a następnie podaje minimum 128 MB i zalecane 512 MB na proces . Jest to szczególnie ważne w przypadku PHP-FPM, gdzie kilka procesów roboczych może być aktywnych jednocześnie. Serwer skonfigurowany pod kątem wysokiej współbieżności może zatem zarezerwować znacznie więcej pamięci niż sugeruje wartość dla każdego procesu. Zobacz wymagania systemowe Nextcloud 28 .
Co najprawdopodobniej będzie wydawać się lżejsze w przypadku obciążeń skoncentrowanych na plikach?
Jeśli obciążenie obejmuje głównie uwierzytelnianie, przeglądanie, synchronizację, przesyłanie, pobieranie i udostępnianie, środowisko wykonawcze Go i projekt usługi Infinite Scale mogą zmniejszyć część obciążenia związanego ze stosem żądań PHP. ownCloud wykorzystuje również wewnętrznie protokoły binarne, takie jak gRPC, w niektórych obszarach komunikacji usług. Z architektonicznego punktu widzenia daje to Infinite Scale wiarygodną ścieżkę do wysokiej współbieżności bez mnożenia procesów roboczych PHP.
Nie daje to jednak uniwersalnej przewagi w zakresie przepustowości. Opóźnienia w pamięci masowej mogą wpływać na operacje na plikach, TLS i odwrotne proxy generują dodatkowy narzut, zachowanie metadanych zależy od wybranego sterownika pamięci masowej, a usługi opcjonalne zmieniają profil. Własna dokumentacja pamięci masowej firmy ownCloud wyraźnie omawia optymalizację pamięci i wydajności w różny sposób dla pamięci lokalnej, NFS i wdrożeń wspieranych przez S3. Zobacz: Zagadnienia dotyczące pamięci masowej o nieskończonej skali .
Nextcloud 28 również może działać dobrze po odpowiednim dostrojeniu. W dokumentacji podano, że buforowanie pamięci może znacząco poprawić wydajność serwera. APCu pozwala uniknąć wielokrotnego przebudowywania często używanych obiektów PHP lokalnie, podczas gdy Redis obsługuje rozproszone dane w pamięci podręcznej i blokowanie plików transakcyjnych. W przypadku pojedynczego serwera organizacyjnego, Nextcloud 28 zaleca APCu do lokalnej pamięci podręcznej i Redis do rozproszonego buforowania i blokowania. Zobacz dokumentację buforowania pamięci w Nextcloud 28 .
Gdzie trafia pamięć RAM firmy NextCloud
W przypadku Nextcloud 28 „użycie pamięci RAM Nextcloud” to w rzeczywistości suma kilku budżetów. Procesory PHP-FPM zużywają pamięć w zależności od włączonych modułów PHP i kodu aplikacji. Baza danych potrzebuje własnych buforów i pamięci połączeń. Redis zużywa pamięć na obiekty buforowane i blokady. APCu przechowuje lokalną pamięć podręczną w każdym środowisku PHP. Generowanie podglądów, integracje z oprogramowaniem antywirusowym, Talk, wyszukiwanie pełnotekstowe i aplikacje innych firm mogą dodawać własne procesy lub działania w tle.
Ten model daje administratorom wiele możliwości dostrajania. Zmniejszenie limitów procesów roboczych PHP-FPM może utrzymać działanie małego serwera przy ograniczonej pamięci RAM, ale żądania mogą być kolejkowane pod obciążeniem. Zwiększenie liczby procesów roboczych poprawia współbieżność, dopóki procesor, pamięć RAM, połączenia z bazą danych lub wejście/wyjście nie staną się wąskim gardłem. Użycie Redis do lokalnej pamięci podręcznej może zaoszczędzić trochę pamięci w środowiskach o małej pamięci, ale dokumentacja Nextcloud podaje, że APCu jest szybszy w przypadku lokalnej pamięci podręcznej, gdy dostępna jest wystarczająca ilość pamięci RAM. Jest to rzeczywisty kompromis między wydajnością a pamięcią, a nie pojedyncze zalecane ustawienie dla każdego hosta.
Gdzie trafia pamięć RAM firmy Infinite Scale
Infinite Scale również składa się z wielu usług logicznych, ale jego wbudowane środowisko uruchomieniowe może zarządzać wbudowanymi usługami w ramach jednego procesu i uruchamiać każdą z nich w ramach procedury Go. Firma ownCloud opisuje to jako przyjazny dla administratora sposób na spakowanie platformy, umożliwiający jednocześnie rozdzielenie poszczególnych usług w przypadku wdrożeń rozproszonych. Wbudowany moduł nadzorujący restartuje również niedziałające usługi i, jak udokumentowano, zmniejsza on zużycie pamięci w porównaniu z uruchamianiem każdej usługi pod kontrolą zewnętrznego modułu nadzorującego.
Taka konsolidacja może ułatwić analizę zachowania zasobów na pojedynczym hoście, ale nie gwarantuje stałego wykorzystania pamięci RAM. Dodanie Collabora lub OnlyOffice, skanowania antywirusowego, zewnętrznych usług tożsamości, komponentów opartych na Redis lub NATS, przetwarzania miniatur lub większych pamięci podręcznych zmienia rozmiar zasobów. Przenoszenie usług do oddzielnych kontenerów lub podów Kubernetes może również zwiększyć obciążenie bazowe, jednocześnie poprawiając izolację i skalowalność poziomą.
Porównanie wydajności według obciążenia
Obciążenie pracą
Prawdopodobna zaleta
Dlaczego
Małe urządzenie do synchronizacji plików z niewielką liczbą integracji
Nieskończona skala
Mniejsza liczba tradycyjnych komponentów stosu internetowego i brak wymaganej warstwy PHP/bazy danych dla głównej platformy może uprościć środowisko wykonawcze.
Duży ekosystem aplikacji i wdrażanie intensywnie wykorzystujące oprogramowanie do pracy grupowej
Nextcloud
Szerszy ekosystem aplikacji PHP może mieć większe znaczenie niż sama wydajność serwera, chociaż planowanie pamięci RAM staje się ważniejsze.
Wysoka współbieżność z przewidywalnymi operacjami na plikach
Nieskończona skala jest atrakcyjna architektonicznie
Usługi Go i model skalowania usług pozwalają uniknąć bezpośredniego powiązania współbieżności z dużą pulą procesów PHP.
Istniejąca zoptymalizowana infrastruktura LAMP/LEMP
NextCloud może być łatwiejszy w obsłudze
Zespoły, które mają już doświadczenie w PHP-FPM, MariaDB/PostgreSQL, Redis i dostrajaniu serwerów WWW, mogą preferować znany stos.
Bardzo mały budżet RAM
Zależy od zakresu funkcji
Żaden z oficjalnych dostawców nie podaje jednoznacznego zwycięzcy pod względem całkowitej ilości pamięci RAM; usuń opcjonalne usługi i zmierz dokładne obciążenie.
Jak je uczciwie oceniać
Jeśli decydującym czynnikiem jest wydajność, przeprowadź testy porównawcze obu produktów na tym samym sprzęcie, zamiast polegać na zrzutach ekranu społeczności lub odizolowanych wartościach pamięci. Użyj tego samego urządzenia pamięci masowej lub zaplecza, ścieżki sieciowej, metody zakończenia TLS, zestawu plików testowych, liczby użytkowników i zachowania klienta. Przed rejestracją wyników w stanie ustalonym przeprowadź rozgrzewanie pamięci podręcznej, ale zmierz również zachowanie podczas zimnego startu osobno.
Przydatne wskaźniki obejmują medianę i opóźnienie 95. percentyla dla listowania katalogów, operacji na metadanych, przesyłania małych i dużych plików, pobierania i tworzenia udziałów; liczbę żądań zrealizowanych na sekundę; całkowitą pamięć rezydentną w każdym powiązanym procesie; wykorzystanie procesora; liczbę operacji wejścia/wyjścia na sekundę (IOPS); opóźnienie bazy danych dla NextCloud; oraz wpływ zadań wykonywanych w tle. Mierz pamięć RAM w stanie spoczynku oddzielnie od pamięci RAM z obciążeniem, ponieważ system, który wydaje się mniejszy w stanie spoczynku, może przydzielić znacznie więcej pamięci przy jednoczesnym jej wykorzystaniu.
W przypadku NextCloud należy uwzględnić serwer WWW, PHP-FPM, bazę danych, Redis i wszelkie dodatkowe usługi aplikacji. W przypadku Infinite Scale należy uwzględnić usługi oCIS oraz odwrotne proxy, komponenty tożsamości, integrację z biurem, pamięć podręczną i usługi związane z pamięcią masową. W przeciwnym razie wynik będzie porównaniem architektury ukrytym pod maską benchmarku.
Którą opcję wybrać?
Wybierz ownCloud Infinite Scale, jeśli priorytetem jest nowoczesna platforma zorientowana na pliki, cenisz sobie architekturę usług opartą na Go i chcesz uniknąć modelu operacyjnego opartego na pracownikach PHP oraz wymaganej relacyjnej bazy danych dla serwera głównego. Jest to szczególnie interesujące rozwiązanie dla organizacji planujących poziome skalowanie usług lub duże środowiska współdzielenia plików.
Wybierz wspieraną wersję NextCloud, jeśli ekosystem aplikacji NextCloud, integracje oprogramowania do pracy grupowej, istniejąca wiedza administracyjna lub kompatybilność aplikacji są ważniejsze niż minimalizacja warstw środowiska wykonawczego. Jeśli obecnie korzystasz z NextCloud 28, dostrajanie wydajności może być pomocne w krótkiej perspektywie, ale cykl życia zabezpieczeń jest silniejszym argumentem za zaplanowaniem aktualizacji, ponieważ wersja 28 nie jest wspierana od grudnia 2024 roku.
Jeśli decyzja dotyczy konkretnie pamięci RAM, opublikowane wymagania żadnego z dostawców nie uzasadniają ogłoszenia uniwersalnego zwycięzcy. Architektura Infinite Scale usuwa PHP i tradycyjną bazę danych aplikacji ze stosu bazowego i jest celowo zaprojektowana z myślą o efektywnym wykonywaniu usług, podczas gdy Nextcloud oferuje dopracowane mechanizmy buforowania i wysoce konfigurowalną współbieżność PHP. Rozsądnym wyborem jest porównanie kompletnych stosów produkcyjnych, które faktycznie mają być obsługiwane, przy użyciu tego samego obciążenia i pomiarze pamięci RAM całego systemu, a nie pojedynczego procesu w izolacji.