engcoder
hello,
I test load on lightstreamer by opening a client application many times say 500 client app. Each client app opens a connection to LS and subscribes for many items. most of the subscribes is of MERGE type and some of COMMAND type.
the problem is that when the load done, the lightstreamer stopped working and the Heap on the server arrives 6 GB and more.
i also notice that when i do the clients subscribes of type MERGE , the problem not occurs. but when the subscribe of type COMMAND done many times on many clients on the same time, the problem occurs.
Giuseppe Corti
Hi Engcoder,
Please consider that if the Items subscribed in COMMAND mode involve a very large snapshot, such as an Item with a huge number of associated keys and/or with very large fields, a significant memory consumption should be expected.
Nevertheless you should be able to determine whether this consumption is appropriate to the size of the snapshot or abnormal.
For example, did you observe some regular pattern in memory consuption, ie. linear growth of consumed memory with the number of COMMAND subscriptions?
Furthermore, please could you confirm if you are using Java in-process Adapters, in this case you should investigate also your Adapters code since the heap memory is shared.
As a last resort you may consider to perform a heap dump during a crisis.
HTH,
Giuseppe
engcoder
hi Giuseppe,
the growth of memory due to the increase of clients they subscribe in COMMAND mode. the data returned from the COMMAND subscribe are at max. 8000 rows each row of 5 fields.
Giuseppe Corti
Hi engcoder,
I confirm that for the the specific nature of the COMMAND mode, the Lightstreamer server needs to keep in memory a snapshot of the Item for each client.
In your case, could 8000 * <estimate size for row> * 500 justify 6GB?