Naprawa serwera dokumentów ONLYOFFICE z powodu braku pamięci na serwerze VPS
Zacznij od sprawdzenia, czy host Linux lub kontener ONLYOFFICE nie osiąga limitu pamięci. Aktualne wytyczne ONLYOFFICE Docs Community Edition wymieniają 4 GB pamięci RAM i co najmniej 4 GB pamięci wymiany jako wymagania bazowe. Strona rozwiązywania problemów z Dockerem podaje, że użycie 2–4 GB pamięci RAM może być normalne dla kilkudziesięciu aktywnych użytkowników, ponieważ zużycie pamięci rośnie wraz z otwartymi dokumentami i liczbą jednoczesnych użytkowników. Tabela sprzętu zaleca Kubernetesa dla wdrożeń powyżej 400 jednoczesnych aktywnych użytkowników. Są to wartości referencyjne, a nie obietnica, że każdy VPS obsłuży to samo obciążenie: system operacyjny hosta, inne kontenery, rozmiar dokumentu i limity dostawcy VPS również mają znaczenie.
Ten przewodnik koncentruje się na typowej instalacji Dockera na serwerze VPS z systemem Linux. Wykonaj cztery kroki w podanej kolejności: zmierz obciążenie hosta i kontenera, sprawdź logi i pamięć podręczną zapomnianych plików, zmniejsz niepotrzebne obciążenie lub popraw zbyt niski limit kontenera, a następnie uruchom ponownie tylko w razie potrzeby i zweryfikuj działanie podczas normalnego użytkowania. Przykładowe polecenia służą <CONTAINER_ID>jako symbol zastępczy; zastąp je identyfikatorem lub nazwą z pliku docker ps. Wykonaj kopię zapasową i zaplanuj konserwację przed zatrzymaniem edytora, który ma aktywnych użytkowników.
1. Sprawdź, gdzie występuje obciążenie pamięci
Uruchom pierwsze polecenia na hoście VPS, a nie w kontenerze ONLYOFFICE:
free -h
swapon --show
docker stats --no-stream
free -hPokazuje dostępną pamięć hosta i pamięć wymiany. swapon --showPotwierdza, czy pamięć wymiany jest aktywna. W docker stats[brakuje informacji o użyciu pamięci przez ONLYOFFICE] porównaj zużycie pamięci przez ONLYOFFICE z wyświetlanym limitem. Jeśli host ma prawie zerową ilość dostępnej pamięci, a kilka usług korzysta z pamięci RAM, serwer VPS może być zbyt mały. Jeśli host nadal ma zapas przestrzeni, ale kontener ONLYOFFICE zbliża się do znacznie niższego limitu, bezpośrednią przyczyną może być limit kontenera. Prawie pełna pamięć wymiany, ciągłe używanie pamięci wymiany lub duża aktywność dysku mogą spowolnić edycję, nawet zanim host zakończy proces.
Krok 1: uruchom free -h i swapon --show na hoście VPS, aby sprawdzić dostępną pamięć RAM i sprawdzić, czy pamięć wymiany jest aktywna.Krok 1: docker stats --no-stream porównuje bieżące wykorzystanie pamięci przez kontener ONLYOFFICE z jego limitem.
Pierwsze polecenie wyświetla ustawienia pamięci i pamięci z wymianą (memory-plus-swap) w bajtach. Zerowy limit pamięci zazwyczaj oznacza brak jawnego limitu pamięci kontenera; nie oznacza to jednak, że VPS ma nieograniczoną pamięć RAM. Ustawienie pamięci z wymianą (memory-swap) w Dockerze to łączny limit pamięci i wymiany (memory-swap), więc nie należy go interpretować jako samego swapu. Drugie polecenie raportuje, czy Docker zarejestrował usunięcie braku pamięci (OOM) dla kontenera i jego ostatni kod wyjścia. Docker dokumentuje te limity jako mechanizmy kontroli egzekwowane przez hosta Linux, a obciążenie związane z brakiem pamięci (OOM) na poziomie całego hosta może wpływać na więcej niż jeden kontener.
2. Sprawdź logi kontenerów i znany przypadek częstego użycia ONLYOFFICE
Przed zmianą ustawień lub usunięciem plików zapoznaj się z najnowszymi dziennikami:
docker logs --since 1h <CONTAINER_ID>
Sprawdź, czy nie występują powtarzające się restarty, błędy uruchamiania bazy danych i komunikaty pojawiające się w momencie, gdy edytor stał się niedostępny. Sprawdź również dziennik jądra hosta pod kątem zdarzeń związanych z brakiem pamięci, jeśli masz uprawnienia:
Strona rozwiązywania problemów z Dockerem ONLYOFFICE zaleca sprawdzenie, czy w /var/lib/onlyoffice/documentserver/App_Data/cache/files/forgotten/przypadku nieoczekiwanie wysokiego wykorzystania pamięci nie ma zablokowanych lub zapomnianych dokumentów. Najpierw sprawdź rozmiar i zawartość katalogu; nie usuwaj bezmyślnie jego plików. Mogą one być istotne dla odzyskiwania lub rozwiązywania problemów. Jeśli katalog jest duży lub nadal się rozrasta, zachowaj pliki i logi, a następnie postępuj zgodnie z oficjalnymi wskazówkami dotyczącymi rozwiązywania problemów lub zapytaj dział wsparcia ONLYOFFICE, co można bezpiecznie wyczyścić w Twojej wersji.
Krok 2: przed zmianą serwera VPS lub usunięciem plików z pamięci podręcznej sprawdź najnowsze logi kontenera.
3. Zmniejsz niepotrzebne zapotrzebowanie i skoryguj zbyt mały limit Dockera
„Aktywny użytkownik” w wytycznych ONLYOFFICE dotyczących rozmiarów to osoba z dokumentem otwartym w edytorze, w tym osoba, która go tylko przegląda. Użytkownicy zalogowani jedynie na zintegrowanej platformie bez otwartego dokumentu nie są liczeni w ten sam sposób. Poproś użytkowników o zamykanie nieużywanych kart dokumentów i unikaj planowania dużej liczby edycji na małym serwerze VPS. Jeśli obciążenie wynika z jednoczesnego otwierania kilku dużych arkuszy kalkulacyjnych lub złożonych plików, porównaj pamięć przy niskiej aktywności z rzeczywistym zużyciem w szczycie, zamiast szacować je wyłącznie na podstawie liczby kont.
Jeśli serwer VPS ma wyłączoną pamięć wymiany, dodanie jej może zapewnić krótkotrwały bufor chroniący przed nagłym wzrostem obciążenia. Aktualny podręcznik instalacji Dockera firmy ONLYOFFICE wymienia co najmniej 4 GB pamięci wymiany i zaznacza, że jej ilość zależy od systemu operacyjnego hosta. Pamięć wymiany jest przechowywana na dysku i jest znacznie wolniejsza niż pamięć RAM, dlatego nie zastępuje odpowiedniej ilości pamięci fizycznej. Przed utworzeniem pliku wymiany sprawdź, czy plik już nie istnieje, sprawdź ilość wolnego miejsca na dysku i upewnij się, że system plików i dostawca serwera VPS obsługują tę metodę. W typowym systemie plików Linux obsługującym plik wymiany, przykład wygląda następująco:
Nie uruchamiaj tych poleceń na istniejącym pliku /swapfilewymiany. Aby zachować nowo utworzony plik wymiany po ponownym uruchomieniu, dodaj jeden pasujący wpis do pliku wymiany /etc/fstabpo sprawdzeniu, czy istnieje już wpis:
/swapfile none swap sw 0 0
Jeśli Docker wyświetla niski limit pamięci kontenera, sprawdź plik Compose lub panel wdrożenia, który utworzył kontener. Zwiększ lub usuń limit dopiero po sprawdzeniu całkowitej pamięci RAM serwera VPS oraz pamięci używanej przez system operacyjny, bazę danych, platformę integracyjną i inne usługi. Nie przydzielaj całej pamięci RAM hosta do ONLYOFFICE. Jeśli sam host jest wyczerpany, zmiana limitu Dockera nie spowoduje zwiększenia ilości pamięci fizycznej; zmień rozmiar serwera VPS lub przenieś inne usługi na innego hosta. Compose obsługuje limity pamięci, ale skonfigurowany limit musi być zgodny z rzeczywistym trybem wdrożenia i dostępną pamięcią hosta.
Serwer VPS z 2 GB pamięci RAM, na którym działa ONLYOFFICE wraz z NextCloud lub innymi usługami, ma mniej niż deklarowana przez dostawcę wartość bazowa 4 GB pamięci RAM. Serwer VPS z 4 GB pamięci RAM może również nie mieć wystarczającej ilości pamięci, gdy system operacyjny hosta i stos integracyjny współdzielą go. W takich przypadkach większy serwer VPS lub dedykowany serwer dokumentów jest bardziej niezawodny niż wielokrotne restartowanie kontenera. W przypadku ponad 400 jednoczesnych aktywnych użytkowników, aktualna tabela ONLYOFFICE zaleca wdrożenie Kubernetes i kontakt z ONLYOFFICE w celu uzyskania porady dotyczącej rozmiaru; nie jest to obciążenie, które można rozwiązać, dodając mały plik wymiany do jednego serwera VPS.
Krok 4: przed planowanym ponownym uruchomieniem kontenera uruchom udokumentowany skrypt przygotowawczy ONLYOFFICE, aby aktywne sesje edycji mogły się bezproblemowo rozłączyć.
4. Uruchom ponownie bezpiecznie, a następnie sprawdź wynik
Nie restartuj Serwera Dokumentów, gdy użytkownicy edytują, chyba że przerwa jest nieunikniona. ONLYOFFICE wyjaśnia, że dokument jest zapisywany po zamknięciu go przez wszystkich użytkowników, którzy go edytują. Przed planowanym zatrzymaniem kontenera, przewodnik rozwiązywania problemów zaleca wykonanie poniższego skryptu przygotowawczego; rozłączenie użytkowników może potrwać do pięciu minut. Najpierw ostrzeż użytkowników, zachowaj kopie zapasowe i postępuj zgodnie ze standardową procedurą konserwacji.
Jeśli korzystasz z Docker Compose, wprowadź trwałą zmianę w konfiguracji Compose lub panelu sterowania i skorzystaj ze standardowego procesu ponownego uruchamiania projektu. Jednorazowa zmiana w działającym kontenerze może zniknąć po jego ponownym utworzeniu. Nie używaj --oom-kill-disableani skrajnego priorytetu OOM, aby utrzymać ONLYOFFICE przy życiu; Docker ostrzega, że wyczerpanie pamięci hosta może narazić VPS i inne usługi na ryzyko.
Po przywróceniu działania serwera VPS lub kontenera należy sprawdzić, czy kontener jest sprawny, edytor otwiera i zapisuje dokument testowy, pamięć hosta jest dostępna i kontener nie uruchamia się ponownie. Należy obserwować pamięć hosta i kontenera w reprezentatywnym okresie wzmożonego ruchu. Jeśli po zamknięciu dokumentów ilość pamięci stale rośnie, katalog „zapomnianych plików” rośnie lub występują zdarzenia „obecności pamięci” (OOM), należy zebrać dane wyjściowe z dzienników free -h, swapon --show, docker stats, docker inspecti , aby uzyskać pomoc techniczną. Nie należy traktować jednego udanego restartu jako dowodu na to, że pojemność jest stała.
Szybki przewodnik decyzyjny
Co obserwujesz
Najbardziej przydatny następny ruch
Pamięć RAM hosta jest wyczerpana, a inne usługi również są zagrożone
Zaktualizuj VPS lub przenieś usługi nieedytujące. Ustawienie kontenera nie może dodać pamięci RAM hosta.
Host ma miejsce, ale ONLYOFFICE osiąga niski limit Dockera
Sprawdź limit kompozycji lub limit dostawcy i podnieś go tylko w ramach bezpiecznego marginesu bezpieczeństwa hosta.
Użycie wzrasta po otwarciu dokumentów, a następnie spada po ich zamknięciu
Porównaj z oczekiwaną współbieżnością i typami dokumentów; rozważ dodanie większej ilości pamięci RAM, jeśli normalne szczyty powodują OOM.
Użycie pozostaje niezwykle wysokie pomimo spadku aktywności
Przejrzyj ostatnie logi i udokumentowaną pamięć podręczną zapomnianych plików; zachowaj dane i zbadaj je przed czyszczeniem.
Ponad 400 użytkowników ma jednocześnie otwarte dokumenty
Zamiast pojedynczego małego serwera VPS należy korzystać ze ścieżki określania rozmiaru klastra/Kubernetes oferowanej przez dostawcę.