Background: We are working on evaluating hazelcast which can act as an alternative of Redis.
Setup :
- 3 members in a cluster under a single subnet (production boxes). Each member has ~1.4GB of data.
- Near caching is off.
- Each member has 1 backup.
- Code deployed by preparing a spring boot jar and cache is implemented as embedded one.
- VM config : 8C, 31GB RAM
- code uses IMAP to retrieve and put the keys in the cache.
LoadTest : Attempted 18K/s rest API calls to read the data.
But hazelcast is showing avg get latency of around 3-4ms which I feel should be in microsecond as we have been already seeing that much of get command latency with redis setup.
CPU Load was ~95% during this test.
A member which gave this latency has heap usage of ~60% (committed: 7.85GB, used: 4.68GB). It is though with all the members in the cluster.
Need help to understand that is my configuration somewhere wrong, because of which I am NOT able to achieve get latency in microseconds?
Config for starting embedded cache:
config.addMapConfig(mapConfig());
NetworkConfig networkConfig = config.getNetworkConfig();
JoinConfig join = networkConfig.getJoin();
join.getMulticastConfig().setEnabled(false);
join.getTcpIpConfig().setEnabled(true).setMembers(
Arrays.asList(
"ip1:5701",
"ip2:5701",
"ip3:5701"
)
);
return config;```
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…