Γιατί το Nextcloud μοιάζει αργό, και τι το διορθώνει στ' αλήθεια
Ένα αργό Nextcloud σπάνια θέλει περισσότερο hardware. Background jobs, cache, locking, indices και ο office editor, με τη σειρά που τα ελέγχουμε και με ακριβείς ρυθμίσεις.

Όταν μια εγκατάσταση Nextcloud μοιάζει νωθρή, το πρώτο ένστικτο είναι να της δώσουμε περισσότερη CPU και μνήμη. Συνήθως αυτό δεν αλλάζει τίποτα, γιατί ο χρόνος πηγαίνει αλλού: σε background jobs που τρέχουν στο λάθος σημείο, σε cache που δεν έχει ρυθμιστεί, σε file locks που χτυπούν τη βάση δεδομένων, σε έναν πίνακα χωρίς index. Αυτή είναι η σειρά με την οποία ελέγχουμε τα πράγματα, με τις ρυθμίσεις που διορθώνουν το καθένα. Όλα όσα ακολουθούν ισχύουν είτε το Nextcloud τρέχει σε έναν απλό server είτε σε containers.
Ξεκινήστε από ό,τι σας λέει ήδη το Nextcloud
Το Nextcloud έχει δικούς του ελέγχους υγείας. Τρέξτε τους πριν αλλάξετε οτιδήποτε:
sudo -u apache php occ setupchecks
sudo -u apache php occ status
Χρησιμοποιήστε τον χρήστη του web server (apache, www-data ή nginx, ανάλογα με το σύστημά σας). Τα ίδια αποτελέσματα εμφανίζονται στις ρυθμίσεις διαχείρισης, στην Επισκόπηση. Κάθε προειδοποίηση εκεί είναι πραγματικό εύρημα. Διορθώστε τις πρώτα. Αρκετά από τα παρακάτω θα εμφανιστούν σε εκείνη τη λίστα.
Τα background jobs δεν πρέπει να καβαλάνε τα page loads
Το Nextcloud έχει δουλειές συντήρησης να κάνει: σαρώσεις αρχείων, previews, ειδοποιήσεις, καθαρισμούς, λήξη δραστηριότητας. Από προεπιλογή, σε λειτουργία AJAX, τρέχει μία εργασία κάθε φορά που ένας χρήστης φορτώνει μια σελίδα. Οι χρήστες πληρώνουν τη συντήρηση με τα δικά τους page loads, και σε μια ήσυχη εγκατάσταση οι εργασίες μένουν πίσω.
Αλλάξτε σε system cron:
sudo -u apache php occ background:cron
Μετά τρέξτε το cron.php κάθε πέντε λεπτά. Ένα systemd timer είναι καθαρότερο από μια εγγραφή crontab γιατί καταγράφει τις αποτυχίες:
# /etc/systemd/system/nextcloud-cron.service
[Service]
Type=oneshot
User=apache
ExecStart=/usr/bin/php -f /var/www/nextcloud/cron.php
# /etc/systemd/system/nextcloud-cron.timer
[Timer]
OnBootSec=5min
OnUnitActiveSec=5min
[Install]
WantedBy=timers.target
Ενεργοποιήστε το με systemctl enable --now nextcloud-cron.timer. Όσο είστε εκεί, ορίστε ένα παράθυρο συντήρησης ώστε οι βαριές εργασίες να τρέχουν τη νύχτα:
sudo -u apache php occ config:system:set maintenance_window_start --type=integer --value=1
Η τιμή είναι ώρα σε UTC. Οι βαριές εργασίες θα τρέξουν στις τέσσερις ώρες που ακολουθούν.
Caching και file locking
Χωρίς memory cache, το Nextcloud ζητάει από τη βάση δεδομένων τα ίδια πράγματα ξανά και ξανά. Χωρίς σωστό locking backend, κάθε λειτουργία αρχείου παίρνει lock μέσα στη βάση δεδομένων επίσης. Ρυθμίστε και τα δύο στο config.php:
'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
'host' => '/run/redis/redis.sock',
'port' => 0,
],
Το APCu είναι η γρήγορη τοπική cache μέσα σε κάθε διεργασία PHP. Το Redis κρατά την κοινή κατάσταση και τα file locks. Χρησιμοποιήστε Unix socket αν το Redis είναι στο ίδιο μηχάνημα, και βεβαιωθείτε ότι ο χρήστης του web server μπορεί να το ανοίξει.
Το APCu χρειάζεται ενεργοποίηση και για τη γραμμή εντολών, αλλιώς το occ θα παραπονιέται:
; /etc/php.d/40-apcu.ini
apc.enable_cli=1
Η ίδια η PHP: OPcache και το FPM pool
Το Nextcloud είναι μια μεγάλη εφαρμογή PHP. Χωρίς αρκετή OPcache, η PHP ξαναμεταγλωττίζει κομμάτια της σε κάθε request. Τυπικές αρχικές τιμές:
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=32
opcache.max_accelerated_files=20000
opcache.revalidate_freq=60
Το setupchecks θα σας πει αν το interned strings buffer είναι πολύ μικρό. Μετά διαστασιολογήστε το PHP-FPM pool με βάση τη μνήμη που πραγματικά έχετε: το pm.max_children επί την τυπική μνήμη ενός PHP worker πρέπει να χωράει στη RAM με περιθώριο για τη βάση δεδομένων και το Redis. Μετρήστε την πραγματική μνήμη ενός worker υπό φορτίο πριν επιλέξετε, αντί να αντιγράψετε έναν αριθμό από ένα forum.
Η βάση δεδομένων: indices και big integers
Οι αναβαθμίσεις προσθέτουν μερικές φορές indices και στήλες που οι υπάρχουσες εγκαταστάσεις δεν παίρνουν αυτόματα, γιατί η δημιουργία τους σε έναν μεγάλο πίνακα παίρνει χρόνο. Το Nextcloud αφήνει αυτό το βήμα σε εσάς:
sudo -u apache php occ db:add-missing-indices
sudo -u apache php occ db:add-missing-columns
sudo -u apache php occ db:add-missing-primary-keys
sudo -u apache php occ db:convert-filecache-bigint
Τρέξτε τα μετά από κάθε μεγάλη αναβάθμιση, σε παράθυρο συντήρησης, γιατί μπορεί να κλειδώσουν μεγάλους πίνακες. Ένα index που λείπει από τον πίνακα file cache είναι από τους πιο συνηθισμένους λόγους που μια μεγάλη εγκατάσταση μοιάζει αργή στην περιήγηση φακέλων.
Previews: φτιάξτε τα εκ των προτέρων
Οι μικρογραφίες δημιουργούνται την πρώτη φορά που κάποιος ανοίγει έναν φάκελο. Ένας φάκελος με φωτογραφίες υψηλής ανάλυσης σημαίνει αργή πρώτη επίσκεψη για όποιον φτάσει εκεί πρώτος. Δύο πράγματα βοηθούν. Περιορίστε τα μεγέθη των previews:
sudo -u apache php occ config:system:set preview_max_x --value=2048 --type=integer
sudo -u apache php occ config:system:set preview_max_y --value=2048 --type=integer
Και, αν οι χρήστες σας αποθηκεύουν πολλές εικόνες, χρησιμοποιήστε την εφαρμογή Preview Generator για να δημιουργούνται τα previews στο background job αντί κατ' απαίτηση.
Ο office editor είναι δικός του φόρτος εργασίας
Η επεξεργασία στον browser με Collabora τρέχει ως ξεχωριστή υπηρεσία. Το Nextcloud του στέλνει το έγγραφο, και το Collabora το αποδίδει και το επεξεργάζεται. Όταν οι άνθρωποι λένε «το Nextcloud είναι αργό» ενώ επεξεργάζονται έγγραφα, το σημείο συμφόρησης είναι συνήθως το Collabora, όχι το Nextcloud. Παρακολουθήστε την CPU και τη μνήμη του ξεχωριστά, ενώ αρκετά άτομα επεξεργάζονται μεγάλα υπολογιστικά φύλλα ταυτόχρονα, και διαστασιολογήστε το από αυτές τις μετρήσεις.
Δύο σημεία ρύθμισης μετράνε τόσο για την ταχύτητα όσο και για την ασφάλεια. Στρέψτε το Nextcloud προς το Collabora μέσω μιας διαδρομής που είναι γρήγορη και κοντινή. Και περιορίστε ποιοι servers επιτρέπεται να μιλούν στη διεπαφή WOPI του Collabora:
sudo -u apache php occ config:app:set richdocuments wopi_allowlist --value="10.0.0.0/24"
Βάλτε εκεί το εύρος διευθύνσεων του δικού σας Nextcloud server, ώστε μόνο το δικό σας Nextcloud να μπορεί να ανοίγει έγγραφα μέσω του editor σας.
Καρφώστε ό,τι τρέχει
Αν τρέχετε το Nextcloud σε containers, καρφώστε κάθε image (Nextcloud, βάση δεδομένων, Redis, Collabora) σε ένα tag που επιλέξατε εσείς.
Η σειρά, εν συντομία
occ setupchecksκαι διόρθωση κάθε προειδοποίησης.- System cron μέσω timer, συν παράθυρο συντήρησης.
- APCu τοπικά, Redis για locking και κοινή cache.
- OPcache σωστά διαστασιολογημένη και FPM pool διαστασιολογημένο από μετρήσεις.
- Indices, στήλες και κλειδιά που λείπουν, προστιθέμενα μετά από κάθε αναβάθμιση.
- Previews περιορισμένα και δημιουργημένα στο background.
- Collabora μετρημένο και διαστασιολογημένο ως δική του υπηρεσία, με λίστα επιτρεπόμενων WOPI.
- Κάθε συστατικό καρφωμένο σε έκδοση που επιλέξατε εσείς.
Μόνο μετά από όλα αυτά η προσθήκη hardware σας λέει κάτι χρήσιμο. Έτσι λειτουργούμε το Nextcloud με Collabora για τους πελάτες μας σε αποκλειστικές εγκαταστάσεις, και ευχαρίστως θα ρίξουμε μια ματιά στη δική σας.
Σχετικά: Managed Nextcloud για έγγραφα γραφείου · Ιδιωτικό αρχείο email με τοπική αναζήτηση AI
Δημοσιεύθηκε 7 Οκτωβρίου 2026.
Όλες οι σημειώσεις