首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动物园管理员zk_max_latency是如何计算的?

动物园管理员zk_max_latency是如何计算的?
EN

Stack Overflow用户
提问于 2019-03-22 15:14:53
回答 2查看 2.1K关注 0票数 1

嗨我刚从我的动物园管理员那里取了一些数据..。

如您所见,zk_max_latency相当高。但这是它曾经达到的最大值,还是始终是当前值?

代码语言:javascript
复制
echo mntr | nc localhost 2181
zk_version  3.4.13-2d71af4dbe22557fda74f9a9b4309b15a7487f03, built on 06/29/2018 04:05 GMT
zk_avg_latency  0
zk_max_latency  4738
zk_min_latency  0
zk_packets_received 2387852
zk_packets_sent 2387928
zk_num_alive_connections    29
zk_outstanding_requests 0
zk_server_state follower
zk_znode_count  7973
zk_watch_count  74
zk_ephemerals_count 22
zk_approximate_data_size    12356979
zk_open_file_descriptor_count   62
zk_max_file_descriptor_count    16384
zk_fsync_threshold_exceed_count 2
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-26 06:03:26

zk_max|avg|min_latency度量是从ZK服务器启动开始计算的。

mntr命令由MonitorCommand处理,它从ZooKeeperServer.serverStats.requestLatency查询max/avg/min请求指标

代码语言:javascript
复制
ZKDatabase zkdb = zkServer.getZKDatabase();
ServerStats stats = zkServer.serverStats();

print("version", Version.getFullVersion());

print("avg_latency", stats.getAvgLatency());
print("max_latency", stats.getMaxLatency());
print("min_latency", stats.getMinLatency());

ServerStats.java

代码语言:javascript
复制
// getters
public long getMinLatency() {
    return requestLatency.getMin();
}

public double getAvgLatency() {
    return requestLatency.getAvg();
}

public long getMaxLatency() {
    return requestLatency.getMax();
}

请求延迟在ServerStats.updateLatency()上更新。核心实现类是AvgMinMaxCounter

代码语言:javascript
复制
public void updateLatency(Request request, long currentTime) {
    long latency = currentTime - request.createTime;
    if (latency < 0) {
        return;
    }
    requestLatency.addDataPoint(latency);
    if (request.getHdr() != null) {
        // Only quorum request should have header
        ServerMetrics.UPDATE_LATENCY.add(latency);
    } else {
        // All read request should goes here
        ServerMetrics.READ_LATENCY.add(latency);
    }
}
票数 3
EN

Stack Overflow用户

发布于 2019-06-24 12:46:30

zk_max_latency:此ZooKeeper服务器以毫秒为单位处理请求的最长时间。

不,这是自上次重新启动ZooKeeper服务器以来测量的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55302730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档