Lange Wartezeit beim hinzufügen und entfernen von Adblock Listen

Ich betreibe aktuell einen Raspberry Pi 3+ mit Pihole 6 Beta.

Soweit so gut.

Mir ist nur aufgefallen das es ewig dauert 60 Minuten und mehr wenn ich viele Listen hinzufüge oder entferne.

Aktuell entferne ich 38 Listen ja es sind wirklich 38 Stück und der Pi ist in der Zeit nicht erreichbar oder Pihole reagiert auf irgendeine Eingabe.

image

Hier ein Screenshot von TOP.

So extrem war dieses Verhalten auf dem Pihole 5 nicht auch wenn ich dort lange warten musste aber mit Version 6 ist es noch länger geworden. Kann man das Beschleunigen oder wurde etwas geändert in Version 6?

Das sollte so nicht sein.

Bitte generieren ein Debug log und poste das Token hier.

Wie soll ich ein Debug Log erstellen wenn der Pi kaum reagiert?

Kann ich das auch im ssh erstellen? Dann geht es noch irgendwie :slight_smile:

Danke schonmal

FAQ // Google hilft :slight_smile:
pihole -d

PiHole Debug.txt (74.5 KB)

Hoffe das hilft.

Bitte ignorieren das der Pihole das Internet nicht erreicht wie gesagt solange er die Files/Listen löscht kommt er kaum raus.

Ich kann erstmal im Log nichts finden, dass auf einen wirklichen "Fehler" hindeutet. Allerdings hast du eine Menge Listen, die insg. >35 Millionen (!) Domains enthalten. Das zu verarbeiten dauert einfach recht lange.


An welcher Stelle hängt es denn genau? Ist es das reine hinzufgen/entfernen der Adlisten (via Web interface) oder anschließend der gravity lauf? Wenn letzteres, schau dir mal an, welcher Teil von pihole -g so lange braucht: das herunterladen und prozessieren jeder einzelnen Liste? Oder am Ende der Teil mit "Building Tree"?

1 Like

Das er lange für die Verarbeitung braucht ist ja noch ok bei einem Update.

Hier geht es aber wirklich um das Entfernen der Listen.

Habe wie gesagt viele Listen entfernt und er hat jede einzelne Liste scheinbar einzeln vererbeitet statt sie alle gleichzeitig aus der Gesamtliste zu streichen. Sprich ich habe hin und wieder in der GUI gesehen das er Liste xy entfernt hat. Aber im Hintergrund die nächste gemacht hat. Wäre es hier nicht besser alle Listen gleichzeitig aus der Hauptliste zu entfernen? (Schneller).

Also dieser Punkt ist das Problem: "Ist es das reine hinzufgen/entfernen der Adlisten (via Web interface)"

Hallo schliesse mich hier mal an....mit pihole -g braucht mein raspberry pi zero aktuell 8,6h mit pihole 5 hat es 1,5h gebraucht....entfernen von listen geht bei mir ueberhaupt nicht...

1 Like

Das sollte definitiv nicht so sein. Wenn du nicht gleichzeitig 38 Listen entfernst, sondern nur 1, geht das dann auch recht langsam? Was zeigt dir unterdessen die Entwicklerconsole an (F12 im Browser). Gibts da irgendwelche Fehler?

Ja, alle Listen werden nacheinander gelöscht. Hintergrund ist, dass die API immer nur eine Liste verarbeitet und daher das Array Stück für Stück abgearbeitet wird.

Ich hab jetzt mal 20 Dummy Listen hinzugefügt und dann per Multi-Select gelöscht - das dauert auf meinem NanoPI (viel schwächer als Pi 3B+) nur wenige Sekunden.


Kannst du das ganze Mal bitte wiederholen und statt top htop nehmen? Da kann man mit F2 > Display option nämlich "Tree view" und "Show custom thread names" anzeigen. Dann sehen wir, welcher Teil von FTL hier so hängt.

Das klingt, als ob es zwei Probleme sind. Denn pihole -g wird gar nicht aufgeführt, wenn man im web interface eine Liste löscht. An welcher Stelle hängt es denn bei pihole -g genau? Wie viele Domains hast du auf deinen Listen?

@yubiuser Aktuell habe ich 18739513 domains auf den Listen. ess haengt bei "built tree..."

das ist mein Skript

#!/bin/bash

rm zeit.txt 2>&1 > update.txt
rm update.txt 2>&1 > update.txt

before=$(date +%s)
pihole -g 2>&1 > update.txt
after=$(date +%s)

echo "elapsed time:" $((after - $before)) "seconds" > zeit.txt

das ist die ausgabe unter pihole v6

elapsed time: 31157 seconds

Hardware pi zero wh
OS: diet pi

ich habe gerade einen Lauf mit pihole v5 gestartet und update die info morgen hier

Der Unterschied ist hier:

Wenn eine Liste gelöscht wird, dann haben wir in Pi-hole v5 eventuell weiterhin tausende von Listeneinträgen (d.h. Domains), die auf eine nicht-(mehr)-existente Liste verweisen. Diese Datenbankbeziehung ist also "zerbrochen". Dies wird in v6.0 verhindert - hat aber auch den Nachteil, dass die Baumstruktur dafür aktualisiert werden muss.

Hmm, guter Rat ist hier teuer. Ich nehme an die Lösung wird lauten die foreign key Beziehungen zu entfernen, konkret:

Erstens

Die Referenzierungen (REFERENCES adlist (id)) bei:

entfernen.

Zweitens

Oben die beiden DELETE FROM (anti)gravity Schritt aus FTL entfernen. Damit muss dann der Baum dieser elendig großen Tabellen nicht aktualisiert werden.

Drittens

Damit leben, dass Domains von einer gelöschten Liste weiterhin zu Seitenblockierungen führen können bis der nächste manuelle Lauf von pihole -g abgeschlossen ist.


Das sollte den Zustand bei v5.0 wiederherstellen - unsauberer aber deutlich schneller.
@yubiuser Deine Meinung?

Das Ergebnis mit pihole v5

elapsed time: 7827 seconds

Pihole v5 war Faktor 4 schneller

Wenn ich die Tage dazu komme gerne :slight_smile:


Bezüglich eures Woraround das erst nach einem Manuellen Update die Liste erneuert wird bin ich aber auch kein Fan. Ich sehe mich und andere schon jammern warum Seite xy geblockt wird :frowning:

Soll ich das Thema splitten?

Ich habe hier einen möglichen Lösungsvorschlag erarbeitet:

Bitte testet das bei Euch mit

pihole checkout ftl new/batchDelete
pihole checkout web new/batchDelete

und dann noch einmal Listen löschen. Wenn schon nicht unbedingt "schnell, sollte es doch zumindest schneller gehen als zuvor.

Es ist die schnellstmögliche Lösung ohne das oben angesprochene Problem:

getting this error during checkout

sqlite3: Error: unknown option: -ni
Use -help for a list of options

Please run pihole -up, your version of FTL is outdated. It is difficult to keep all the many branches we have currently open due to review jam up-to-date.

Ich habe folgende Befehle verwendet

pihole checkout ftl new/batchDelete
pihole checkout web new/batchDelete

Geht es denn nach einem pihole -up ?