Client App Object Allocation Rate

classic Classic list List threaded Threaded
3 messages Options
ssansoy ssansoy
Reply | Threaded
Open this post in threaded view
|

Client App Object Allocation Rate

Hi, we are moving away from a legacy (in house) distributed cache solution to
ignite, and are doing some profiling of new app vs old app behaviour before
we go live.

One thing we have noticed, is that the object allocation rate is higher in
the version of the app running with the ignite client (about 6kb/sec). We'd
like to understand what might be causing this, and if there are any features
within our client app we can turn off if they are not needed.

Some basic poking around has shown we get a lot of
TcpDiscoveryMetricsUpdateMessage instances being created, as well as what
look like other discovery spi related objects. Are these needed on the
client side?

Is there documentation somewhere on what sorts of things are being created
in the client side (a basic app which has issued a single continuous query,
running in client mode) and what they are needed for - and if there are any
parameters to control them?

Thanks
Sham



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
akorensh akorensh
Reply | Threaded
Open this post in threaded view
|

Re: Client App Object Allocation Rate

Hi,
  There is no documentation per se which states whether/how many objects are
allocated in memory as
  this varies as new builds/versions are released.
   
  That being said, you can control the load/throughput/memory/enabled
feature set/etc.., and therefore manage object allocation indirectly.
  For example, you have the option of turning metrics on or off for specific
caches or data regions.

   see:
https://apacheignite.readme.io/docs/cache-metrics#enabling-cache-metrics
   and: https://apacheignite.readme.io/docs/memory-metrics

   This would change the number/frequency of metric related discovery
messages you mentioned.

    There are also a variety of optimizations you could make to make Ignite
perform faster
    see: https://apacheignite.readme.io/docs/jvm-and-system-tuning 
     https://apacheignite.readme.io/docs/durable-memory-tuning
     https://apacheignite.readme.io/docs/performance-tips
     https://apacheignite.readme.io/docs/preparing-for-production

   Here you are able to set the various memory and persistence related
parameters used by Ignite,
   and thereby tune your app to your use-case.
 
   If you concerned w/object allocation, the best advice is to look into
various high performance garbage
   collectors available like
shenandoah(https://wiki.openjdk.java.net/display/shenandoah/Main)
   and Azul. See this blog post describing how Ignite and Azul Zing JVM are
used together to power low-latency use cases:
https://www.azul.com/igniting-in-memory-performance-with-gridgain-and-zing/
   

Thanks, Alex
 




--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
ssansoy ssansoy
Reply | Threaded
Open this post in threaded view
|

Re: Client App Object Allocation Rate

Thanks! I will have a read through



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/