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

相关文章

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

JVM内存调优原则及几种JVM内存调优方法

JVM内存调优原则及几种JVM内存调优方法 1、堆大小设置。 2、回收器选择。   1、在对JVM内存调优的时候不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况,因为GC过后这个值是不会变化的,因此内存调优的时候要更多地使用JDK提供的内存查看工具,比如JConsole和Java VisualVM。   2、对JVM内存的系统级的调优主要的目的是减少

Linux系统性能调优详解

前言 在服务器运维和管理中,Linux系统的性能调优是确保服务稳定性和响应速度的关键。通过对系统进行细致的调优,可以显著提升处理能力,优化资源利用率。本文将详细介绍Linux性能调优的多个方面,包括系统监控、磁盘优化、内存管理、网络配置等,并提供实用的技巧和工具。 简介 Linux性能调优是一个涉及多个层面的复杂过程,旨在确保系统资源得到最佳利用,从而提高整体性能和响应速度。 调优实践

高性能计算应用优化之代码实现调优(一)

本章将介绍代码实现过程中使用到的调优方法。在软件开发早期,开发者更多关注代码功能的实现,对代码的性能关注较少,随着代码规模增加,不合理的代码实现方法所带来的性能包袱逐渐凸显。因此,需要对原有代码实现进行优化,如修改不合理的访存顺序,使代码更易于被编译器优化等。 浮点数运算 浮点数运算是科学计算中开销最大的部分之一,特别是双精度除法,合理地设计实现浮点数运算环节可以显著提高程序的性能。 由于单

经验笔记:SQL调优

SQL调优经验笔记 引言 SQL调优是确保数据库系统高效运行的重要环节。通过对查询语句、数据库配置、硬件资源等方面进行优化,可以显著提升数据库性能,进而增强应用程序的整体表现。以下是基于常见调优手段和实践经验整理的一份经验笔记。 1. 查询语句优化 1.1 避免使用SELECT * 只选择需要的列,减少不必要的数据传输。 示例: -- 不推荐SELECT * FROM users WH