This repository has been archived by the owner on Jan 9, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 44
why microsteam occupy 58G main memory? #696
Comments
At the first glance it seems that the housekeeping is not aggressive enough.
|
My current setting is like this , Could you give some suggestion? I used eclipseStore 1.1.0 and java21
|
I’d try to:
With this setup housekeeping will be done every 100ms for a 50 ms max and clear cache items that are older than one minute. |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Environment Details
MicroStream Version:08.01.00-MS-GA
JDK version:21.01
OS:Ubuntu 18.04.6 LTS, centos 7
Used frameworks: Spring boot 2.7.8
Describe the bug
it sees the directly buffer is not released for every
@fh-ms @fh-ms could you help see this problem? or there is some setting we can do limit the direct memory size. Thank you very much!
java.lang.OutOfMemoryError: Cannot reserve 4096 bytes of direct buffer memory (allocated: 25769800004, limit: 25769803776) at java.base/java.nio.Bits.reserveMemory(Bits.java:178) at java.base/java.nio.DirectByteBuffer.(DirectByteBuffer.java:127) at java.base/java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:360) at one.microstream.memory.XMemory.allocateDirectNative(XMemory.java:1078) at one.microstream.memory.XMemory.allocateDirectNative(XMemory.java:1085) at one.microstream.persistence.binary.types.ChunksBuffer.(ChunksBuffer.java:92) at one.microstream.persistence.binary.types.ChunksBuffer.New(ChunksBuffer.java:56) at one.microstream.persistence.binary.types.BinaryStorer$Default.synchCreateStoringChunksBuffers(BinaryStorer.java:282) at one.microstream.persistence.binary.types.BinaryStorer$Default.internalInitialize(BinaryStorer.java:263) at one.microstream.persistence.binary.types.BinaryStorer$Default.defaultInitialize(BinaryStorer.java:250) at one.microstream.persistence.binary.types.BinaryStorer$Default.(BinaryStorer.java:161) at one.microstream.persistence.binary.types.BinaryStorer$Creator$Default.createLazyStorer(BinaryStorer.java:961) at one.microstream.persistence.binary.types.BinaryStorer$Creator.createStorer(BinaryStorer.java:875) at one.microstream.persistence.binary.types.BinaryStorer$Creator.createStorer(BinaryStorer.java:855) at one.microstream.persistence.types.PersistenceManager$Default.createStorer(PersistenceManager.java:253) at one.microstream.persistence.types.PersistenceManager$Default.store(PersistenceManager.java:300) at one.microstream.storage.types.StorageConnection.store(StorageConnection.java:401) at one.microstream.storage.types.Database$Default.store(Database.java:173)
To Reproduce
user LazyArrayList and write data, remove data by multi threads(200+), the machine has 220G main memory, the jvm heap is set 64G, no other program runs on this machine, the total count of the lazyArrayList item is about 30,000, the total size is about 300M
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
Additional context
Add any other context about the problem here.
The text was updated successfully, but these errors were encountered: