-
-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
High CPU usage and permission errors on Home Assistant OS #262
Comments
Hmm, vreemd. DSMR gebruikt juist minder CPU en MEM sinds de laatste release. Het lijkt idd gerelateerd aan een rechten issue. Wat heb je aangepast in 0.7.4 waardoor CPU gebruik omlaag is gegaan, dat is mij niet helemaal helder? De opties die men heeft:
Ik denk dat het beste is daar eerst mee te testen. Het zetten van een UID/GID is een veelgevraagd en lang bestaand verzoek. Rechten issues zijn even lastig maar aan de andere kant ook weer eenvoudig op te lossen. |
Ja de UID/GID is al opgelost, dacht al dat dat het probleem zou zijn. Alleen hopen dat op elke HASSIO installatie deze het zelfde is. CPU is nog even zoeken, post een update zodra ik meer weet. |
Hoe werkt een proces als /etc/services.d/dsmr_datalogger/run? Wordt deze continu opnieuw afgetrapt? Ik vermoed namelijk dat het hoge CPU gebruik komt door het steeds opnieuw aftrappen van alle jq commando's (nodig om de addon configuratie door te zetten naar env variabelen): De env variabelen alleen laten zetten door /etc/cont-init.d/20-set-app-defaults is onvoldoende omdat (oa dsmr_datalogger/run) dan toch weer de default dsmrdb pakt (die uit de Docker file komt denk ik?). En dat lijkt dus gelijk het probleem te zijn, de omgevings variabelen lijken continu overschreven te worden met de defaults? |
Ik denk dat ik begrijp wat je bedoeld, maar het is juist niet zo dat het process steeds gestopt en gestart wordt in de container. Tenminste, iig niet de bedoeling 😄. Ik denk dat ik je het beste kan helpen wanneer ik de addon ook even in hass installeer zodat ik het kan simuleren en het beter kan begrijpen. Ik zal dat vanavond even doen. Kom ik er niet uit vind ik het ook prima om een keer in de avond er samen naar te kijken hoor. |
Ah, dat kan niet natuurlijk vanwege hassio.... |
Mogelijk is dit het issue: Line 14 in b877e94
https://github.com/just-containers/s6-overlay#customizing-s6-behaviour |
Please check the development release tag. I removed the S6_KEEP_ENV setting from the image. |
Thanks, can't do it tonight but will check asap. |
It's going to need a bit more time because I'm ill and undergoing surgery upcoming Tuesday. Can you make sure the currently used docker images stay on docker hub for a while? Thanks |
Any update? |
I'm still in the hostpital, so unfortunately not 😕 |
Ah sorry to hear @sanderdw, hope you'll be getting well soon. |
I tested this a little bit a while back and still no luck, results are the same which i don't understand (sanderdw/hassio-addons@b4c76ba). I also played a little bit changing "#!/usr/bin/with-contenv bash" to "#!/usr/bin/env bash" but not sure any more what to set. Is the S6_KEEP_ENV setting still removed from the latest images? I need to test a 'fresh' setup i think. |
Alles weer op #!/usr/bin/with-contenv bash gezet, en zoals je ziet 'onthoud' hij niet de gezette environment variables. Het zal wel echt en S6 ding zijn. Het probleem is dat ik de env's vanuit script moet initialiseren (HA maakt de container automatisch aan bij starten en doet niets met ENV's). Configuratie in de addon komt als een /data/options.json object in de container runtime beschikbaar en kan dus pas na het draaien deze configuratie oppakken en de EXPORT's doen. Dit werkte voorheen dus prima maar S6 gooit (vermoed ik) roet in het eten (overigens is S6 natuurlijk wel een logische keuze voor DSMR gezien de vele processen). Denk dat ik naar zoiets moet kijken ofzo: just-containers/s6-overlay#243 |
Still no luck: hoewel er dus 77b2833f-timescaledb in /var/run/s6/container_environment/DJANGO_DATABASE_HOST staat 'luistert' "Starting DSMR Reader - backend..." er niet naar lijkt het. |
Ik zie in de build "oude" images staan. Heb je de build ook gestest met de laatste release? DOCKER BUILD: MANIFEST AMD64 - ***/dsmr-reader-docker:amd64-2022.02.02. Vreemd dat je ook de hele tijd "ENV's being updated" voorbij ziet komen |
Ik clone de debug_cpu branch even en maak wel een PR. Kijken of het te fixen is. |
@sanderdw The vars were not initialized in a function and therefore overwritten when main was excuted. Added a separate function which runs as the last step before starting the services, but after the base variables have been set. So now the variables you specified for hassio should be set as default. |
Ja omdat de nieuwe release DSMR 5 bevat en volgens mij andere ENV benaming heeft? Dacht eerst even zeker weten dat alles werkt voordat ik naar de nieuwe release ga. "ENV's being updated" is mijn eigen code https://github.com/sanderdw/hassio-addons/blob/debug_cpu/dsmr_reader/rootfs/etc/cont-init.d/20-set-app-defaults#L272, zodat ik duidelijk herken wat er gebeurt. |
Heb je nieuwe branch geprobeerd maar dan komt hij niet bij de 30-set-hassio-vars Dus ik heb het even overal geforceerd overal doorgevoerd: sanderdw/hassio-addons@2b7acfd Maar toch lijkt hij ergens de oorspronkelijke dsmrdb vast te houden: Kan het met https://github.com/xirixiz/dsmr-reader-docker/blob/master/rootfs/etc/cont-init.d/20-set-app-defaults#L76 te maken hebben? Wat doet die file? Het gekke is ook dat ik die niet meer zie op het moment dat de container draait? |
Probeer het nog eens op de branch in mijn forked repo. We kunnen dit ook samenvoegen in mijn code als je wilt. https://github.com/xirixiz/hassio-addons.git Als het goed is, dan is de code nu ook meteen v5 ready ;). We kunnen wel een keer naar de structuur kijken zodat ik misschien in mijn code een hassio argument opneem. Wanneer jij dat dan specificeert, dat dan alleen de waarden gezet worden zoals jij dat gedefenieerd hebt. |
Running post configuration, dus in 20-set-app-defaults heeft hij nog de standaard dsmrdb
Hij gaat wel door zie ik en dan in 30-set-hassio-vars:
could not translate host name is gek want 77b2833f-timescaledb is wel de goede. |
😃 Heb even scratch even alles opnieuw gedaan en je laatste images + code gebruikt van de master en het lijkt nu te werken met deze branch: https://github.com/sanderdw/hassio-addons/tree/debug_cpu Moet nog wel even goed testen. Ook heeft de (migratie) stap naar v5 nog wel impact geloof ik? Zie namelijk dit in de log staan:
Dus "could not find a "pg_dump" to execute" & de pg_dump warnings? |
Dit lijkt meer in relatie te staan met DSMR Reader. Weet jij hoe we dit op kunnen lossen @dennissiemensma ? |
Zonder het hele Issue door te lezen zie ik dit:
Ik denk dat die binary wel eerst geinstalleerd moet worden. Alleen is het wel vreemd dat die daarna daaronder doodleuk een melding vanuit Overigens zegt deze tabel mij niets:
|
Context van wat DSMR-reader doet overigens:
Ik krijg geen waarschuwing als ik het handmatig doe:
Maar misschien is dit |
Ik draai trouwens nog wel Postgres 11 zie ik, dus wellicht verschilt dat ook nog, als die van jullie bijvoorbeeld 13 is.
|
Heb even gekeken en het is Postgres 12 wanneer men de TimescaleDB addon gebruikt (ook een HA addon maar beheerd door iemand anders). Hypertable is blijkbaar iets specifieks van TimescaleDB na een snelle search. Dus dat zal ik even verder moeten onderzoeken (alleen HA gebruikers gebruiken die TimescaleDB addon namelijk). Het pg_dump verhaal staat hier wel weer los van denk ik. |
Het Timescaledb verhaal lijkt het volgende te zijn, dus niet zo belangrijk: @dennissiemensma, zou dit het probleem kunnen zijn wat betreft de pg_dump melding? https://stackoverflow.com/questions/65191779/pg-dump-error-in-docker-but-still-executes-successfully (zie overigens maar 1 pg_dump) Dus het toevoegen van **os.environ aan:? Na wat testen zie ik dat het 'probleem' zich ook voordoet (alleen versie installatie of upgrade) met de eerdere v4 en de vorige image opzet van @xirixiz (https://github.com/sanderdw/hassio-addons/blob/master/dsmr_reader/build.json). Ik kan het eventueel ook wel testen hoor door die backup.py te overschrijven met een testversie. |
Ik krijg dezelfde fout in mn dev-docker setup. Bovenstaande fixt het niet, de PostgreSQL client mist gewoon, waar dat command bij zit als util. Bij mij fixte het bouwen van de image met:
Waarbij de client-versie wel moet overeenkomen met server-versie, anders krijg je zoiets:
|
Werkt deze overigens wel? |
Je zou namelijk kunnen checken of het
Hier is het: |
pg_dump zit in de Docker image. De melding komt ergens anders vandaan inderdaad, en ik vermoed dat het inderdaad te maken heeft met de versie van PG.
De error komt denk ik door het zetten van de vars: |
Of gewoon een nieuwere versie, hij past zich dan automatisch aan de server versie, zie ook https://www.postgresql.org/docs/10/app-pgdump.html#:~:text=pg_dump%20can%20also%20dump%20from,risk%20making%20an%20invalid%20dump. |
Alleen is er geen nieuwere versie. Dit is de huidige versie in Docker.
|
Je kunt dan lokaal proberen de envs toe te voegen. Als het helpt kan ik het wel opnemen in de repo.
|
Idd, dus aan de software installatie ligt het niet. Ben even aan het testen met: sanderdw/hassio-addons@c87fee0 Lijkt tot nu toe het probleem op te lossen. Moet nog even wat migratie dingen checken. |
Volgens mij is het probleem inderdaad opgelost hiermee:
|
Ik heb een beta van de addon klaargezet om wat gebruikers te laten testen. @xirixiz, heb de opzet nog wat simpeler gemaakt, deze is hier te zien: https://github.com/sanderdw/hassio-addons/tree/v5/dsmr_reader @dennissiemensma , ik heb nu dus https://github.com/sanderdw/hassio-addons/blob/v5/dsmr_reader/dsmrreader/backup.py als een override toegevoegd welke lijkt te werken. Zal ik een PR maken om dit toe te voegen in je code? Je zal nog wel even moeten checken of het niet breekt in andere omgevingen? Bedankt voor de hulp heren, zonder jullie was het niet gelukt 👍 |
Je mag wel een PR maken tegen de 5.1 branch. Ben nu niet thuis dus kan verder ook weinig voor je betekenen.
|
Volgens mij werkt het wel goed. Of laat ik het anders zeggen, ik kan nog steeds een backup maken. Ik zal het onderdeel maken van DSMR-reader v5.1 |
Dat matcht precies met wat ik wilde doen in een PR op jouw repo 👍 |
@dennissiemensma verder overigens geen issues meer gevonden van gebruikers . Je vedient dus een 🥇! |
De berichten zijn positief, dus deze kan dicht. https://community.home-assistant.io/t/dsmr-reader-add-on-for-home-assistant/279087/182?u=sanderdw |
De release is naar verwachting morgenavond. |
Docker image released as well for 5.1.0. |
HA addon 5.1.0 as well 👍 |
Support guidelines
I've found an issue and checked that ...
Description
Unfortunately i was a bit optimistic (#251 (comment)) and the new version is causing some weird cpu usage: sanderdw/hassio-addons#28
Also the mount option which worked correctly is causing permission problems now (map option in https://developers.home-assistant.io/docs/add-ons/configuration).
Expected behaviour
No high cpu usage and be able to write back to hassio folders
Actual behaviour
See description
Steps to reproduce
Docker info
Version
docker-compose --version
):uname -a
):Docker compose
Container logs
sanderdw/hassio-addons#28
Additional info
No response
The text was updated successfully, but these errors were encountered: