Java getResource占用的延迟太多
我有一个函数来创建一个卷轴Java getResource占用的延迟太多,java,redis,jedis,redis-cluster,redisclient,Java,Redis,Jedis,Redis Cluster,Redisclient,我有一个函数来创建一个卷轴 final JedisPoolConfig poolConfig = new JedisPoolConfig(); poolConfig.setMaxTotal(25); poolConfig.setMaxIdle(20); poolConfig.setMinIdle(20); poolConfig.setTestOnBorrow(false); poolConfig.setTestOnCreate(true);
final JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxTotal(25);
poolConfig.setMaxIdle(20);
poolConfig.setMinIdle(20);
poolConfig.setTestOnBorrow(false);
poolConfig.setTestOnCreate(true);
poolConfig.setTestOnReturn(true);
poolConfig.setTestWhileIdle(false);
poolConfig.setMinEvictableIdleTimeMillis(-1);
poolConfig.setTimeBetweenEvictionRunsMillis(-1); // don't evict
poolConfig.setNumTestsPerEvictionRun(-1);
poolConfig.setBlockWhenExhausted(false);
poolConfig.setLifo(false);
return poolConfig;
我正在使用下面的命令从池中获取客户端。我发现从池中获取客户机时,有时甚至在100-500毫秒,有时在30毫秒,都会有很高的延迟。我正在使用52个rps进行测试,配置为20个空闲连接和25个最大连接。。能够处理约600转/秒。。知道是什么导致延迟吗?在池级别是否有任何调整需要验证
Instant instant = Instant.now();
Instant getFromPool = null;
try (final Jedis jedis = jedisPool.getResource()){
getFromPool = Instant.now();
}
您可以在池中使用以下方法检查等待线程和最大等待时间
jedisPool.getNumWaiters();
jedisPool.getMaxWaitTimeMillis()
但我认为网络层有问题