Thanks, will do but later today.

Regards,

Garry Lockyer
C: +1.250.689.0686
E: ga...@lockyer.ca


> On Jan 16, 2021, at 11:09, bell...@gmail.com <bellri...@gmail.com> wrote:
> 
> 
> Garry,
> If you want me to run something, just make it available and give me some 
> instructions.
> rich
>> On Saturday, 16 January 2021 at 12:25:33 UTC-5 garrya...@gmail.com wrote:
>> I've added the mem extension.  My test station, with a large number of feeds 
>> selected, is at: https://lockyer.ca/weather/OsoyoosLakeNorthEast
>> 
>> mem graphs are at: https://lockyer.ca/weather/OsoyoosLakeNorthEast/mem
>> 
>> Regards,
>> 
>> Garry
>> 
>>> On Saturday, January 16, 2021 at 8:42:09 AM UTC-8 garrya...@gmail.com wrote:
>>> Brief Update: January 16, 2021:
>>> 
>>> I've pretty much finished moving my extension to a service.
>>> 
>>> I started WeeWX at about midnight and at about 8:20 AM, memory usage has 
>>> grown to over 941MB!  Allocated blocks was at 4,245,722.
>>> 
>>> So growing memory usage problem exists.
>>> 
>>> Bill indicated above he ran my test code on Ubuntu so I set up a Ubuntu 
>>> Raspberry Pi Desktop system:
>>> 
>>> RPi 4 - 6 GB
>>> Ubuntu Raspberry Pi OS 20.10
>>> Python3 - 3.8.6
>>> WeeWX 4.3
>>> Belchertown 1.2
>>> 
>>> Later today I intend to add the mem extension.  Will report back soonest!  
>>> I will also run things on Raspberrry Pi OS (but I have to build a new one!).
>>> 
>>> Regards,
>>> 
>>> Garry
>>> PS: I *think* I'm going to continue all development on Ubuntu as it seems 
>>> more current - it has a later linux kernel and more current Python - but 
>>> I'm not sure it's otherwise better than Raspberry Pi OS.  Both OS's have 
>>> wireless mouse lag problems, fixed somewhat by changing 'mousepoll' 
>>> setting.  Installation of Ubuntu was easy and I managed to get it to boot 
>>> from a USB SSD.  In the first 8 hours or so, Ubuntu froze a couple of 
>>> times, so now I keep an ssh session open so that I can reboot.
>>> 
>>>> On Saturday, January 9, 2021 at 8:02:51 PM UTC-8 garrya...@gmail.com wrote:
>>>> My experience is that when I recreate an include file for Belchertown on 
>>>> each archive cycle, as an extension to Belchertown or as a service, memory 
>>>> usage increases with each cycle and eventually errors start.  I’ve seen 
>>>> the error I reported in this string and unresponsive systems.  So, yes, I 
>>>> think there’s a problem.
>>>> 
>>>> The memory test service I provided starts out at about 45 MB and increases 
>>>> at about 3 MB per cycle.  I’ve seen WeeWx memory usage grow to over 1 GB!
>>>> 
>>>> I’m working on a new version of my extension, as a service, and will 
>>>> report back on its memory usage, hopefully within only a couple of days.
>>>> 
>>>> Thanks for all your help!
>>>> 
>>>> 
>>>> Regards,
>>>> 
>>>> Garry Lockyer
>>>> C: +1.250.689.0686
>>>> E: ga...@lockyer.ca
>>>> 
>>>> 
>>>>>> On Jan 9, 2021, at 19:11, vince <vince...@gmail.com> wrote:
>>>>>> 
>>>>> If your memory usage is stable, is there a problem ?
>>>> 
>>>>> It's pretty typical after a weewx startup for the usage to go up a bit 
>>>>> then level off nicely.
>>>>> 
>>>>>> On Saturday, January 9, 2021 at 4:41:51 PM UTC-8 bell...@gmail.com wrote:
>>>>>> Garry,
>>>>>> I ran your test extension for a bit in my Ubuntu VM.  Doesn't appear to 
>>>>>> be leaking.
>>>>>>  16:42:24 {'mem_size': 338.53515625, 'mem_rss': 32.953125, 'mem_share': 
>>>>>> 11.28125}
>>>>>>  16:47:38 {'mem_size': 423.80859375, 'mem_rss': 47.75, 'mem_share': 
>>>>>> 11.796875}
>>>>>>  16:52:53 {'mem_size': 424.4140625, 'mem_rss': 48.2265625, 'mem_share': 
>>>>>> 11.796875}
>>>>>>  16:57:24 {'mem_size': 426.46875, 'mem_rss': 50.19921875, 'mem_share': 
>>>>>> 11.796875}
>>>>>>  17:02:32 {'mem_size': 426.46875, 'mem_rss': 50.21875, 'mem_share': 
>>>>>> 11.796875}
>>>>>>  17:07:20 {'mem_size': 427.1796875, 'mem_rss': 50.9921875, 'mem_share': 
>>>>>> 11.796875}
>>>>>>  17:12:27 {'mem_size': 427.1796875, 'mem_rss': 50.9921875, 'mem_share': 
>>>>>> 11.796875}
>>>>>>  17:17:26 {'mem_size': 427.1796875, 'mem_rss': 50.9921875, 'mem_share': 
>>>>>> 11.796875}
>>>>>>  17:22:24 {'mem_size': 427.1796875, 'mem_rss': 50.9921875, 'mem_share': 
>>>>>> 11.796875}
>>>>>>  17:27:19 {'mem_size': 424.6640625, 'mem_rss': 48.71875, 'mem_share': 
>>>>>> 11.796875}
>>>>>>  17:32:27 {'mem_size': 424.6640625, 'mem_rss': 48.71875, 'mem_share': 
>>>>>> 11.796875}
>>>>>>  17:37:17 {'mem_size': 424.5859375, 'mem_rss': 48.7109375, 'mem_share': 
>>>>>> 11.796875}
>>>>>>  17:42:21 {'mem_size': 424.58203125, 'mem_rss': 48.70703125, 
>>>>>> 'mem_share': 11.796875}
>>>>>>  17:47:24 {'mem_size': 424.984375, 'mem_rss': 49.140625, 'mem_share': 
>>>>>> 11.796875}
>>>>>>  17:52:21 {'mem_size': 424.984375, 'mem_rss': 49.140625, 'mem_share': 
>>>>>> 11.796875}
>>>>>>  17:57:15 {'mem_size': 425.05078125, 'mem_rss': 49.26953125, 
>>>>>> 'mem_share': 11.796875}
>>>>>>  18:02:11 {'mem_size': 425.05078125, 'mem_rss': 49.26953125, 
>>>>>> 'mem_share': 11.796875}
>>>>>>  18:07:13 {'mem_size': 425.1171875, 'mem_rss': 49.3359375, 'mem_share': 
>>>>>> 11.796875}
>>>>>>  18:12:14 {'mem_size': 425.1171875, 'mem_rss': 49.3359375, 'mem_share': 
>>>>>> 11.796875}
>>>>>>  18:17:12 {'mem_size': 425.21875, 'mem_rss': 49.4375, 'mem_share': 
>>>>>> 11.796875}
>>>>>>  18:22:10 {'mem_size': 425.09765625, 'mem_rss': 49.31640625, 
>>>>>> 'mem_share': 11.796875}
>>>>>>  18:27:13 {'mem_size': 425.0390625, 'mem_rss': 49.2578125, 'mem_share': 
>>>>>> 11.796875}
>>>>>>  18:32:15 {'mem_size': 425.0390625, 'mem_rss': 49.2578125, 'mem_share': 
>>>>>> 11.796875}
>>>>>>  18:37:15 {'mem_size': 425.03125, 'mem_rss': 49.25, 'mem_share': 
>>>>>> 11.796875}
>>>>>>  18:42:24 {'mem_size': 425.01953125, 'mem_rss': 49.2578125, 'mem_share': 
>>>>>> 11.796875}
>>>>>>  18:47:14 {'mem_size': 425.0078125, 'mem_rss': 49.24609375, 'mem_share': 
>>>>>> 11.796875}
>>>>>>  18:52:13 {'mem_size': 425.0078125, 'mem_rss': 49.24609375, 'mem_share': 
>>>>>> 11.796875}
>>>>>>  18:57:15 {'mem_size': 425.61328125, 'mem_rss': 49.8515625, 'mem_share': 
>>>>>> 11.796875}
>>>>>>  19:02:19 {'mem_size': 425.0078125, 'mem_rss': 49.2734375, 'mem_share': 
>>>>>> 11.796875}
>>>>>> 
>>>>>> When I have some time, I'll install on my test pi along with the 
>>>>>> Belchertown skin and Vince's mem extension and see if I see anything.
>>>>>> Yes, I enjoy a good memory 'puzzle'.
>>>>>> rich
>>>>>>> On Saturday, 9 January 2021 at 16:52:08 UTC-5 garrya...@gmail.com wrote:
>>>>>>> Many, many thanks!
>>>>>>> 
>>>>>>> Before I wrote the service to investigate the problem, I wrote a 
>>>>>>> standalone program to eliminate all WeeWX components.  It did NOT 
>>>>>>> exhibit the problem.
>>>>>>> 
>>>>>>> Problem only seems to show up under WeeWX/Belchertown *and* if the 
>>>>>>> include file changes / is recreated.
>>>>>>> 
>>>>>>> Anyway, I really appreciate you looking into my problem.  I’m actively 
>>>>>>> working on a skin-independent service to read many RSS/Atom feeds and 
>>>>>>> will utilize your suggestions above.
>>>>>>> 
>>>>>>> Regards,
>>>>>>> 
>>>>>>> Garry Lockyer
>>>>>>> C: +1.250.689.0686
>>>>>>> E: ga...@lockyer.ca
>>>>>>> 
>>>>>>> 
>>>>>>>>> On Jan 9, 2021, at 12:39, bell...@gmail.com <bell...@gmail.com> wrote:
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>>>> Garry,
>>>>>>>> I took your WxFeedsMemory.py and made some modifications.
>>>>>>>> First, I changed the logging to simple print calls. this was just a 
>>>>>>>> convenience for me to easily see what was going on.
>>>>>>>> Second, I stole some code from Vince’s mem extension, 
>>>>>>>> https://github.com/vinceskahan/vds-weewx-v3-mem-extension. I did this 
>>>>>>>> because I am used to the data it returns. (Note, I highly recommend 
>>>>>>>> this when debugging memory.)
>>>>>>>> Third, I added code so I could call your extension repeatedly in a 
>>>>>>>> loop.
>>>>>>>> 
>>>>>>>> When I called new_archive_record 100 times there was a slight increase 
>>>>>>>> in memory, but nothing alarming. But it was slow, approximately 2 
>>>>>>>> minutes a call.
>>>>>>>> 
>>>>>>>> So, I commented out the flush and fsync calls and called 
>>>>>>>> new_archive_record 10,000 times. The slight increase seemed to stop 
>>>>>>>> around 6,000 calls.
>>>>>>>> 
>>>>>>>> I’m wondering if the amount of time it takes to run is causing 
>>>>>>>> problems when run as a service. I plan to uncomment the code and run 
>>>>>>>> it as an extension. I’ll let you know what I see.
>>>>>>>> rich
>>>>>>>> 
>>>>>>>> 
>>>>>>>>> On Thursday, 7 January 2021 at 13:00:40 UTC-5 garrya...@gmail.com 
>>>>>>>>> wrote:
>>>>>>>>> After many hours of troubleshooting and testing, I think I have an 
>>>>>>>>> idea what's happening.
>>>>>>>>> 
>>>>>>>>> Background: I want to use weewx with the Belchertown skin and my 
>>>>>>>>> extension that reads numerous RSS/Atom feeds  on a Pi Zero, with 
>>>>>>>>> either a Davis Pro V2 or Weatherflow weather station.  I will 
>>>>>>>>> eventually have four weather stations in my area.  I thought I had 
>>>>>>>>> things working reasonably well so deployed one station.  It stopped 
>>>>>>>>> working after about 3 days.  I can't access that system remotely so I 
>>>>>>>>> built a very similar system (the next one to deploy) and it falso 
>>>>>>>>> ailed due to lack of memory.  Weewx memory usage on my development 
>>>>>>>>> system also increases over time - it can grow to over 1 GB in a few 
>>>>>>>>> hours!
>>>>>>>>> 
>>>>>>>>> My extension was an extension to Belchetown based on the METAR 
>>>>>>>>> extension.  The extension created Belchertown index hook include 
>>>>>>>>> files each archive cycle.  While researching this problem I re-read 
>>>>>>>>> the weewx customization guide and noted that extensions should NOT be 
>>>>>>>>> dependent on other extensions so I decided to re-write my extension 
>>>>>>>>> as a service (which looks like a much cleaner solution) without any 
>>>>>>>>> dependencies on Belchertown (other than include file names).  All 
>>>>>>>>> I've done so far is create a service (WxFeedsMemoryTest.py) to test 
>>>>>>>>> weewx/Belchertown memory consumption.
>>>>>>>>> 
>>>>>>>>> The Problem: weewx/Bechertown memory usage increases over time.  It 
>>>>>>>>> starts out at about 45 MB and grows at about 3MB per archive 
>>>>>>>>> period/cycle (using my test case).  A 512 MB Pi will exhaust memory 
>>>>>>>>> within a few days.
>>>>>>>>> 
>>>>>>>>> It appears that the problem is associated with the creation of the 
>>>>>>>>> Belchertown include files while weewx/Belchertown is running:
>>>>>>>>> 
>>>>>>>>> - if the include file is 'static' as in not (re)created while 
>>>>>>>>> weewx/Belchertown is running, memory usage is static - it does not 
>>>>>>>>> grow beyond about 50 MB.
>>>>>>>>> 
>>>>>>>>> - if the include file is 'dynamic' as in (re)created while 
>>>>>>>>> weewx/Belchetown is running, memory usage increases.
>>>>>>>>>   - if the include file is created once, and becomes 'static', memory 
>>>>>>>>> usage increases and then stabilizes.
>>>>>>>>>   - if the include file is recreated continuously (such as on each 
>>>>>>>>> archive cycle), memory usage increases each cycle.
>>>>>>>>> 
>>>>>>>>> It does not appear to matter if the include file is created directly, 
>>>>>>>>> or created as a temporary file and then copied or renamed.
>>>>>>>>> 
>>>>>>>>> The attached service (WxFeedsMemoryTest.py) can be used to 
>>>>>>>>> demonstrate the problem.  Please see installation and use 
>>>>>>>>> instructions within the WxFeedsMemoryTest.py.
>>>>>>>>> 
>>>>>>>>> I'm going to continue to work on moving my extension from "an 
>>>>>>>>> extension to an extension" to a service in the hope that this memory 
>>>>>>>>> problem can be resolved.
>>>>>>>>> 
>>>>>>>>> With apologies in advance if I'm doing something to cause the 
>>>>>>>>> problem, please review, advise and let me know what I can do to avoid 
>>>>>>>>> the problem.
>>>>>>>>> 
>>>>>>>>> Regards,
>>>>>>>>> 
>>>>>>>>> Garry
>>>>>>>>>> On Thursday, December 31, 2020 at 7:05:15 PM UTC-8 
>>>>>>>>>> garrya...@gmail.com wrote:
>>>>>>>>>> Got MemoryError after about 9 hours after restart.  Have removed 
>>>>>>>>>> cmon by commenting out any mention of cmon in weewx.conf and 
>>>>>>>>>> restarted.
>>>>>>>>>> 
>>>>>>>>>> Regards,
>>>>>>>>>> 
>>>>>>>>>> Garry Lockyer
>>>>>>>>>> Former DEC Product Support Engineer :^)
>>>>>>>>>> Kepner-Tregoe Trained :^))
>>>>>>>>>> C: +1.250.689.0686
>>>>>>>>>> E: ga...@lockyer.ca
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>>> On Dec 31, 2020, at 11:44, vince <vince...@gmail.com> wrote:
>>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>> On Thursday, December 31, 2020 at 11:39:39 AM UTC-8 
>>>>>>>>>>> garrya...@gmail.com wrote:
>>>>>>>>>>>> Re: editing the Belchertown skin, nope haven’t touched it, other 
>>>>>>>>>>>> than interfacing with it via the include files (as generated by my 
>>>>>>>>>>>> BelchertownWxFeeds extension).  When all the endpoints (for 
>>>>>>>>>>>> testing) are enabled index.html is about 1.8MB, so perhaps that’s 
>>>>>>>>>>>> causing the problem.  I can easily reduce / eliminate endpoints 
>>>>>>>>>>>> and prefer to do that before eliminating the Belchertown skin.
>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> There it is.  You touched it :-)
>>>>>>>>>>> 
>>>>>>>>>>> Usual debugging rules apply.   Reset it to a baseline unmodified 
>>>>>>>>>>> config.  Add in changes one-by-one.  If it goes sideways, revert to 
>>>>>>>>>>> the last known good and reverify that it stays good.
>>>>>>>>>>>  
>>>>>>>>>> 
>>>>>>>>>>> -- 
>>>>>>>>>> 
>>>>>>>>>>> You received this message because you are subscribed to the Google 
>>>>>>>>>>> Groups "weewx-user" group.
>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>>>>>>> send an email to weewx-user+...@googlegroups.com.
>>>>>>>>>> 
>>>>>>>>>>> To view this discussion on the web visit 
>>>>>>>>>>> https://groups.google.com/d/msgid/weewx-user/57a5bfc7-d0b4-4419-b178-6342564642edn%40googlegroups.com.
>>>>>>>> 
>>>>>>>> -- 
>>>>>>>> You received this message because you are subscribed to the Google 
>>>>>>>> Groups "weewx-user" group.
>>>>>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>>>>>> an email to weewx-user+...@googlegroups.com.
>>>>>>> 
>>>>>>>> To view this discussion on the web visit 
>>>>>>>> https://groups.google.com/d/msgid/weewx-user/d5e41e91-5dab-41bc-bc34-682826ba4753n%40googlegroups.com.
>>>>> 
>>>>> -- 
>>>>> You received this message because you are subscribed to the Google Groups 
>>>>> "weewx-user" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>>>> email to weewx-user+...@googlegroups.com.
>>>> 
>>>>> To view this discussion on the web visit 
>>>>> https://groups.google.com/d/msgid/weewx-user/26d2e298-1f5a-4d54-8cc8-89acaf65dab3n%40googlegroups.com.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "weewx-user" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to weewx-user+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/weewx-user/0f3d3ae7-ad42-4ebb-a395-81ddc2887496n%40googlegroups.com.

-- 
You received this message because you are subscribed to the Google Groups 
"weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to weewx-user+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/2FDA9B0E-B731-4494-B9C7-9017F634F6FF%40gmail.com.

Reply via email to