Pi-hole 6.x | Raspberry Zero2 | FTL hohe CPU-Last

Hallo,

vorweg, ich bin beeindruckt von v6.x und ziehe meinen Hut vor dieser ganzen Arbeit.
Respekt. :+1: :smile:

Ich habe an mehreren Orten in der Verwandschaft jeweils 1-2 Raspberrys mit Pi-hole (v5).
Gestern habe ich zwecks Test das Pi-hole meines Raspberry Zero2 (4-Core m. 512MB RAM) auf v6.x upgedatet.

Ergebnis war, dass die WeboberflĂ€che nur sehr, sehr zĂ€h, wenn ĂŒberhaupt, erreichbar war. Ein Blick in die Konsole (top) zeigte, dass der pihole-FTL bei rund 50-60% lief. Load Average ging auf 2-3 hoch. Lt. htop war aber die CPU nicht voll beschĂ€ftigt. Auch RAM war noch genug da. Auf der Konsole spĂŒrte man eine Verzögerung bei Eingaben, ca. eine Antwortzeit von 500 bis 1000ms.

Ich vermutete die hohe Anzahl an Blockdomains (18 Mio.).

Erster Versuch:
Ich deinstallierte das Pi-hole und installierte es neu. Dann fĂŒgte ich Blocklisten fĂŒr 12 Mio. Domains ein und machte ein Gravity. Am Ende das gleiche Spiel, RAM war ok, CPU lief bei 30-40%, der Dienst pihole-FTL zeigte fĂŒr sich alleine 50-60% und die WeboberflĂ€che war schlecht erreichbar.

Zweiter Versuch:
Gleiches Spiel noch mal, Pi-hole runter, wieder rauf und Blocklisten fĂŒr ca. 8 Mio. Domains rein. Nun lĂ€uft das System rund, sprich kaum CPU-Last, pihole-FTL unauffĂ€llig (0,7 bis 1,3% CPU-Last) und die WeboberflĂ€che lĂ€uft einwandfrei.

RĂŒckblick zur v5:
Hier lief das Pi-hole auf dem gleichen System mit bis zu 22 Mio. Blockdomains einwandfrei.

Irgendwelche Ideen woran es liegt?
Gerne kann ich auch noch mal 12 Mio. einwerfen und versuchen einen Token zu erstellen. Aber wie gesagt, die WeboberflÀche ist da recht zickig.

Macht es einen Unterschied , wenn Du unter All settings » Webserver and API die Option webserver.threads umstellst?

Bei einer 4-Kern-CPU solltest Du 2 oder 3 probieren können.

Ich scheine dem Problem auf die Spur gekommen zu sein.

Das waren die Voraussetzungen:
RAM => 512MB
Swap => 500MB
Beim Gravity, genau beim "Building tree" wird der RAM stĂŒckweise immer mehr belastet. Wenn der RAM voll ist, beginnt sich der Swap zu fĂŒllen. Wenn der voll ist, bricht das Gravity inkl. Fehlermeldung ab.

Ich hÀtte nun erwartet, dass das Pi-hole wieder die alte DB verwendet und alle bis zu diesem Punkt generierten Daten verwirft.
Dem scheint aber nicht so, da die Anzahl der geblockten Domains sich Ă€ndert. Ab diesem Zeitpunkt spielt dann der FTL verrĂŒckt (CPU-Last) und verursacht die Probleme.
Meine laienhafte Annahme: Die Daten in der DB sind nicht schlĂŒssig und der FTL dreht sich irgendwo im Kreis.

Folgendes habe ich nun gemacht:
Ich habe den Swap auf 2000MB erhöht und Gravity wieder angestoßen. Und siehe da, er lĂ€uft ohne Fehlermeldung durch. WĂ€hrend dieses Durchlaufs nimmt er sich wieder den gesamten RAM und ca. 1200MB Swap. Nach dem Durchlauf ist der Swap und der RAM wieder frei.
Pi-hole lÀuft mit 20 Mio. Blockdomains, nimmt kaum RAM und macht keine CPU-Last mehr.

2 Likes

Same here. Den Eintrag zu finden hat mich jetzt knapp 3h gekostet. Hab dann dem lxc den RAM auf 4GB, den SWAP auf 2GB erhöht und dann ein

systemctl stop pihole-FTL.service
rm /etc/pihole/pihole-FTL.db
pihole updateGravity
pihole restart pihole-FTL.service

Er hat sich dann 3,7GB RAM und 0GB SWAP gegönnt, danach hat der Building Tree funktioniert und dann war endlich Frieden.

FĂŒr das updateGravity musste ich den DNS (von meiner lokalen IP) auf den Google DNS (8.8.8.8) anpassen:

nano /etc/resolve.conf
domain home
search home
nameserver 8.8.8.8

Davor hatte ich es mit den folgenden Befehlen versucht:

pihole flush
pihole reconfigure

Der debuglog sah komplett problemlos aus

pihole -d -c
1 Like

20 Mio. Blockdomains empfinde ich als nicht praktikabel und sinnhaft. Es dauert sicher ewig, die Datenbank einzulesen und upzudaten.

Die Gefahr, sich um viele FunktionalitÀten zu bringen, ist recht hoch, oder?

Aber interessant, dass es technisch möglich ist.

Ich nutze Pi-hole nicht nur fĂŒr das Blocken von Werbung und Tracking, sondern auch fĂŒr Porno, wovon es eine Menge gibt. :wink:
By the way: In einem anderen Thread ist einer mit 50 Mio. Blockdomains. Und das funktioniert auch. :slight_smile:

Unter Pi-hole v5 lief das seit wirklich langer Zeit problemlos. Gravity hat das System 1x Woche gemacht und das lief auch recht zĂŒgig durch.

1 Like

Hallo, hÀnge mich mal hier dran ...

Musste ebenso bei einem LXC Container Ram auf 2GB und SWAP erhöhen.

Gravity lÀuft jetzt ohne Problem durch, aber nach kurzer Zeit wird ein 1 CPU Kern permanent mit 100% ausgelastet und die WeboberflÀche sehr zÀh.

In TOP werden mir 8 FTL Prozesse angezeigt, wovon einer zu 100% ausgelastet ist. Bei einem Pi4 der anstandslos mit derselben Config lĂ€uft sehe ich dort nur 2 FTL Prozesse mit der ĂŒblichen niedrigen Auslastung.

webserver.threads auf 3 zu erhöhen bringt nur am Anfang etwas ...

Bist du dir da sicher?
Das sah bei mir auch so aus, aber da sind Fehlermeldungen am Ende vom Gravity (Konsole).
Ich habe daher eine Konsole mit dem Gravity laufen lassen, gleichzeitig eine Konsole mit htop bzw. top. Da sieht man, wenn der Swap volllaufen sollte. Wenn er volllÀuft, hatte ich das Problem mit der CPU-Last. Wenn der Swap nicht volllÀuft, habe ich kein Problem mit der CPU-Last.

Meine laienhafte Vermutung:
Der Fehler wird nicht abgefangen und die kompromittierte Datenbank wird ĂŒbernommen.

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.