-
-
Notifications
You must be signed in to change notification settings - Fork 388
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
memory consumption after upgrade to 3.4.9 #812
Comments
can you please describe your setup and context? how many charging stations and users? how busy are the stations and users? are the stations soap or ws/json stations? if they are ws/json, do they disconnect and reconnect a lot? |
its my test environment at home with two test users, some rfid cards and one station. The station is ws/json 1.6, not disconnecting at all, maybe once or twice a day. The station is idle atm. So only traffic is frequent StatusNotification, Heartbeat (300 secs) and meter values every 15 minutes. No idea whats happening in the background. No real work... |
i did some load testing and monitored the memory usage using the tests in referenced commit. environment
prerequisiteinsert a chargeboxid test setupone charging station, one connection. 3 different actions/messages to randomly choose from: BootNotification, StatusNotification, Authorize. test 1: Issue812_50Minssend one message, wait 1 minute, send another.... repeat for 50 times (or for approx. 50 minutes). used heap size indeed increases because we generate lots of garbage, but from time to time GC kicks in to clean up. after a while, it becomes the common zig-zag pattern of java applications. nothing out of ordinary if you ask me. test 2: Issue812_ConnectDisconnectconnect, wait 1 second, disconnect. repeat for 200 times. nothing scary. test 3: Issue812_Crazysend one random message after another 20,000 times without waiting in-between. this graph is a lot busier and heap size grows due to frequent activity. but... apparently GC does lots of clean-up since it is not a constant climb which would have led to OOM and kill. i manually triggered a GC before this run to have a clean slate. after waiting for a while when the test finished, i triggered another GC. the used heap returned to the almost same value before the run... from which i derive that there was no memory leak or dangling references. |
I also did some testing with interesting result. I deployed steve to another system, an OrangePi running armbian buster (debian 10). On that machine I have an openJDK java installation. DB connection is the same as on the previous setup. After 24h runtime I can confirm normal behaviour as seen by @goekay, the typical sawtooth pattern with a maximum of below 700 MB. So working stable as a long running process. |
Until now I did not do any further research, but running on my second platform (OrangePi with Armbian buster, openJDK) is stable as long running process. Memory consumption is highly volatile but stable concerning maximum value (750 MB). |
I have a similar issue. 3.4.9 memory consumption grows to about 12GB over 6-7 days and then crashes. It is on my server:
I have about 20 charge points running, mostly Alfen with one Phihong |
I have downgraded to an earlier version of SteVe (3.4.6) and it is now working properly (average memory 650MB) |
Checklist
Specifications
The text was updated successfully, but these errors were encountered: