Tom, Due to memory grow my system crashed after 9-10 days. So I wrote here that I would implement a cron job to restart my system after 5 days. Vice Skahan convinced me to trace down the cause of the memory leaks and that I did.
No more, no less. Luc On Sunday, 29 March 2020 20:54:56 UTC-3, Tom Keffer wrote: > > I'm sorry, Luc, not trying to be difficult, but what is your question? I > can't possibly debug your memory leak, especially with the complicated set > of drivers and skins you are running. > > WeeWX itself does not have any memory leaks that I'm aware of. It is 100% > Python, and Python uses garbage collection. If there are circular > references, it can take a while for the interpreter to find unused and > recycle memory, but WeeWX does not use any circular references. > > Here's an example <http://www.threefools.org/weewx/status/index.html> of > a station that has been running continuously for well over a year. Present > memory use is VIRT=75060 RES=37736 SHR=7144. So, very long runtimes are > possible without leaks. > > Net-net, if there are leaks, I am pretty confident they are in the > underlying C libraries. > > -tk > > On Sun, Mar 29, 2020 at 3:50 PM Lucas Heijst <[email protected] > <javascript:>> wrote: > >> Tom, >> >> I have experienced two types of memory leak. >> 1. In cronjobs when defining variables without unset them afterwards. >> 2. With weewx reports (mben with 84+ generated graphs each run). >> >> Luc >> >> On Sunday, 29 March 2020 19:10:52 UTC-3, Tom Keffer wrote: >>> >>> By the way, in my experience, these leaks are caused by underlying "C" >>> libraries or, occasionally, by failure of PIL to release graphics resource >>> (such as font handles). >>> >>> On Sun, Mar 29, 2020 at 3:09 PM Thomas Keffer <[email protected]> wrote: >>> >>>> I'm not following. I thought you said you could get rid of the leak by >>>> doing the unsets. If so, is there still a problem? >>>> >>>> >>>> On Sun, Mar 29, 2020 at 8:41 AM Lucas Heijst <[email protected]> wrote: >>>> >>>>> Tom, >>>>> >>>>> Currently running weewx 4.0.0b17 and analysing the memory leak in my >>>>> pi31 system. >>>>> On the system runs two weewx instances (mben and tfrc) and a 5-minute >>>>> webcam cronjob. >>>>> >>>>> The memory leak of my webcam cronjob task was caused by creating >>>>> variables like: >>>>> WEBCAM_ID=3 >>>>> CAMERA=picamera$WEBCAM_ID >>>>> DATETIME=$(date +"%Y-%m-%d %H:%M:%S") >>>>> EPOCH=$(date +"%s") >>>>> ... >>>>> >>>>> The used memory is freed by: >>>>> unset WEBCAM_ID >>>>> unset CAMERA >>>>> unset DATETIME >>>>> unset EPOCH >>>>> ... >>>>> >>>>> >>>>> The memory leak of the weewx instances mben and tfrc are caused by the >>>>> weewx reporting tasks, see data below: >>>>> >>>>> ----- >>>>> used time >>>>> mem >>>>> ----- ----- >>>>> 73348 10:30 >>>>> 95504 11:07 >>>>> 48576 11:38 no webcam, no mben, no tfrc (no increase of memory) >>>>> 56136 11:41 mben without modbus read and modbus service >>>>> 57384 11:43 >>>>> 57876 11:44 >>>>> 58360 11:45 >>>>> 64836 11:47 used memory increased with 6476 due to mben31 report >>>>> 64572 11:48 >>>>> 64560 11:49 >>>>> 64548 11:50 >>>>> 66240 11:51 used memory increased with 1692 due to mben31 report >>>>> 55808 11:53 mben without mben31 report >>>>> 56092 11:54 >>>>> 55828 11:55 >>>>> 55808 11:56 >>>>> 56000 11:57 >>>>> 56000 11:58 >>>>> 56516 11:59 >>>>> 56772 12:00 >>>>> 56164 12:02 mben now with modbus service (fully functional; without >>>>> reporting) >>>>> 56436 12:03 >>>>> 55920 12:04 >>>>> 76056 12:09 mben without mben31 report; tfrc started without tfrc31 >>>>> report >>>>> 76388 12:10 >>>>> 77084 12:11 >>>>> 77248 12:12 >>>>> 77432 12:13 >>>>> 77312 12:14 >>>>> 76908 12:15 >>>>> 76976 12:16 >>>>> 77268 12:21 >>>>> 77248 12:24 hardly any increase of used memory the last 15 minutes >>>>> ----- >>>>> >>>>> When all reports are disabled, the memory leak on my system is >>>>> practically zero. >>>>> >>>>> Attached the skin settings of mben31. >>>>> >>>>> Any clue how reduce this memory leak? >>>>> >>>>> Luc >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "weewx-development" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/weewx-development/d91724fe-da46-4b4e-9913-59f55aa91657%40googlegroups.com >>>>> >>>>> <https://groups.google.com/d/msgid/weewx-development/d91724fe-da46-4b4e-9913-59f55aa91657%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> >>>> -- >> You received this message because you are subscribed to the Google Groups >> "weewx-development" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/weewx-development/b5c12aeb-c8e1-489e-b457-04d2f8783ca0%40googlegroups.com >> >> <https://groups.google.com/d/msgid/weewx-development/b5c12aeb-c8e1-489e-b457-04d2f8783ca0%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- You received this message because you are subscribed to the Google Groups "weewx-development" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-development/aef6dbc0-2030-4ba7-8d80-48ef44fd0d12%40googlegroups.com.
