Warnung bezüglich Transaktionsdateien

Nextcloud 27

Update hat super geklappt alles läuft nur nervt mich eine Warnmeldung:

“Die Datenbank wird zum Sperren von Transaktionsdateien verwendet. Um die Leistung zu verbessern, richten Sie bitte, sofern verfügbar, Memcache ein. Weitere Informationen finden Sie in der”

Dokumentation sagt sinngemäß “haste nen kleinen Server dann reicht APCU als Cache”

APCU nutze ich schon immer und ich habe einen kleinen Server (4-5 Benutzer)

Wie sagt ich der Nextcloud jetzt, das ich ein kleinen Server habe und die config somit ja auch laut NextCloud doku so ok ist.

Gibt es einen Parameter den ich in der Config.conf eintragen kann, damit die Meldung verschwindet?

Gruß
Sined

2 Likes

Gleiches Setup und Problem hier.
Habe mich doof gegoogled, keine Lösung bisher.

Jup, ebenfalls Upgrade auf Hub 5 bzw. Version 27 soweit erfolgreich aber Warnmeldung aus Anfangsbeitrag. Meine Config hat auch den Memcache APCU Eintrag und trotzdem Warnmeldung.

Hallo,

fügt in der config.php (/var/www/nextcloud/config/config.php) folgende Zeile hinzu, dann sollte die Meldung weg sein.

'memcache.locking' => '\OC\Memcache\Redis',

Komma am Ende nicht vergessen. :wink:

Viele Grüße

Das funktioniert aber nur so einfach, wenn Redis bereits installiert und grundlegend konfiguriert ist.

Abschalten oder ausblenden kann man die Warnung so viel ich weiss nicht. Bleibt also nur sie entweder zu ignorieren oder Redis tatsächlich einzurichten.

Redis für meinen privaten Mini Server ist der totale Overkill.
Für meine 4 User braucht es keinen lock cache.
Nextcloud sollte das korrigieren, zumal es ja auch so in der Dokumentation beschrieben ist: kleine Einzelserver nur APCu.

1 Like

Ich hatte die Fehlermeldung auch nach dem Update auf Nextcloud 27.0.1.

Ich habe es nach einigem Ausprobieren glaube ich so gelöst:

sudo apt-get install php-apcu
sudo apt-get install redis-server php-redis
usermod -a -G redis www-data

Dann noch folgende Einträge in die config.php:

‘memcache.local’ => ‘\OC\Memcache\APCu’,
‘memcache.locking’ => ‘\OC\Memcache\Redis’,
‘redis’ => [
‘host’ => ‘localhost’,
‘port’ => 6379,
],

Die Fehlermeldung ist weg. Sonst ist alles wie immer.

Ich habe das so ähnlich wie bisam2000, aber mit ein paar Unterschieden:

Wie in den NextCloud Docs empfohlen, habe ich Redis als UNIX-Socket konfiguriert (damit Redis nicht immer auf den Port lauschen muss).

Das steht alles in der Anleitung, die hier hier verlinkt ist:
NextCloud Memcache mit Redis • Schächner (xn–schchner-2za.de)

Darin kann man auch nachlesen, wie man Redis grundlegen konfiguriert (wenn man das noch nicht gemacht hat).

Am Ende habe ich dann diese Konfiguration ergänzt:

Am Ende habe ich dann dies ergänzt:
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'filelocking.enabled' => 'true',
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'redis' => array (
    'host' => '/var/run/redis/redis-server.sock',
    'port' => 0,
    ),
1 Like

Selbes Problem hier nach dem Update von 26.0.5 auf Version 27.0.2.
Ich habe alle oben beschriebenen Lösungsvorschläge einzeln durchprobiert. Die Meldung “Die Datenbank wird zum Sperren von Transaktionsdateien verwendet. Um die Leistung zu verbessern, richte bitte, sofern verfügbar, Memcache ein.” kommt weiterhin.
Das nervt schon etwas. :unamused:

Sorry aber warum eröffnest du dann nicht einen neuen Thread, und füllst das Support Template aus, damit wir die Details zu deinem System kennen und wissen was du genau gemacht hast? Uns hier mitzuteilen, dass du genervt bist, mag dir vielleicht helfen etwas Frust abzubauen, dein eigentliches Problem wird es aber nicht lösen… :wink:

Sorry, aber ich bin sicher, wenn ich einen neuen Thread eröffne, zu diesem bereits bekannten Problem, noch dazu völlig identisch, dann bekomme ich dafür wieder einen Rüffel.

1 Like

Dann baruchen wir die Details halt hier, ansonsten wird es schwierig.

Kurze Zusammenfassung was du alles tun musst:

  1. Redis und das Redis PHP Modul installieren (Der genaue Befehl / Paketname hängt von deiner Linux Distro / PHP Version ab)
  2. Redis konfigurieren, in der Datei /etc/redis/redis.conf
  3. Nextcloud konfigurieren, in der Datei config.php im Nextcloud Ordner.

Hier ein Beispiel, wie ich es auf meiner Instanz installiert und konfiguriert habe: Installing Redis for Memcache - #6 by bb77

Danach folgendes zur config.php der Nextcloud hinzufügen:

Wichtig: Der Pfad für den redis-server.sock muss mit dem in der Datei /etc/redis/redis.conf übereinstimmen!:

'filelocking.enabled' => true,
'memcache.locking' => '\OC\Memcache\Redis',
'redis' =>
array (
'host' => '/var/run/redis/redis-server.sock',
'port' => 0,
'password' => '<secret>',
'timeout' => 0.0,
'dbindex' => 1,
),

Hier noch der Link zu den offiziellen Docs: Transactional file locking — Nextcloud latest Administration Manual latest documentation

Meine Nextcloud V. 27.0.2 läuft auf einem Raspberry Pi 4 mit 8 GB RAM unter Debian GNU/Linux 11 (bullseye) mit Apache/2.4.56 und PHP 8.1.21

Ich bin exakt nach deiner Anleitung vorgegangen (copy & paste, gleiches Pwd in der redis.conf wie in der config.php). Geändert hat sich leider dadurch nichts. Die Meldung kommt nach wie vor.

Was mich noch ein wenig irritiert sind die verschiedenen Schreibweisen in den diversen Postings.
Bei ‘\OC\Memcache\Redis’ findet man auch ‘\OC\Memcache\Redis’.
Und bei ‘filelocking.enabled’ => true steht auch manchmal ‘true’ (mit einfachen Anführungszeichen).

Mal abgesehen von all diesen Versuchen die Fehlermeldung mit Redis wegzubringen, bin ich ganz beim Eröffner des Threads. Die Nextcloud Doku sagt für kleine Server reicht APCu. Ist das mit der V.27 nun nicht mehr der Fall? Ich habe nur 8 Benutzer hier von denen selten zwei gleichzeitig eingeloggt sind. In meiner Config ist ‘memcache.local’ => ‘\OC\Memcache\APCu’ eingetragen und das hat bisher tadellos funktioniert.

Vielleicht postest du ja mal deine redis.conf und deine config.php hier, ansonsten kann man nur raten an was es liegt. (sensitve Daten bitte anomysieren)

Memcache ist nicht das gleiche wie Transactional File Locking. Das sind zwei verschiedene Funktionen, die beide unabhängig voneinender konfiguriert werden können.

Und nein, man braucht Redis nicht zwingend, damit Transactional File Locking funktioniert. Mit Redis wird halt die Last auf die Datenbank reduziert, und somit die Performance der Nextcloud erhöht, was vorallem bei vielen gleichzeitigen Dateizugriffen zum Tragen kommt. Wenn für dich aber auch so alles “gut genug” läuft, kannst du Redis auch weglassen.

Ich denke ich werde es weglassen solange nicht mehr Nutzer darauf zugreifen.
Danke für die Antworten.

Ihr könnt froh sein, das Ihr überhaupt noch zugriff auf Eure Nextcloud habt.
Bei mit war nur noch der Zugang via ssh möglich und hatte mit dem selben Problem zu kämpfen.
Um alle Warnmeldungen bezüglich “cache” habe ich das gleiche wie “bisam2000” geändert und folgendes in meine config.php stehen

<?php
$CONFIG = array (
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'filelocking.enabled' => 'true',
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'redis' =>
  array (
    'host' => '127.0.0.1',
    'port' => 6379,
    'timeout' => 0.0,
  ),

seitdem läuft die Nextcloud wieder und ohne Warnmeldungen.

Deine Konfiguration ist eine der möglichen Konfigugration, und ob sie funktioniert, hängt davon ab, wie der darunterliegende Redis Server konfiguriert ist.

Btw. Mit Glück hat das nur dann etwas zu tun, wenn man nicht weiss, was die Einträge in dem Konfigurationsschnippsel bedeuten, das man sich aus dem erst besten Forenpost in seine config.php kopiert hat. :wink:

Plus kann es natürlich noch Syntax Fehler geben, was auch zu einem “Internal Server Error” führen kann, wenn z.B. irgendwo ein ), fehlt nach einem Array oder man eine config Option aus Versehen innerhalb eines bestehenden Arrays platziert hat. Btw. Die gesammte config.php ist auch ein Array, fügt man also etwas ganz am Schluss der Datei ein, fügt man es ausserhalb des CONFIG Arrays ein, was auch Probleme gibt.

Gleiches problem, bei mir hat geholfen das in die config.php einzutragen:

'memcache.locking' => '\OC\Memcache\APCu',

Ich verwende APCu und nicht redis.

Das ist keine Entweder-oder-Frage. APCu wird für den Memory Cache empfohlen und ausschliesslich für diesen. Für Transactional File Locking wird hingegen Redis vorausgesetzt: Transactional file locking — Nextcloud latest Administration Manual latest documentation

Siehe auch die Empfehlungen hier: Memory caching — Nextcloud latest Administration Manual latest documentation

Im Idealfall nutzt du also beides: APCu für dem Memory Cache und Redis für File Locking.

Doch ist es, man kann ja auch APCu für beides verwenden. Ich habe so einige NC Instanzen und alle laufen prima so.