phoenix调优小记

2024-04-02 20:32
文章标签 小记 调优 phoenix

本文主要是介绍phoenix调优小记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

从17年调优到了18年,数据从100机器每天1200万,不到两星期累加到了小2个亿数据。

数据插入和查询效率都很低。

1.5 15:52
0: jdbc:phoenix:localhost:2181> select count(*) from METRIC_RECORD;
+-----------+
| COUNT(1)  |
+-----------+
| 34244885  |
+-----------+
1 row selected (116.131 seconds)大小6g左右。

一。统计数据

17年1228统计数据,数据数目1亿5千万,机器92台,40%入库时间超过10s,3%查询时间超过5s。
17年1229统计数据,数据数目1亿6千万,机器120台,50%入库时间超过10s,10%查询时间超过20s。
18年0102统计数据,数据数目3千万(增加ttl),机器150台,1%入库时间超过500ms,1%查询时间大于1000ms,聚合大部分失效(聚合超时60s)。
18年0103-4region统计数据,数据数目3千万,机器174台,1%入库时间超过500ms,1%查询时间大于1000ms,40%聚合超时60s
18年0103-8region统计数据,数据数目3千万,机器174台,20%聚合超时60s。
18年0104-8region统计数据,数据数目3千万,机器174台,10%入库时间超过2s,10%查询时间超过2s,10%聚合超时60s。
18年0105统计数据,数据数目3千万,机器174台,10%入库时间超过2s,10%查询时间超过2s,。
18年0106统计数据,数据数目3千万,机器174台,1%入库时间超过1s,10%查询时间超过500ms,60s,5%聚合超过60s。
18年0107统计数据,数据数目3千万,机器174台,聚合时间10%大于50s,5%大于60s

二。重大优化点:

1.1229增加ttl,数据会定期失效,减少总的数据量。
2.0102拆分region,初始拆分成4份。
3.0103 18:27再度拆分,拆分成8份。
4.0105 10:30-11:00 迁移regionserver,每台regionsever 4个region,共2台regionserver
5.0105 11:20-11:23 迁移regionserver,每台regionsever 2个region,共4台regionserver
    hadoop069 两个hadoop070 两个hadoop071 两个hadoop072 两个
6. 诡异现象,从0106开始,yarnmetric查询延时从10s降到1s以内;聚合失败率从10%降到了5%以下,甚至更低。
     初步推测为region迁移带来的性能提升。

三。分析:

1.ttl效果明显,数据由线性增长,稳定在3000w(170机器)
2.拆分region,有效降低插入和查询时间。
3.拆分region,可以相对有效减少聚合时间,但还是10%聚合失效,如扩展到500台,压力还是很大。
4.迁移region,减少regionserver压力,0105中午迁移后,插入延时缩减明显,写入压力被有效分散了;但是yarnmetric查询延时还是很高。
5.看了下region的本地化率,因为原来都是hadoop069,所以数据基本都在hadoop069;yarnmetric相关的region被分配到了hadoop071节点,导致本地化率很低,低于1%。

因为yarnmetric数据量较大,且查询方式比较特殊,涉及到跨region查询,所以怀疑本地化率过低导致数据查询缓慢。
再次调整region所在regionserver,将yarnmetric相关region挪回hadoop069,其他指标相关region挪到其他regionserver。
迁移后,yarn相关region本地化率95以上,但是查询速度还是很慢。

四。todo:

1.确认性能提升原因
2.0105 排查到yarnmetric查询因为没有host字段,查询与其他指标查询不一样,

测试结果反映当查询语句包含host is null时,查询速度有近10倍的提升,查询延时500ms。
当查询语句包含host = ”无法查询到有效结果。

此结果

3.rowkey优化,appid过长
4.去掉冗余监控指标

这篇关于phoenix调优小记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/870982

相关文章

JVisualVM之Java性能监控与调优利器详解

《JVisualVM之Java性能监控与调优利器详解》本文将详细介绍JVisualVM的使用方法,并结合实际案例展示如何利用它进行性能调优,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录1. JVisualVM简介2. JVisualVM的安装与启动2.1 启动JVisualVM2

Linux高并发场景下的网络参数调优实战指南

《Linux高并发场景下的网络参数调优实战指南》在高并发网络服务场景中,Linux内核的默认网络参数往往无法满足需求,导致性能瓶颈、连接超时甚至服务崩溃,本文基于真实案例分析,从参数解读、问题诊断到优... 目录一、问题背景:当并发连接遇上性能瓶颈1.1 案例环境1.2 初始参数分析二、深度诊断:连接状态与

jvm调优常用命令行工具详解

《jvm调优常用命令行工具详解》:本文主要介绍jvm调优常用命令行工具的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一 jinfo命令查看参数1.1 查看jvm参数二 jstack命令2.1 查看现场堆栈信息三 jstat 实时查看堆内存,gc情况3.1

mysql线上查询之前要性能调优的技巧及示例

《mysql线上查询之前要性能调优的技巧及示例》文章介绍了查询优化的几种方法,包括使用索引、避免不必要的列和行、有效的JOIN策略、子查询和派生表的优化、查询提示和优化器提示等,这些方法可以帮助提高数... 目录避免不必要的列和行使用有效的JOIN策略使用子查询和派生表时要小心使用查询提示和优化器提示其他常

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

ZOJ Monthly, August 2014小记

最近太忙太忙,只能抽时间写几道简单题。不过我倒是明白要想水平提高不看题解是最好的了。 A  我只能死找规律了,无法证明 int a[50002][2] ;vector< vector<int> > gmax , gmin ;int main(){int n , i , j , k , cmax , cmin ;while(cin>>n){/* g

Codeforces Round #261 (Div. 2)小记

A  XX注意最后输出满足条件,我也不知道为什么写的这么长。 #define X first#define Y secondvector<pair<int , int> > a ;int can(pair<int , int> c){return -1000 <= c.X && c.X <= 1000&& -1000 <= c.Y && c.Y <= 1000 ;}int m

2014 Multi-University Training Contest 8小记

1002 计算几何 最大的速度才可能拥有无限的面积。 最大的速度的点 求凸包, 凸包上的点( 注意不是端点 ) 才拥有无限的面积 注意 :  凸包上如果有重点则不满足。 另外最大的速度为0也不行的。 int cmp(double x){if(fabs(x) < 1e-8) return 0 ;if(x > 0) return 1 ;return -1 ;}struct poin

2014 Multi-University Training Contest 7小记

1003   数学 , 先暴力再解方程。 在b进制下是个2 , 3 位数的 大概是10000进制以上 。这部分解方程 2-10000 直接暴力 typedef long long LL ;LL n ;int ok(int b){LL m = n ;int c ;while(m){c = m % b ;if(c == 3 || c == 4 || c == 5 ||

2014 Multi-University Training Contest 6小记

1003  贪心 对于111...10....000 这样的序列,  a 为1的个数,b为0的个数,易得当 x= a / (a + b) 时 f最小。 讲串分成若干段  1..10..0   ,  1..10..0 ,  要满足x非递减 。  对于 xi > xi+1  这样的合并 即可。 const int maxn = 100008 ;struct Node{int