Docker limitiert sich auf eine Core

sgreg

Benutzer
Mitglied seit
10. Dez 2010
Beiträge
51
Punkte für Reaktionen
0
Punkte
6
Hi und Happy New Year,

meine DS1621+ hat eine CPU AMD Ryzen V1500B mit 8 Cores die auf 16 GB Memory zugreifen können. Ich habe Docker Paket von Synology installiert, auf dem Volume2 (2 mal SSD RAID0). Innerhalb des Dockers laufen Portainer und paperless-ngx. Mit Portainer verwalte ich den paperless-ngx Stack.

Mein Problem, ich schaffe es nicht paperless-ngx mit mehr als einen Core zu verwenden. Innerhalb von Portainer kann ich Limits für einen Container angeben, im Default steht alles auf maximal bzw. unbeschränkt. Wenn man sie verändert und deployen möchte, kommt die Meldung das der Kernel der DS1621 dies nicht unterstützt.
Die Synology Docker Applikation kann die CPU Priorität und Speicherlimits definieren. Diese haben bei mir keinen Einfluss auf Auslastung der CPU.
Innerhalb des paperless-ngx Containers habe ich folgende Werte gesetzt
PAPERLESS WEBSERVER WORKERS: 2
PAPERLESS THREADS PER WORKER: 4
aber dies hat auch keinen Einfluss.

docker info liefert folgendes:
Kernel Version: 4.4.180+
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 15.59GiB
....
WARNING: No kernel memory TCP limit support
WARNING: No cpu cfs quota support
WARNING: No cpu cfs period support
WARNING: No blkio weight support
WARNING: No blkio weight_device support
WARNING: No blkio throttle.read_bps_device support
WARNING: No blkio throttle.write_bps_device support
WARNING: No blkio throttle.read_iops_device support
....

Mein Testcase ist, eine mittlere Anzahl 10-20 PDF in das Consume Verzeichnis packen. Die Last auf der DS1621 geht auf 12% über alles. Innerhalb des Docker Containers auf 100%,

Wie bzw. wo kann ich die Handbremse lösen?

Danke für Hilfestellungen
 

EDvonSchleck

Gesperrt
Mitglied seit
06. Mrz 2018
Beiträge
4.703
Punkte für Reaktionen
1.120
Punkte
214
Als erstes: deine CPU hat keine 8 Kerne, das sind nur 4 mit 8 Threads. Informationen findest du dazu hier.
Entsprechend der Liste solltest du für den Worker und Threads jeweils den Wert 2 setzen. Dann sollte auch die Auslastung vom Container sinken.

Was die Fehlermeldung angeht, wirst du dich an Synology und/oder Paperlessngx wenden müssen.
Bei beiden kannst du ein Ticket aufmachen.

Letztendlich funktioniert ja so weit alles und wenn weniger Files gleichzeitig bearbeitet wird, ist es auch ok.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.519
Punkte für Reaktionen
404
Punkte
103
Ein Container verwendet immer alle verfügbaren CPU und RAM Ressourcen (und bekommt genauso seine CPU-Zeit wie andere Prozesse auch), bis man ihm Ressouce-Contraints auferlegt. Ich kann mir kaum vorstellen, dass es im Interesse von Synology hier bei seiner Docker Distribution vom Standard abzuweichen.

Aufgrund fehlender Funktionalität bzw. Modulen im Syno Kernel können keine CPU Contraints verwendet werden.
Kannst ja mal schauen, was bei einem CPU-Stresstest im Container rauskommt:
Code:
docker run -it --name cpustress --rm containerstack/cpustress --cpu 4 --timeout 30s --metrics-brief
Kleiner Hinweis: die Parameter, die hinter dem Image-Repo stehen, sind Container-Argumente - sie steuern der Anwendugn innerhalb des Containers. Es sind keine Docker-Argumente, die die Erzeugung des Containers steuern.
 
  • Like
Reaktionen: peterhoffmann


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat