我有两个运行社区版本的Aerospike集群-
服务器具有以下组合的旧群集-
在磁盘中存储数据+ i2.2xlarge实例+ Aerospike构建版本3.8.2.3
服务器具有以下组合的较新集群-
在内存中存储数据+ r3.4xlarge实例+ Aerospike构建版本3.14.1.1 +使用分区树小枝
我想比较它们的服务器端延迟和超时。
我通过以下命令启用了Aerospike内置的石棉守护进程-
python /opt/aerospike/bin/asgraphite --start --prefix aerospike.stats -g <URL> -p <port>
我在石墨控制台中看不到针对旧集群的延迟统计信息(请参见屏幕截图中的突出显示)-
另外,我对于应该考虑哪个延迟统计信息感到困惑。
以下统计信息适用于较旧的群集-
Metric Value observed on one node
batch_index_timeout 0
batch_timeout 0
err_tsvc_requests_timeout ~80K
stat_rw_timeout ~500K
批处理统计信息显示为0,正如预期的那样,因为我们没有进行任何批查询。高于3.9的新群集没有
err_tsvc_requests_timeout
和stat_rw_timeout
指标。The relevant manual page of aerospike针对已过时的指标进行提及-
从3.9版开始,请参考名称空间中的更具体的统计信息
水平。
不知道是那些。
开放赏金
metrics reference manual针对指标
stat_rw_timeout
提及-从3.9版开始,请参考名称空间中的更具体的统计信息
水平。
我希望对石墨Web控制台中的名称空间值也能体现出同样的效果,但是我所能看到的只是以下内容-ops_per_sec,over_1ms,over_64ms等。
所以,基本上我现在正在寻找两件事-
某些统计信息/指标移到名称空间级别的确切含义。如何在石墨Web控制台中查看它,完全可以看到它。
有关在两个版本中选择适当的延迟和超时指标的更多指示。我正在研究通过PHP客户端API函数读写Aerospike缓存键的常见用例-
Aerospike-> get()
Aerospike-> put()
更新2
超时-最后,我能够在新的构建版本中找到与重组的超时相关的参数,如答案https://stackoverflow.com/a/45244090/351903中所述。
但是,值client_write_timeout等是累积性的,很难在群集之间进行比较,因为日志记录可能早于群集之一开始的。最好有一个瞬时超时指标。
更新3
延迟-由于我没有在低于3.9的构建版本的石墨Web控制台中获得延迟统计信息,因此我计划使用asloglatency并将统计信息转储到两个构建版本的石墨服务器。
为了以图形方式统一比较延迟,我计划-
设置一个cron,每5分钟运行一次。
运行asloglatency命令以收集2分钟持续时间的以下延迟统计信息,两个版本的最近5分钟开始-
-%的平均值大于1毫秒,8毫秒和64毫秒以及每秒操作数。
最大值-%大于1 ms,8和64 ms和每秒的操作数。
版本> 3.9的Asloglatency命令
asloglatency -N FC -h write -f -0:05:00 -d 0:60:00
asloglatency -N FC -h read -f -0:05:00 -d 0:60:00
版本<3.9的命令
asloglatency -h writes_master -f -0:05:00 -d 2:00
asloglatency -h reads -f -0:05:00 -d 2:00
注意-我通过运行asgraphite命令获得了新构建的延迟统计信息-
python /opt/aerospike/bin/asgraphite --start -g <domain> -p <port>
但是我不确定在石墨控制台的
{HOSTNAME}.latency
下新建时会记录上述哪些统计信息-平均或最大值。在指标参考手册中找不到相同的任何文档。另外,对于旧版本,上述命令在石墨控制台中未显示延迟状态。
希望使用asloglatency导出的统计信息在两个构建版本中是统一的。
通过公开赏金-寻找确认是否可行/将是我尝试找出/指出更简便的方法的最佳方法。
更新4
1.超时
通过在通过记录
stat_rw_timeout
获得的图上应用derived(),我能够在旧版本上获得瞬时超时-http://<domain>/render?width=1700&from=-6h&until=now&height=900&target=derivative(aerospike.old_statsip-10-146-210-31.service.stat_rw_timeout)&title=old_latency_cumulative_derivative&hideLegend=false&_salt=1367201670.479&yMax=&_uniq=0.985620767407021
但是,即使
client_read_success
显示值,新构建的超时也始终显示0-2.延迟
看起来下面的asgraphite命令在两个构建版本中都记录了延迟,因此我将不需要使用Update 3中提到的asloglatency来完成所有这些工作-
python /opt/aerospike/bin/asgraphite -l 'latency:' --start --prefix aerospike.temp.old_trial1 -g <graphite server domain> -p <port>
我监视的值是-
新建-
aerospike.temp.new_trial2ip-10-13-215-20.latency.FC.read.over_1ms
aerospike.temp.new_trial2ip-10-13-215-20.latency.FC.write.over_1ms
旧版本-
aerospike.temp.old_trial1ip-10-182-71-216.latency.reads.over_1ms
aerospike.temp.old_trial1ip-10-182-71-216.latency.writes_master.over_1ms
这是从图中观察到的结果-
新版本的读取延迟-始终为0。
在新版本上写入延迟-仅一个峰值,否则始终为0。
对旧版本的读写延迟-一致的数据。
更新5
我只想让我比较正确的度量标准,以跨构建版本比较延迟和超时。有人可以指出我一些与之相关的文档吗?
延迟-我已经提到了我在上面的更新4中比较的值。以下是石墨网络控制台中的层次结构-
超时-度量参考手册中没有直接提及
stat_rw_timeout
在3.9版中分为client_read_timeout
和client_write_timeout
的情况。有人可以确认吗?我有上述担忧/疑问,因为我的观察结论如下:
最佳答案
如您所述,最好的资源是Aerospike文档的“部署”部分中的metrics reference manual。找到较旧的,已弃用的统计信息,该说明将告诉您什么是等效的release 3.9度量标准。
Stats and Benchmark Migration Guide for the 3.9 Release详细介绍了不同的统计信息。
专门针对延迟,Histograms from Aerospike Logs具有3.9之后的延迟直方图的细分,而pre-3.9 latency histograms在另一篇文章中。
关于performance - 如何在两个版本不同的Aerospike群集3.8和3.14之间比较服务器端的延迟和超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45236853/