dsmr-reader icon indicating copy to clipboard operation
dsmr-reader copied to clipboard

Datalogger process sleep >0.5 geeft usbip errors

Open ualex73 opened this issue 1 year ago • 9 comments

Language / Voertaal

🇳🇱 Nederlandstalig

Help yourself

Inquiry

Report a bug

Description

Mijn iowait is een beetje hoog, dus ik wilde het verlagen door de waarde "Datalogger process sleep" van 0.5 seconden naar 2-5 seconden te veranderen. Dit gaf mijn een lagere iowait, maar nu krijg ik andere problemen.

Mijn DSMR-Reader setup is als volgt:

  • Ik draai een VirtualMachine op ProxMox
  • In de VM draai ik Docker
  • De serieel poort zet ik door via "usbip" (standaard onderdeel van Debian/Linux), want de Proxmox serieel poort doorgeven is minder stabiel

Dit draait met 0.5 seconden goed, maar zodra ik het hoger zet, zie ik continue op mijn Proxmox de volgende melding (3-7 is de USB poort van P1): [Sat Mar 22 10:28:10 2025] usbip-host 3-7: unlinked by a call to usb_unlink_urb() [Sat Mar 22 10:28:12 2025] usbip-host 3-7: unlinked by a call to usb_unlink_urb() [Sat Mar 22 10:28:12 2025] usbip-host 3-7: unlinked by a call to usb_unlink_urb() [Sat Mar 22 10:28:14 2025] usbip-host 3-7: unlinked by a call to usb_unlink_urb() [Sat Mar 22 10:28:16 2025] usbip-host 3-7: unlinked by a call to usb_unlink_urb() [Sat Mar 22 10:28:16 2025] usbip-host 3-7: unlinked by a call to usb_unlink_urb() [Sat Mar 22 10:28:18 2025] usbip-host 3-7: unlinked by a call to usb_unlink_urb() [Sat Mar 22 10:28:18 2025] usbip-host 3-7: unlinked by a call to usb_unlink_urb()

Omschrijving: https://manpages.debian.org/testing/linux-manual-4.8/usb_unlink_urb.9.en.html

Na een tijdje gaat deze usbip P1 plat (reageert niet meer) in mijn VM. Ik heb al gepoogd om uit te vogelen hoe de DSMR-Reader de serieel poort gebruikt, maar niet 1-2-3 kunnen vinden. Het werkt wel met 0.5 seconden, maar wanneer hoger, dan doet DSMR-Reader iets "raars" (misschien elke keer serieel poort openen en sluiten?).

DSMR-reader version

v5.11.0

DSMR-reader platform

Docker (e.g. Xirixiz's DSMR-reader Docker)

Optional: Debug info dump (of DSMR-reader)


Optional: Smart meter telegram


ualex73 avatar Mar 22 '25 09:03 ualex73

DSMR-reader maakt bij hogere sleeps telkens een nieuwe verbinding, de grens staat op 1 seconde. Je kunt die aanpassen (hoger zetten) met deze envvar:  DSMRREADER_REMOTE_DATALOGGER_MIN_SLEEP_FOR_RECONNECT https://github.com/dsmrreader/dsmr-reader/blob/6954590a1b82fe76ae9cec44397e57159fa197af/dsmr_datalogger/scripts/dsmr_datalogger_api_client.py#L143

dennissiemensma avatar Mar 22 '25 17:03 dennissiemensma

Dennis dank je voor het snelle antwoord, dus ik heb het gelijk geprobeerd. Ik heb de volgende env toegevoegd: DSMRREADER_REMOTE_DATALOGGER_MIN_SLEEP_FOR_RECONNECT=6

Ik heb "Datalogger process sleep" op 2 en 4 seconden geprobeerd, maar de meldingen komen weer uit de usbip logging ... dus het lijkt het niet op te lossen.

ualex73 avatar Mar 22 '25 18:03 ualex73

Je zou kunnen proberen de datalogger sleep op 0.9 en 1.1 seconde te zetten en dan te kijken of je verschil ziet in meldingen. Wellicht pakt de datalogger die limiet niet goed en blijft die op 1s staan. 

dennissiemensma avatar Mar 23 '25 20:03 dennissiemensma

Ja, bij 0.9 seconden is alles rustig en als ik het op 1.1 seconden zet, dan kring ik weer de meldingen. Dus als je zegt, pakt de datalogger het limiet niet goed op.

ualex73 avatar Mar 24 '25 18:03 ualex73

Welke datalogger sleep gebruik je trouwens? Via interface of envvars? Want dit werkt alleen met de remote datalogger en die kijkt naar de envvar DSMRREADER_REMOTE_DATALOGGER_SLEEP. Gezien je verschil ziet in gedrag, doet je sleep aanpassing wel iets (blijkbaar), maar goed om even te checken.

dennissiemensma avatar Mar 24 '25 18:03 dennissiemensma

Ik heb het volgende in mijn docker-compose staan: environment: - DSMRREADER_SUPPRESS_STORAGE_SIZE_WARNINGS=True - DSMRREADER_REMOTE_DATALOGGER_MIN_SLEEP_FOR_RECONNECT=6

De "Datalogger process sleep" stel ik in via de GUI.

ualex73 avatar Mar 24 '25 19:03 ualex73

Probeer het eens (ook) via DSMRREADER_REMOTE_DATALOGGER_SLEEP, wellicht pakt die hem dan wel.

dennissiemensma avatar Mar 24 '25 19:03 dennissiemensma

Ook geprobeerd, maar jammer genoeg geen verschil in gedrag.

ualex73 avatar Mar 27 '25 18:03 ualex73

Nog even kort gekeken, had je deze DSMRREADER_REMOTE_DATALOGGER_SLEEP ook geprobeerd met een hogere (of gelijke) waarde dan DSMRREADER_REMOTE_DATALOGGER_MIN_SLEEP_FOR_RECONNECT? Al zou de standaard voor de laatste al 1.0 moeten zijn, zonder die in te stellen...

DSMRREADER_REMOTE_DATALOGGER_SLEEP=5.0
DSMRREADER_REMOTE_DATALOGGER_MIN_SLEEP_FOR_RECONNECT=1.0

Als dat ook niet werkt dan heb ik geen probeersels meer.

dennissiemensma avatar Jun 17 '25 18:06 dennissiemensma