Jeśli obciążenie procesora serwera Nextcloud gwałtownie wzrasta podczas tworzenia podglądów, obciążenie często gwałtownie rośnie: użytkownicy otwierają foldery z dużą ilością obrazów, indeksowana jest duża biblioteka lub zadanie podglądu próbuje wygenerować więcej plików niż potrzeba. Zainstaluj aplikację Preview Generator firmy Nextcloud, pozwól jej przetwarzać nowe i zmienione pliki zgodnie z kontrolowanym harmonogramem i zmniejsz niepotrzebne rozmiary podglądów. To pozwala na przenoszenie pracy z intensywnych sesji przeglądania; nie zwalnia to jednak z konieczności konwersji obrazów ani nie eliminuje początkowego obciążenia pracą nadrabiającą zaległości.
Poniższe kroki są zgodne z dokumentacją Preview Generator README i Nextcloud 35, sprawdzoną 10 października 2026 r. Sprawdź zgodność swojej wersji w sklepie z aplikacjami Nextcloud. W pliku README zaszyfrowane pliki są oznaczone jako nieobsługiwane.
Dlaczego generacja podglądu wpływa na wykorzystanie procesora?
Nextcloud tworzy miniatury na żądanie użytkowników, chyba że podgląd już istnieje. Dekodowanie obrazów, zmiana rozmiaru i konwersja – szczególnie w przypadku dużych oryginałów lub obiektów o kilku wymiarach docelowych – mogą obciążać procesor i pamięć. Duża liczba żądań sprawia, że ta praca staje się widoczna jednocześnie z interaktywnym użytkowaniem.
Generator Podglądu kolejkuje nowe lub zmodyfikowane pliki do przetwarzania w tle. Udostępnianie istniejących podglądów jest tańsze, ale brakujące podglądy nadal korzystają ze ścieżki na żądanie NextCloud. Aplikacja przenosi część zadań na spokojniejsze okresy; nie jest w stanie zredukować całkowitego przetwarzania ani wyeliminować innych wąskich gardeł, takich jak konwersja wideo czy wolne miejsce na dysku.
Skonfiguruj kontrolowaną kolejkę podglądu
1. Sprawdź tryb pracy w tle i zgodność aplikacji
W ustawieniach administracyjnych sprawdź zadania w tle. Wbudowane zadanie Generatora podglądu wymaga trybu cron; w pliku README napisano, że AJAX i Webcron nie są obsługiwane w przypadku tego długotrwałego zadania. Nextcloud zaleca systemowego crona. Sprawdź, czy strona administratora zgłasza cron.
Zainstaluj Preview Generator z ekranu Aplikacje lub, jeśli Twoje wdrożenie korzysta z OCC i zezwala na instalację aplikacji, uruchom te polecenia z katalogu instalacyjnego Nextcloud. W systemach Debian lub Ubuntu konto serwera WWW to zazwyczaj www-data; użyj rzeczywistego użytkownika HTTP i wersji PHP CLI dla swojego hosta:
sudo -u www-data php /var/www/nextcloud/occ app:install previewgenerator
sudo -u www-data php /var/www/nextcloud/occ app:enable previewgenerator
Jeśli jest już zainstalowany, pomiń pierwsze polecenie. Sprawdź status i dostępne polecenia:
sudo -u www-data php /var/www/nextcloud/occ app:list
sudo -u www-data php /var/www/nextcloud/occ list preview
Uruchom OCC jako użytkownik HTTP, aby zachować spójność własności plików. Ścieżki i użytkownicy różnią się w zależności od wdrożenia. Zapoznaj się z dokumentacją OCC firmy Nextcloud .
2. Zmniejsz liczbę wariantów podglądu przed rozpoczęciem dużej generacji
Generator podglądu może tworzyć kwadratowe miniatury i podglądy w proporcjach obrazu o skonfigurowanych rozmiarach. W pliku README napisano, że rozmiary muszą być potęgami liczby cztery, a pusta wartość pomija tę kategorię podglądu. Poniżej przedstawiono ograniczony profil początkowy dla serwera borykającego się z obciążeniem. Zachowuje on małe kwadratowe kafelki i dwa rozmiary proporcji obrazu, pomijając jednocześnie oddzielne warianty tylko szerokości i tylko wysokości:
sudo -u www-data php /var/www/nextcloud/occ config:app:set --value="64 256" previewgenerator squareSizes
sudo -u www-data php /var/www/nextcloud/occ config:app:set --value="256 1024" previewgenerator fillWidthHeightSizes
sudo -u www-data php /var/www/nextcloud/occ config:app:set --value="" previewgenerator widthSizes
sudo -u www-data php /var/www/nextcloud/occ config:app:set --value="" previewgenerator heightSizes
Ten profil niższego obciążenia nie jest uniwersalny: aplikacje mogą wymagać większych podglądów lub innych kształtów. Jeśli miniatury są niewidoczne lub rozmyte, zidentyfikuj wymagany widok i dodaj tylko jego rozmiar. Większe wymiary zwiększają obciążenie procesora i pamięci podręcznej. Zalecany minimalny zestaw plików README dla plików, zdjęć i aktywności uwzględnia większy rozmiar obrazu (4096 pikseli); oceń ten kompromis na swoim sprzęcie. Zobacz oficjalny plik README generatora podglądu ; wykorzystuje on większy rozmiar obrazu (4096 pikseli), więc oceń ten kompromis na swoim sprzęcie.
Ustawienia w preview_max_xi narzucają ogólny limit pikseli. Przed edycją utwórz kopię zapasową pliku i zadbaj o to, aby była zgodna z wybranymi rozmiarami aplikacji. Wyłączenie podglądu powoduje usunięcie miniatur we wszystkich aplikacjach.preview_max_yconfig/config.php
3. Zaplanuj polecenie wstępnej generacji aplikacji bez duplikowania jej pracownika
W przypadku małego serwera wbudowany mechanizm kolejkowania może być wystarczający, gdy aktywny jest tryb cron. Jego domyślne zadanie jest ograniczone do maksymalnie pięciu minut na wykonanie, a aplikacja udostępnia statystyki kolejki do monitorowania. Jeśli potrzebujesz przewidywalnego okna poza szczytem, użyj dedykowanego polecenia OCC w systemowym cronie. Podczas korzystania z tego niestandardowego harmonogramu wyłącz domyślne zadanie kolejkowania aplikacji, aby oba mechanizmy nie kolidowały ze sobą:
sudo -u www-data php /var/www/nextcloud/occ config:app:set --value=true --type=boolean previewgenerator job_disabled
Następnie edytuj plik crontab dla użytkownika serwera WWW ( sudo crontab -u www-data -e) i dodaj przykładowy harmonogram, taki jak:
*/10 * * * * php -f /var/www/nextcloud/occ preview:pre-generate
Dziesięć minut to tylko przykład. Wybierz rytm i okno dostosowane do ruchu i przepustowości; potwierdź ścieżki PHP i OCC. Nie planuj polecenia również w innym miejscu. Zachowaj standardowe cron.phpzadanie NextCloud, które uruchamia inne zadania w tle. Zapoznaj się z dokumentacją dotyczącą konfiguracji crona w systemie, dostępną w przewodniku po zadaniach w tle NextCloud .
4. Unikaj niekontrolowanego nadrabiania zaległości za pierwszym razem
Plik README sugeruje, preview:generate-allaby po instalacji uwzględnić istniejące pliki. W przypadku dużej biblioteki, takie nadrabianie zaległości może spowodować znaczny wzrost obciążenia procesora. Unikaj wielu procesów roboczych na obciążonym serwerze. Zacznij od jednego użytkownika lub ścieżki w cichym oknie i monitoruj procesor, pamięć, przepustowość dysku i wolne miejsce. Polecenie obsługuje identyfikatory użytkowników, ścieżki i liczbę procesów roboczych; zacznij od jednego procesu roboczego. W razie potrzeby podziel skanowanie na kilka okien.
Sprawdź, czy obciążenie staje się przewidywalne
Po uruchomieniu polecenia sprawdź kolejkę:
sudo -u www-data php /var/www/nextcloud/occ preview:queue-stats
Statystyki kolejki obejmują nieaktualne podglądy. Malejące zaległości i szczytowe obciążenia procesora kończące się zaplanowanymi zadaniami wskazują na postęp kolejki. Otwórz reprezentatywny folder, aby potwierdzić miniatury, a następnie obserwuj normalne przeglądanie. Porównaj obciążenie procesora przy podobnych poziomach obciążenia; nie osiągnie ono zera.
Jeśli kolejka się nie zmniejszy, sprawdź logi cron i uruchom preview:pre-generate -vvw kontrolowanym oknie, aby zobaczyć przetworzone pliki. Jeśli obciążenie procesora utrzymuje się na wysokim poziomie po oczyszczeniu kolejki, sprawdź inne procesy PHP, zadania lub usługi multimedialne. Jeśli podglądy zajmują zbyt dużo miejsca na dysku, usuń nieużywane rozmiary lub zmniejsz wymiary. Sprawdź, czy pozostałe podglądy obsługują widoki potrzebne użytkownikom.
Oficjalne źródła