Если во время создания предварительных просмотров на вашем сервере Nextcloud происходит резкое увеличение нагрузки на процессор, это часто связано с внезапным наплывом пользователей: открываются папки с большим количеством изображений, индексируется обширная библиотека или задача предварительного просмотра пытается создать изображения большего размера, чем требуется. Установите приложение Nextcloud Preview Generator, позвольте ему обрабатывать новые и измененные файлы по контролируемому расписанию и обрезать ненужные размеры предварительных просмотров. Это переносит работу за пределы активных сеансов просмотра; это не делает преобразование изображений бесплатным и не устраняет первоначальную нагрузку по обработке.
Эти шаги соответствуют инструкциям из файла README генератора предварительной версии и документации Nextcloud 35, проверенной 10 октября 2026 года. Подтвердите совместимость вашей версии в магазине приложений Nextcloud. В файле README зашифрованные файлы указаны как неподдерживаемые.
Почему предварительная генерация влияет на загрузку процессора?
Nextcloud создает миниатюры по запросу пользователей, если предварительный просмотр еще не существует. Декодирование, изменение размера и преобразование изображений — особенно для больших оригиналов или изображений с несколькими целевыми размерами — могут потреблять ресурсы процессора и памяти. При большом количестве запросов эта работа становится заметной одновременно с интерактивным использованием.
Preview Generator ставит новые или измененные файлы в очередь на фоновую обработку. Предоставление существующих превью обходится дешевле, но для отсутствующих превью по-прежнему используется механизм обработки по запросу Nextcloud. Приложение переносит часть работы на более спокойные периоды; оно не может уменьшить общую обработку или устранить другие узкие места, такие как конвертация видео или медленная скорость хранения.
Настройте контролируемую очередь предварительного просмотра.
1. Проверьте режим фоновых заданий и совместимость приложений.
В настройках администрирования проверьте раздел «Фоновые задания». Встроенное задание генератора предварительного просмотра требует режима Cron; в его файле README указано, что AJAX и Webcron не поддерживаются для этой длительной работы. Nextcloud рекомендует использовать системный cron. Убедитесь, что на странице администрирования отображается Cron.
Установите Preview Generator с экрана приложений или, если ваша система развертывания использует OCC и разрешает установку приложений, выполните эти команды из каталога установки Nextcloud. В Debian или Ubuntu учетная запись веб-сервера обычно — www-data; используйте фактического пользователя HTTP и версию PHP CLI для вашего хоста:
sudo -u www-data php /var/www/nextcloud/occ app:install previewgenerator
sudo -u www-data php /var/www/nextcloud/occ app:enable previewgenerator
Если он уже установлен, пропустите первую команду. Проверьте состояние и доступные команды:
sudo -u www-data php /var/www/nextcloud/occ app:list
sudo -u www-data php /var/www/nextcloud/occ list preview
Запускайте OCC от имени пользователя HTTP, чтобы обеспечить согласованность прав собственности на файлы. Пути и пользователи различаются в зависимости от развертывания. См. документацию Nextcloud по OCC .
2. Сократите количество вариантов предварительного просмотра перед началом масштабного процесса генерации.
Генератор предварительного просмотра может создавать квадратные миниатюры и предварительные просмотры с заданным соотношением сторон для указанных размеров. В файле README указано, что размеры должны быть степенями четырех, а пустое значение пропускает эту категорию предварительного просмотра. Ниже показан сдержанный стартовый профиль для сервера, испытывающего трудности с нагрузкой. Он сохраняет небольшие квадратные плитки и два размера с заданным соотношением сторон, пропуская при этом отдельные варианты только по ширине и только по высоте:
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
Этот профиль с меньшей нагрузкой не является универсальным: приложениям могут потребоваться более крупные предварительные просмотры или другие формы. Если миниатюры отсутствуют или нечеткие, определите необходимый размер и добавьте только его размер. Большие размеры увеличивают использование вычислительных ресурсов и кэша. Рекомендуемый минимальный размер для файлов, фотографий и действий, указанный в README, использует больший размер в 4096 пикселей; оцените этот компромисс на вашем оборудовании. См. официальный README генератора предварительных просмотров ; он использует больший размер с соотношением сторон в 4096 пикселей, поэтому оцените этот компромисс на вашем оборудовании.
Настройки вводят общий потолок разрешения preview_max_xв пикселях. Перед редактированием сделайте резервную копию файла, чтобы он был совместим с выбранными размерами приложения. Отключение предварительного просмотра удаляет миниатюры во всех приложениях.preview_max_yconfig/config.php
3. Запланируйте выполнение команды предварительной генерации приложения, не дублируя его обработчик.
Для небольшого сервера встроенного обработчика очереди может быть достаточно после активации режима Cron. Его задание по умолчанию ограничено максимум пятью минутами на выполнение, а приложение предоставляет статистику очереди для мониторинга. Если вам нужен предсказуемый период вне пиковой нагрузки, используйте вместо этого специальную команду OCC в системном cron. При использовании этого пользовательского расписания отключите задание очереди по умолчанию в приложении, чтобы оба механизма не конкурировали:
sudo -u www-data php /var/www/nextcloud/occ config:app:set --value=true --type=boolean previewgenerator job_disabled
Затем отредактируйте файл crontab для пользователя веб-сервера ( sudo crontab -u www-data -e) и добавьте пример расписания, например:
*/10 * * * * php -f /var/www/nextcloud/occ preview:pre-generate
Десять минут — это всего лишь пример. Выберите периодичность и временной интервал для вашего трафика и пропускной способности; подтвердите пути к PHP и OCC. Не планируйте выполнение команды в другом месте. Сохраните обычное cron.phpзадание Nextcloud, которое запускает другие фоновые задачи. См. руководство по фоновым заданиям Nextcloud, в котором описана настройка системного cron.
4. Избегайте неконтролируемого наверстывания упущенного с первого раза.
В файле README preview:generate-allпосле установки рекомендуется выполнить сканирование существующих файлов. При работе с большой библиотекой такое ускоренное сканирование может вызвать значительный скачок загрузки ЦП. Избегайте большого количества рабочих процессов на загруженном сервере. Начните сканирование с одного пользователя или пути в спокойный период и отслеживайте загрузку ЦП, памяти, пропускную способность диска и свободное место. Команда поддерживает идентификаторы пользователей, пути и количество рабочих процессов; начните с одного рабочего процесса. При необходимости разделите сканирование на несколько окон.
Убедитесь, что нагрузка становится предсказуемой.
После выполнения команды проверьте очередь:
sudo -u www-data php /var/www/nextcloud/occ preview:queue-stats
Статистика очереди включает устаревшие предварительные просмотры. Уменьшение объема невыполненных задач и пиковые нагрузки на ЦП, завершающиеся запланированными заданиями, указывают на то, что очередь продвигается. Откройте показательную папку, чтобы подтвердить наличие миниатюр, затем понаблюдайте за обычным просмотром. Сравните загрузку ЦП при аналогичных уровнях трафика; она не достигнет нуля.
Если очередь не уменьшается, изучите логи cron и запустите программу preview:pre-generate -vvв контролируемом окне, чтобы увидеть обработанные файлы. Если после очистки очереди загрузка ЦП остается высокой, проверьте другие PHP-процессы, задания или медиасервисы. Если предварительный просмотр занимает слишком много места на диске, удалите неиспользуемые размеры или уменьшите размерность. Убедитесь, что оставшиеся предварительные просмотры поддерживают необходимые пользователям режимы отображения.
Официальные ссылки