What exactly is the problem? Linear mempool growth is normal and expected for a constant number of transactions per second, at least until old transactions stop being broadcast and an equilibrium is reached. Many have complained that said equilibrium ends up being too large, so starting from version 0.12 Bitcoin Core has a configurable limit on how large the mempool can grow, after which it will start dropping the transactions with the lowest fees.
For reference, my node's mempool usually hovers around 40k transactions in 1GB, which I think is typical.
Thanks, good to know this is normal, because I have observed this phenomenon for years. I never cared too much since it is still small comparing to the total free memory. However I'm seeing tradeblock using a different way to calculate the mempool size, it is always related to the unconfirmed transactions in mempool, not growing linearly
In your case, 40K transactions would result in 20M maximum mempool, not 1GB. Since you have 40K transactions, and each of them is 0.5KB maximum, what are all those other memories used for?