Hi Vince,

Everything is in memory eh? The only question is how much of it. ;)

The DBMS either performs an in-memory I/O (logical I/O) or a physical I/O followed by a lio.

As for memory leaks, it's doubtful that it is an O/S issue but more than likely a user land leak. Ah, in fact, you mention that it may be related to a Python library (user land).

I'm curious why John's archive table is large compared to yours. Perhaps the MariaDB data types are different than sqlite.

Side note: I mentioned elsewhere, I'm very new to weewx (June of this year). I thought about using Sqlite rather than MariaDB. In the end, I thought that I could (eventually?) contribute by ensuring that the queries had supporting indexes when needed. Not all queries need indexing. I could use the MariaDB tools to possibly fold in changes to Sqlite.

Thx!
---
pablo
On November 17, 2025 13:19:30 vince <[email protected]> wrote:
Disk is cheap.  The db is not in memory so size of the db does not matter.

Weewx uses a small amount of memory. I used to run it on an ancient ARM box that had 128 MB of RAM. It ran fine.

The absolute amount of RAM you use depends on os and platform. On a pi5 mine is around 110 MB RSS and 12 MB shared memory used. If you watch for weeks you might see what looks like memory leaking depending on your os, what actual graphing you are doing, and what underlying python imaging library versions are installed. This is python imaging library at fault under the hood. Again this doesn't really matter, since the os handles it anyway automatically.
For my sqlite3 db....

archive table is 439 MB in 1,866,971 records
the entire db is 501 MB
for a couple weeks short of 19 years data


We looked at the size of the archive table in detail back in early 2019 (wow) during weewx 4.0 development and concluded it was worth the flexibility to cook up the wview_extended bigger schema rather than to try to try to needlessly optimize for size. You could delete all kinds of columns that aren't used, but it's not really going to save you anything worth the time to do so, and you'll put yourself at risk of all kinds of side effects if you delete things the various skins expect to be there (example - Belchertown takes 'ages' to run its reports if you are missing a couple columns that it expects)

On Monday, November 17, 2025 at 9:28:09 AM UTC-8 Pablo Sanchez wrote:
Hi Vince,

From John's findings, a single table (the archive table) went from 1.1 GB to 420 MB - 62.7% decrease.

What I do not know is of your 500 MB, how many MBs is your archive table contributing. Let us suppose that it is 1 MB - you are 100% correct. Meh! OTOH, let us suppose it was 480 MB, reduced by 62.7% would be 179 MB. For small form factor devices, that is sizeable: 500 - 480 + 179 = 199 MB.

For me, I have an old laptop with 8 GB of memory. weewx is now in steady-state (up 15 days since last OS update) and I use very little RAM (692MB). However, I *just* started using WeeWX a few months ago.

I hope that helps!
---
pablo



On 2025-11-17 12:15, vince wrote:
Pablo, I know you said you're a database guy, but does any of this really matter at all ?

My sqlite3 db is 500 MB in size after a couple weeks short of 19 years. I can live with that. It's stable. It's fast enough. It works.

On Monday, November 17, 2025 at 9:06:17 AM UTC-8 Pablo Sanchez wrote:
One thought is to to ensure that the data types also cover metric.
---
pablo



On 2025-11-17 11:15, John Smith wrote:
I haven't touched indexes, just the number type on the columns..


I went about this by getting unique values for the column and then used that to optimise the column.


The only exception was the winddir column, it had decimal places, but a fraction of a degree doesn't seem worth having.

On Tue, 18 Nov 2025 at 02:51, Pablo Sanchez <[email protected]> wrote:
That's impressive!

The key is to ensure each data type for all Use Cases captures all data.

On my mental to-do is to enable query tracing to ensure when needed, supporting indexes are available.
---
pablo
On November 17, 2025 10:18:13 John Smith <[email protected]> wrote:
I spoke too soon, I changed the winddir and windgustdir fields to small ints, saving 2 bytes per value which may not sound like much but it adds up over time...


I also changed the humidity columns to be tiny ints as well...


The above changes saved a further 20MB, and the archive table is just a little over 170MB in size...


On Tue, 18 Nov 2025 at 01:05, John Smith <[email protected]> wrote:

I have always been hesitant to mess with the weeWX DB in case I broke it, but I ended up modifying the archive table and made a custom schema to match just in case.


It turned out more fruitful than I expected as I dropped the columns that were only full of NULLs. Worst case I need to re-add them and then the NULLs will be re-added too.


The extended schema has some interesting columns, such as 5 regarding hail, but does anyone know of any hail sensors?


The archive table went from 1.1GB down to 420MB in the process...


The only problem after doing this was weeWX exited on start because I didn't set a default value on the new columns I added, however after setting default values weeWX was happy again.


Then I changed the usUnits and interval columns from Int to tiny int, what that means is instead of MariaDB allocating 4 bytes per value it only uses 1 byte per value. I'm not sure setting those columns as ENUM type would reduce things further, but the usUnits column only has the number 17 stored and the interval column is always set to 5...


It was then I noticed that nearly all the columns were of type double, which seems like over kill to me as most of the time there really is only a need for 1 decimal place, not 16...


So I altered all the double columns and changed them to floats, since doubles use 8 bytes per value verses 4 bytes for floats and this again greatly dropped the table size down to 190MB all up this works out to be almost 1/10th of it's original size.


At this point I think that's the extent that I can take things and thought others might like to know that trimming the archive table, without loosing data, but recover a lot of storage space which will then also speed up other things like backups and reduce the space needed to store backups.
--
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 [email protected]. To view this discussion visit https://groups.google.com/d/msgid/weewx-user/CAGTinV5%3DgG_GkeSucYVX%3DrQSP3%3DL5odJkqvfK%2BFQR3ZCRuVTkQ%40mail.gmail.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 [email protected]. To view this discussion visit https://groups.google.com/d/msgid/weewx-user/19a9283a788.2848.44b74f35a7a433c111dbfaee4cca1c2d%40hillsandlakes.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 [email protected]. To view this discussion visit https://groups.google.com/d/msgid/weewx-user/CAGTinV6Eq-R9p_5%2BgrMSRxByTXa-O2CQjCUersr-A2Mj9zy3_g%40mail.gmail.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 [email protected]. To view this discussion visit https://groups.google.com/d/msgid/weewx-user/615dea8a-e05f-46e6-84e1-f5e4cd54c377n%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 [email protected]. To view this discussion visit https://groups.google.com/d/msgid/weewx-user/05d7deb5-0d16-40c4-9b54-b4c861f0af18n%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 [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/weewx-user/19a9332bfc0.2848.44b74f35a7a433c111dbfaee4cca1c2d%40hillsandlakes.com.

Reply via email to