*DataRegionMetrics#getPhysicalMemoryPages()*, that I mentioned in my previous message, will give you the closest approximation of off-heap memory, used by Ignite.
Denis пн, 5 мар. 2018 г. в 9:59, Emma Support <[email protected]>: > hi Denis, Thanks for the reply. I would like to ask is it possible to > monitor the off-heap memory? or check its size easily? > > 2018-03-05 14:52 GMT+08:00 Denis Mekhanikov <[email protected]>: > >> Hi! >> >> Ignite 2.0 and newer uses off-heap memory. VisualVM shows only consumed >> Java heap, but main part of memory consumption lays outside of it. >> You can approximate consumed off-heap memory by using >> *DataRegionMetrics#getPhysicalMemoryPages() >> *and multiplying it by page size (4KB by default since Ignite 2.2). >> Documentation on memory metrics: >> https://apacheignite.readme.io/v2.3/docs/memory-metrics >> >> Also JVM always allocates memory in advance, so you can see more memory >> used, than the heap size, even if an application doesn't use off-heap. >> >> Denis >> >> пн, 5 мар. 2018 г. в 6:18, Emma Support <[email protected]>: >> >>> I have an Ignite Server with below config: >>> >>> JAVA_OPTS="-server -Xms1024m -Xmx4096m -XX:NewSize=64m >>> -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1024m -XX:+UseParNewGC >>> -XX:+UseConcMarkSweepGC" >>> >>> everyday when I check it using VisualVM, it is healthy, total RAM usage >>> is below 4G, 2G Heap, 1G Metaspace >>> However, when it goes to top command in Linux, it shows >>> >>> PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND >>> 6245 appuser 18 0 14.1g 10g 14m S 235.7 12.9 28495:30 java >>> >>> the RES is 10G >>> >>> >>> When I try pmap command, it shows: >>> ] >>> 00002ba44a07c000 12156 8320 8320 rw--- [ anon ] >>> 00000007c0000000 8448 8328 8328 rw--- [ anon ] >>> 00002ba55c000000 31336 11416 11416 rw--- [ anon ] >>> 00002ba43e18b000 12552 12552 12552 rw--- [ anon ] >>> 00002ba514000000 39740 28224 28224 rw--- [ anon ] >>> 00002ba4b4000000 45196 42244 42244 rw--- [ anon ] >>> 00002ba444000000 88516 55796 55796 rw--- [ anon ] >>> 00002ba440000000 62832 61472 61472 rw--- [ anon ] >>> 00002ba450000000 65536 63620 63620 rw--- [ anon ] >>> 00002ba42ddc3000 78720 78312 78312 rwx-- [ anon ] >>> 0000000014e22000 147512 140804 140804 rw--- [ anon ] >>> 00002ba457f73000 305160 265000 265000 rw--- [ anon ] >>> 00002ba4b8000000 305160 265000 265000 rw--- [ anon ] >>> 00000006c0000000 681536 681536 681536 rw--- [ anon ] >>> 00002ba518c0a000 1081300 1081296 1081296 rw--- [ anon ] >>> 00002ba4ccf29000 1082316 1081400 1081400 rw--- [ anon ] >>> 00002ba46d299000 1082316 1081452 1081452 rw--- [ anon ] >>> 00000006e9990000 2212044 2212044 2212044 rw--- [ anon ] >>> 00002ba560000000 4325200 3291688 3291688 rw--- [ anon ] >>> >>> >>> is this normal? >>> >>> My use case: >>> I have a thead keep updating the storage (100000 entries) every seconds >>> then another thread use the data to do some calucation and update >>> another map every minute >>> >>> Thanks! >>> >>> >>> >
