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 administracyjna chmury z kartą aplikacji podglądu obrazu i włączonym przełącznikiem włączającym.
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.

sudo -u www-data php /var/www/nextcloud/occ app:enable previewgenerator

3. Ustaw zadania tła Nextcloud na Cron

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.

Ogólna strona harmonogramu z jednym aktywnym, cyklicznym zadaniem prowadzącym do okna poleceń i wyników w postaci miniatur.
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 z ustawieniami przypominającymi kod, znajdującymi się nad elementami sterującymi rozmiarem podglądu i użyciem procesora.
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:

sudo -u www-data php /var/www/nextcloud/occ preview:generate-all --workers=1 --path="/alice/files/Photos"
Ekran ustawień ogólnego zadania w tle z wybraną opcją zaplanowanego zadania.
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:

*/10 * * * * cd /var/www/nextcloud && /usr/bin/php -f occ preview:pre-generate
Panel w stylu terminala z ikoną folderu, po której następują wygenerowane miniatury obrazów.
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:

sudo -u www-data php /var/www/nextcloud/occ config:app:set --value=true --type=boolean previewgenerator job_disabled

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 ekran monitorujący z wykresem wykorzystania procesora i dwoma paskami postępu kolejki.
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 plików w chmurze wyświetlająca sześć miniatur obrazów w widoku folderów.
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.

Symbol folderu i ukrytego pliku obok tarczy z kłódką.
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.

Oficjalne referencje

Zostaw komentarz

10 najlepszych narzędzi do pingowania w celu znajdowania urządzeń w sieci

10 najlepszych narzędzi do pingowania w celu znajdowania urządzeń w sieci

Porównaj 10 narzędzi do pingowania, które umożliwiają szybkie wykrywanie sieci LAN, skanowanie międzyplatformowe i zarządzanie adresami IP. Dowiedz się, co narzędzie pingujące może Ci powiedzieć, a czego nie.

6 najlepszych narzędzi do zarządzania siecią, umożliwiających śledzenie wydajności

6 najlepszych narzędzi do zarządzania siecią, umożliwiających śledzenie wydajności

Porównaj sześć narzędzi do zarządzania siecią służących do monitorowania wydajności, obejmujących zasięg SNMP, mapowanie, alerty, modele wdrażania i kompromisy kosztów.

Ping Monitor: 7 darmowych i otwartych narzędzi do monitorowania dostępności sieci

Ping Monitor: 7 darmowych i otwartych narzędzi do monitorowania dostępności sieci

Porównaj siedem darmowych i otwartych monitorów pingów — od kompletnych pakietów sieciowych po ukierunkowane sondy opóźnień — i wybierz odpowiedni monitor pod kątem dostępności, utraty pakietów i historii.

QoS w sieciach: czym jest jakość usług i jak działa

QoS w sieciach: czym jest jakość usług i jak działa

Dowiedz się, co oznacza QoS w sieciach, w jaki sposób oznaczenia DSCP i kolejki ruchu nadają priorytet aplikacjom głosowym, wideo i biznesowym oraz czego QoS nie jest w stanie naprawić.

Najlepsze oprogramowanie serwera SFTP do bezpiecznego przesyłania plików

Najlepsze oprogramowanie serwera SFTP do bezpiecznego przesyłania plików

Porównaj niezawodne oprogramowanie serwera SFTP dla systemów Windows i Linux, w tym OpenSSH, Bitvise, SolarWinds i SFTPGo. Znajdź rozwiązanie odpowiednie dla swoich potrzeb w zakresie bezpieczeństwa i transferu plików.

7 najlepszych narzędzi do zarządzania adresami IP dla zespołów sieciowych

7 najlepszych narzędzi do zarządzania adresami IP dla zespołów sieciowych

Porównaj siedem narzędzi do zarządzania adresami IP służących do wykrywania podsieci, koordynacji DNS i DHCP, inwentaryzacji sieci i otwartego oprogramowania IPAM.

6 najlepszych narzędzi do monitorowania serwerów Windows Server zapewniających lepszą dostępność i wydajność

6 najlepszych narzędzi do monitorowania serwerów Windows Server zapewniających lepszą dostępność i wydajność

Porównaj sześć narzędzi do monitorowania systemu Windows Server pod kątem zbierania danych systemu Windows, widoczności aplikacji, modelu wdrażania i licencjonowania, aby znaleźć odpowiednie rozwiązanie.

10 najlepszych narzędzi do skanowania sieci w celu wykrywania urządzeń i adresów IP

10 najlepszych narzędzi do skanowania sieci w celu wykrywania urządzeń i adresów IP

Porównaj narzędzia do skanowania sieciowego umożliwiające szybkie wykrywanie urządzeń, skanowanie adresów IP na wielu platformach oraz zarządzanie IPAM w przedsiębiorstwie. Znajdziesz tu wskazówki dotyczące dopasowania każdej opcji do swojej sieci.

Najlepsze praktyki monitorowania sieci: co śledzić i jakich narzędzi używać

Najlepsze praktyki monitorowania sieci: co śledzić i jakich narzędzi używać

Zbuduj praktyczny monitoring sieci z przejrzystym zakresem urządzeń, przydatnymi wskaźnikami wydajności, przydatnymi alertami oraz porównaniem SolarWinds NPM, PRTG i OpManager.

Jak używać Nmap do śledzenia trasy i odczytywania ścieżki sieciowej

Jak używać Nmap do śledzenia trasy i odczytywania ścieżki sieciowej

Użyj opcji --traceroute programu Nmap, aby mapować przeskoki do autoryzowanego hosta, zrozumieć dane wyjściowe dotyczące przeskoków i czasu RTT oraz rozwiązywać problemy z brakującymi odpowiedziami bez nadmiernego skanowania.