Strona główna
» ADMINISTRATOR SIECI
»
Napraw wysokie obciążenie procesora podczas generowania podglądu w NextCloud: Skonfiguruj generator podglądu
Napraw wysokie obciążenie procesora podczas generowania podglądu w NextCloud: Skonfiguruj generator podglądu
Krótka odpowiedź: Zainstaluj aplikację Preview Generator, włącz ją, uruchom jedno, starannie zaplanowane, wstępne generowanie, a następnie zaplanuj je occ preview:pre-generatena godziny mniejsze. Należy również ograniczyć rozmiary podglądów i liczbę nowych podglądów generowanych jednocześnie przez NextCloud. Aplikacja odciąża użytkownika od momentu otwarcia pliku; nie nakłada sztywnego limitu na procesor i może zwiększyć obciążenie dysku.
Ta konfiguracja jest odpowiednia dla samodzielnie hostowanego serwera Nextcloud, gdzie miniatury powodują zauważalne skoki obciążenia procesora podczas przeglądania, szczególnie na małym serwerze z ugruntowaną biblioteką zdjęć lub dokumentów. Jest ona mniej przydatna, jeśli instancja korzysta z szyfrowania po stronie serwera: projekt Preview Generator wymienia szyfrowanie jako znaną niezgodność. Hosting zarządzany, Nextcloud AIO, Docker i instalacje pakietów również korzystają z różnych ścieżek poleceń, dlatego należy dostosować polecenia do wdrożenia. Nie uruchamiaj ich z odgadniętego katalogu.
Aktualne instrukcje aplikacji zalecają zainstalowanie i włączenie aplikacji, preview:generate-alljednorazowe uruchomienie i zaplanowanie preview:pre-generatepóźniejszych zmian plików. Pierwsze polecenie może być kosztowne w przypadku dużej biblioteki. Zacznij od jednego użytkownika lub folderu i jednego pracownika. Sprawdź plik README projektu Generatora Podglądu oraz opcje poleceń i wybierz wersję zgodną z Twoją wersją Nextcloud w sklepie z aplikacjami Nextcloud .
1. Sprawdź, czy to właściwe rozwiązanie
Najpierw ustal, kiedy wzrasta obciążenie procesora. Jeśli dzieje się tak, gdy użytkownicy otwierają foldery lub dokumenty z dużą ilością zdjęć, które wymagają podglądu, wstępne generowanie może przenieść znaczną część tej pracy do zaplanowanego zadania. Jeśli obciążenie procesora utrzymuje się na wysokim poziomie, gdy nikt nie przegląda stron internetowych, lub skoki obciążenia zbiegają się z inną usługą, Generator Podglądu może nie rozwiązać problemu. Przed zmianą ustawień sprawdź monitor procesów i logi Nextcloud.
Generator podglądu rejestruje dodane lub zmienione pliki i przetwarza je w tle. Istniejące podglądy obniżają koszty późniejszych żądań, ale brakujące podglądy nadal można generować na żądanie, zanim dotrze do nich zaplanowane zadanie. Oznacza to, że aplikacja redukuje obciążenia użytkowników, gdy kolejka się zapełni; nie może zagwarantować braku skoków obciążenia procesora. Zamienia również przestrzeń dyskową na szybsze dostarczanie podglądów. Niewielka biblioteka rzadko przeglądana może być odpowiednia dla działania na żądanie Nextcloud.
2. Zainstaluj kompatybilną wersję aplikacji
Ogólna strona administratora chmury wyświetla włączoną kartę aplikacji z podglądem obrazu, ilustrującą krok instalacji i włączania. Układ nie jest zrzutem ekranu konkretnej wersji.
Zaloguj się jako administrator Nextcloud, otwórz sekcję Aplikacje, znajdź Generator Podglądu , zainstaluj go i włącz. Przed kontynuowaniem sprawdź, czy App Store oferuje stabilną wersję dla zainstalowanej głównej wersji Nextcloud. Unikaj ręcznego kopiowania najnowszego folderu aplikacji na wersję oznaczoną w App Store jako niezgodną.
Administratorzy z dostępem do powłoki mogą sprawdzić lub włączyć aplikację za pomocą occ. Poniżej przedstawiono typowe polecenie instalacji pakietu; zmień ścieżkę binarną PHP i Nextcloud, aby odpowiadały Twojemu hostowi. W przypadku Dockera lub AIO należy zamiast tego użyć obsługiwanego polecenia kontenera lub instrukcji harmonogramu dla danego wdrożenia.
W ustawieniach administracyjnych Nextcloud wybierz tryb zadania w tle (Cron) i sprawdź, czy standardowy cron systemowy Nextcloud jest rzeczywiście uruchomiony. W pliku README aplikacji podano, że wbudowane zadanie podglądu w tle wymaga trybu cron; tryby Webcron i AJAX nie są obsługiwane dla tego długotrwałego zadania. Jeśli standardowy cron jest uszkodzony, sama instalacja tej aplikacji nie utrzyma kolejki zadań.
Nie należy mylić standardowego harmonogramu cron.php w Nextcloud z opcjonalnym, dedykowanym harmonogramem aplikacji preview:pre-generate. Oba są oddzielnymi mechanizmami. Można użyć wbudowanego zadania w tle aplikacji lub dedykowanego polecenia systemowego cron. W przypadku wyboru polecenia dedykowanego projekt zaleca wyłączenie wbudowanego zadania podglądu w tle, aby uniknąć uruchamiania obu ścieżek dla tej samej kolejki.
Strona harmonogramu wyświetla jedno aktywne zadanie cykliczne, które przekazuje podgląd pracy do okna poleceń i zwraca wyniki w postaci miniatur.
4. Zmniejsz obciążenie podglądu przed pierwszym uruchomieniem zbiorczym
Ogólny panel konfiguracji łączy ustawienia przypominające kod z ustawieniami rozmiaru obrazu i procesora, ilustrując dwa ograniczenia, które powinni zachować administratorzy.
W przypadku tworzenia podglądów z obciążeniem procesora należy zmniejszyć liczbę nowych podglądów uruchamianych jednocześnie. W dokumentacji konfiguracji NextCloud 35, preview_concurrency_neww sekcji „Kontrola równoczesnego generowania nowych podglądów” podano, że wartość domyślna to cztery, a instrukcja zaleca, aby nie przekraczała ona liczby rdzeni procesora. Na małym hoście należy przetestować wartość, np. dwa, lub jeden, jeśli serwer przestanie odpowiadać. Ogranicza to pracę współbieżną, ale pojedynczy, duży obraz lub wideo nadal może znacząco obciążać procesor.
Wymiary podglądu również mają znaczenie. Domyślna maksymalna szerokość i wysokość dokumentów w NextCloud 35 to 4096 pikseli. Zmniejszenie rozmiaru preview_max_xi preview_max_yrozmiaru config/config.phpmoże zmniejszyć zapotrzebowanie na moc obliczeniową i pamięć, kosztem mniejszych podglądów. Utwórz kopię zapasową pliku konfiguracyjnego i scal ustawienia z istniejącą tablicą PHP; nie zastępuj pliku fragmentem kodu. Na przykład administrator może ustawić obie wartości na 2048 i przetestować jakość w widokach Pliki i Zdjęcia.
Aplikacja może również generować kilka wariantów rozmiarów. Plik README zawiera profil o zmniejszonym rozmiarze dla typowych zastosowań Plików, Zdjęć i Aktywności: rozmiary kwadratowe 64 256, wymiary wypełnienia-szerokości-wysokości 256 4096oraz puste pola widthSizesi heightSizespomijanie tych grup wariantów. Używaj tych ustawień tylko wtedy, gdy pasują do aplikacji, z których korzystają użytkownicy; osie czasu Memories lub inne aplikacje mogą wymagać dodatkowych rozmiarów. Projekt zaznacza, że rozmiary podglądu muszą być zgodne z akceptowanymi zasadami i nie mogą przekraczać skonfigurowanych wartości maksymalnych. Zapoznaj się z ustawieniami rozmiaru i jakości podglądu Nextcloud oraz informacjami dotyczącymi konfiguracji dla poszczególnych wydań .
5. Wygeneruj istniejące podglądy w małej pierwszej partii
Po włączeniu aplikacji i ustawieniu limitów uruchom generator początkowy dla folderu testowego lub jednego użytkownika, a nie dla całej instancji. Aplikacja obsługuje filtrowanie według identyfikatora użytkownika lub ścieżki, a polecenie akceptuje liczbę procesów roboczych. Użyj jednego procesu roboczego, aby zapewnić konserwatywne pierwsze przejście:
Strona ustawień zadania w tle wyświetla wybraną opcję zaplanowanego zadania. Dokładne etykiety i dostępne opcje różnią się w zależności od wersji Nextcloud.
Zastąp alice, ścieżkę i ścieżkę instalacji Nextcloud rzeczywistymi wartościami z serwera. Opcja ścieżki używa formatu /[username]/files/[folder path]. Jeśli pominiesz ścieżkę i filtr użytkownika, polecenie może przeszukać całą bibliotekę. Uruchom wsad, gdy użytkownicy są mniej aktywni, monitoruj użycie procesora, pamięci i miejsca na dysku oraz zatrzymaj, aby ponownie ocenić, czy serwer stał się niestabilny. Nie zwiększaj liczby procesów roboczych tylko po to, aby szybciej zakończyć działanie, dopóki nie zmierzysz efektu.
6. Zaplanuj nowo dodane lub zmienione pliki
Gdy partia testowa będzie działać poprawnie, dodaj ją preview:pre-generatedo systemowego harmonogramu cron. Plik README aplikacji podaje co dziesięć minut jako przykład, a nie jako wymóg. Wybierz interwał dopasowany do wolumenu wysyłania i dostępnego czasu bezczynności. Na przykład, plik crontab należący do konta serwera WWW mógłby zawierać następujący wiersz, ze ścieżkami dostosowanymi do instalacji:
W oknie przypominającym terminal wyświetlany jest wybrany folder, a po nim miniatury obrazów, przedstawiające pierwsze przejście pojedynczego pracownika przez ograniczoną ścieżkę.
Jeśli korzystasz z tego dedykowanego crona systemowego, wyłącz wbudowaną funkcję podglądu w tle w aplikacji, zgodnie z zaleceniami projektu. Udokumentowane ustawienie aplikacji to:
Pozostaw włączone standardowe zadanie cron.php w Nextcloud. W przypadku kontenerów i platform hostowanych, użyj obsługiwanego przez platformę harmonogramu zamiast wpisywać ścieżkę hosta do wpisu cron kontenera. Jeśli aplikacja została zainstalowana z włączonym szyfrowaniem, przerwij w tym miejscu i skonsultuj się z administratorem lub dostawcą hostingu; projekt obecnie oznacza tę konfigurację jako nieobsługiwaną.
7. Monitoruj kolejkę i potwierdź poprawę
Ogólny panel monitorujący łączy wykres procesora z paskami postępu kolejki w celu porównania obciążenia serwera i zaległości podglądu.
Uruchom occ preview:queue-stats, aby sprawdzić kolejkę przed generacją i nieaktualne podglądy. Kolejka, która kurczy się między zaplanowanymi uruchomieniami, sugeruje, że proces roboczy nadrabia zaległości. Jeśli rośnie ona systematycznie, użytkownicy dodają pliki szybciej, niż skonfigurowane zadanie je przetwarza; ostrożnie zwiększ częstotliwość uruchamiania lub dozwolone limity zadań, po upewnieniu się, że dodatkowe obciążenie procesora jest akceptowalne. Aplikacja ujawnia limity czasu wykonywania zadania i podglądów na uruchomienie. W pliku README podano, że zero oznacza nieograniczony czas, więc nie wybieraj go przypadkowo na hoście o ograniczonych zasobach.
Porównaj szczytowe obciążenie procesora przed i po wdrożeniu w podobnych momentach, a następnie otwórz reprezentatywny folder ze zdjęciami i podgląd dokumentu jako zwykły użytkownik. Sprawdź, czy miniatury się wyświetlają, strony nadal reagują, a obciążenie procesora stabilizuje się po zaplanowanym wsadzie. Bardziej płaski profil obciążenia procesora w ciągu dnia z odpowiednim postępem kolejki to przydatny rezultat; stale rosnące zaległości lub wolniejsze sesje użytkowników oznaczają, że harmonogram, profil rozmiaru lub dostawca podglądu wymaga ponownej analizy.
Galeria w stylu Plików wyświetla miniatury obrazów, co stanowi wizualną kontrolę, którą teraz ładują żądane podglądy.
Ważne ograniczenia i bezpieczne sprzątanie
Niektóre typy podglądu zależą od programów po stronie serwera: podręcznik Nextcloud wymienia FFmpeg do podglądów wideo i LibreOffice do podglądów dokumentów biurowych. Formaty te mogą zachowywać się inaczej niż zwykłe miniatury obrazów, a ich obsługa zależy od konfiguracji dostawcy. Zacznij od ograniczenia współbieżności i przetestowania wąskiego zestawu plików przed zmianą dostawcy lub dodaniem usług.
Jeśli zmienisz wymiary podglądu lub obsługiwane typy plików i musisz usunąć podglądy z pamięci podręcznej, NextCloud w wersji 31 i nowszych oferuje occ preview:cleanuptaką możliwość, zgodnie z plikiem README projektu. Usuwa on wszystkie wygenerowane pliki podglądu, po czym NextCloud tworzy podglądy na żądanie, gdy użytkownicy uzyskują do nich dostęp. Może to tymczasowo przywrócić szczytowe obciążenie procesora, które chcesz zmniejszyć. W razie potrzeby wykonaj kopię zapasową, zaplanuj czyszczenie z rozmysłem i unikaj ręcznego usuwania katalogu podglądu appdata jako rutynowej czynności. Plik README generatora podglądu dokumentuje również plik .nomediaumożliwiający pomijanie folderów i ich folderów potomnych w razie potrzeby.
Obok tarczy i kłódki pojawiają się symbole folderu i ukrytego pliku, które ilustrują ograniczenie szyfrowania i możliwość pominięcia folderu.
W praktyce Generator Podglądu sprawdza się, gdy powolne podglądy na żądanie generują widoczne obciążenie szczytowe, można zaplanować pracę w tle i dysponuje się miejscem na dysku na buforowane rozmiary. Połącz go z niewielkim limitem współbieżności, rozmiarami podglądu odpowiadającymi rzeczywistym potrzebom wyświetlania oraz zbiorczym uruchomieniem testowym. Jeśli instancja jest szyfrowana, zarządzana bez harmonogramowania powłoki lub obciążona procesorem z przyczyn niezwiązanych z żądaniami podglądu, należy zbadać te ograniczenia przed wdrożeniem.