Kyligence AI 服务 - 让大模型完成准确、可靠的数值计算和回答! 立即了解更多
AI 数智助理
Kyligence Zen Kyligence Zen
Kyligence Enterprise Kyligence Enterprise
Kyligence Turbo Kyligence Turbo
指标平台解决方案
OLAP 解决方案
行业解决方案
客户总览
金融
零售
制造
医药
其他
云平台
BI
寻求合作
资源
Kyligence Enterprise
Kyligence Zen
培训
Apache Kylin
Byzer
Gluten
博客
关于
市场活动
作者 | 苏志锋
苏志锋,中国建行银行厦门开发中心工程师,主要从事建行金融大数据服务平台的建设。
多维数据分析的过程,是指数时间复杂度的立方体计算过程。因此,多维分析系统是 CPU 和 Memory 密集型系统。
本文介绍了影响 Mondrian 非功能指标的几个典型问题,主要包括:资源异常使用问题、资源未被充分使用问题、线程死锁问题、长时间占用资源问题、热点方法问题等。
01 资源异常使用问题
现象:当并发数超过系统最大查询线程池的处理能力时,触发流量控制,系统直接返回超出处理能力异常。但是,存在一种场景,即并发数瞬间增大,持续一段时间之后,停止发送请求,却存在一段时间的 CPU 空跑时间,在此期间并没有新的请求,并且 CPU 空跑时间的长短与并发持续时间成正比。
原因:对于每个请求,系统生成一个执行任务,并将执行任务添加到执行任务列表和执行线程池。超出流量控制的请求不会被添加到执行线程池,却被添加到了执行任务列表。从而造成执行任务引用的对象,需要等待其生命周期结束后才能被释放,造成了内存浪费,并且增加了执行任务列表的循环执行开销。原代码如下:
tasks.add(pair);
try {
executor.execute(task);
return task.get();
} catch (Throwable e) {
解决:对于超出流量控制的请求,不添加到执行任务列表。修改后的代码如下:
02 资源未被充分使用问题
现象:随着并发用户数的增大,CPU 维持在 10% 以下,TPS 明显偏低。
原因:系统中 SchemaPool,MonitorMap,MemberReader 等相关实现代码,存在着大量的临界区操作,造成了资源争用和线程等待。
解决:改造成读写锁,或者修改实现方式,提升系统吞吐量。
03 线程死锁问题
现象:存在某一次的清理 Segment 缓存操作,导致系统无法处理任何请求。
原因:系统将与 Segment 相关的操作命令,比如添加,更新,删除等操作命令,添加到一个执行队列。如果清理 Segment 缓存的命令,对 SchemaPool 加锁后,被添加到执行队列,因为其不在队列头而无法执行;与此同时,队列头的命令要运行,必须获取 SchemaPool 锁,则队列头命令等待,从而造成死锁。
解决:清理 Segment 缓存操作命令不再加入执行队列,直接执行,避免获取锁之后,被放入队列,而又无法立即执行,使正在执行的操作命令无法获取锁的情况。
04 长时间占用资源问题
现象:每个 MDX 查询都设置了最大执行时间,但是,存在查询,其执行时间明显超过最大执行时间,程序却并没有报告超时异常,长时间占用 CPU 和内存资源。
原因:一个 MDX 查询可能需要多次 SQL 查询,或者除了 SQL 查询之外,还需要大量的内存计算。系统在每个 SQL 执行前做超时检查,却没有给 SQL 执行设置最大执行时间,因此,存在 QL 执行时间超时,却没有被取消的情况。
解决:动态计算并设置 SQL 的最大执行时间。代码如下:
statement.setQueryTimeout(queryTimeout);
05 热点方法问题
现象:在压力测试中,成员的 getName方法占据超过 40% 的 CPU 资源。
原因:getName 是一个被高频调用的方法,但是,其内部实现却有一段临界区计算。
解决:成员名称在主题加载之后就不会变化,因此,定义成员名称为私有变量,主题加载之后第一次调用给变量赋值,此后调用直接返回变量值。类似的还有系统的 Properties 配置项,采用了 HashTable 加上动态计算的实现方式,影响了系统的非功能指标,改造成 Zookeeper 加本地缓存的实现方式。
本文介绍了几个影响 Mondrian 非功能指标的典型问题。其实,除了从技术角度解决 Mondrian的 非功能问题外,少用 strToSet、strToMember 等函数,甚至简单修改业务实现思路,有时候会事半功倍。
近年来,随着商业环境的竞争日益激烈,企业对于实时数据服务的需求急剧增加。Kyligence 在服务众多客户的过
数据要素在银行各业务领域和流程中发挥着至关重要的作用,面对激烈的市场竞争和客户需求,银行越来越注重从数据管理中
作为一名消费者,炎热的夏天我们会走进一家便利店,从冰柜中选出一瓶汽水;下午工作有点累了,我们会在公司的自动贩卖
2024 年伊始,Kyligence 联合创始人兼 CEO 韩卿(Luke)分享了对 AI 与数据行业的一些战
房地产行业是我国国民经济中的重要支柱产业之一,在房地产市场供求关系发生重大变化的当下,房企面临多重挑战。Kyl
今年年初,Kyligence 高级副总裁兼合伙人葛双寅(Silas Ge)受邀在阿斯利康“跃行致远三十周年年会
2024 年伊始,Kyligence 联合创始人兼 CEO 韩卿在公司内部的飞书订阅号发表了多篇 Rethin
400 8658 757
工作日:10:00 - 18:00
已有账号? 点此登陆
预约演示,您将获得
完整的产品体验
从数据导入、建模到分析的全流程操作演示。
行业专家解惑
与资深行业专家的交流机会,解答您的个性化问题。
请填写真实信息,我们会在 1-2 个工作日内电话与您联系。
全行业落地场景演示
涵盖金融、零售、餐饮、医药、制造等多个行业,最贴合您的业务需求与场景。
Data + AI 应用落地咨询
与资深技术专家深入交流,助您的企业快速落地 AI 场景应用。
立即预约,您将获得
精准数据计算能力:
接入高精度数值计算大模型服务,为您的企业级AI应用提供强大支持。
个性化业务场景解决方案:
量身定制的计算模型和数据分析服务,切实贴合您的业务需求和应用场景。
Data + AI 落地应用咨询:
与资深专家深入探讨数据和 AI 如何帮助您的企业加速实现应用落地,构建更智能的数据驱动未来。
申请体验,您将获得
体验数据处理性能 2x 加速
同等规模资源、同等量级数据、同一套数据处理逻辑,处理耗时下降一半
专家支持
试用部署、生成数据、性能对比各操作环节在线支持