快手主站性能优化实践.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

快手主站性能优化实践

目录发现性能问题性能优化案例性能持续分析总结

发现性能问题火焰图C/C++:perf+FlameGraphJAVA:AsyncprofilerNode:0XPython:py-spyGo:pprof微架构分析TopDownmicroArchitectureanalysisvtune

目录发现性能问题性能优化案例性能持续分析总结

性能优化案例protobuf解析优化01kafkastickypartition优化透明大页优化0203

优化案例1-protobuf解析优化客户端日志上传日志使用pb编码解析pb消耗大量CPU解析protobuf的cpu开销

优化案例1-protobuf解析优化Pb复杂,嵌套层级深日志服务是中转,并不关心数据内容在CommonParams里填充服务端数据根据event类型转发Pb部分解析?精简日志pb定义

优化案例1-protobuf解析优化Schema迭代,前向兼容无法实现按照事件类型分流!

优化案例1-protobuf解析优化+手动解析Pb编码格式

优化案例1-protobuf解析优化+Message和bytes编码一致Pb值编码解析开销优化70%

优化案例2–kafka发送优化+kafkasender线程cpu使用率Sendr线程的核心遍历逻辑Isa-l高性能压缩库客户端日志上传使用kafka作为消息中间件发送kafka消耗大量

优化案例2–kafka发送优化topicQpm(单节点)CPU消耗topicA10K高topicC16.52K低反常现象一些topicQPS更高,但CPU消耗更低

优化案例2–kafka发送优化Kafkaclient基本原理消息随机发送每个partition都有一个消息的batch队列队列由多个RecordBatch构成RecordBatch由多个消息构成sender线程负责异步将消息发送到broker不指定消息的分区,使用RR算法随机选择一个partiton发送

优化案例2–kafka发送优化随机发送场景的lingerSender核心代码猜测:遍历分散的partiton性能较差罪魁祸首:消息随机发送场景的linger思考:kafka是如何保障消息延迟的?linger机制:一个消息在队列中最长存在多长时间

优化案例2–kafka发送优化方案1:修改client,对齐定时器周期方案2:每个client只发送一部分

优化案例2–kafka发送优化方案3:kafka粘性分区,短时间内尽量发送相同的

优化案例2–kafka发送优化测试条件: Linger.ms=1000;partition=16;qps=10

优化案例3–透明大页优化微架构分析VtuneprofilerPerf显示itlbmiss高达72.78%

优化案例3–透明大页优化虚拟内存到物理内存映射四级页表虚拟内存技术面向虚拟内存编程映射关系存在于页表中64位系统广泛使用四级页表

优化案例3–透明大页优化访存过程Inteli76700(Skylake)Cpu发出虚拟地址查询TLB未命中查询内存中的页表Intelskylake的cpu参数

优化案例3–透明大页优化HUGEPAGE:操作系统先预留大页,并使用特殊的mmap使用Kubelet不会自动更新cgroup的配额Jdk的min和max内存配置不适用于hugeTLB监控指标需要完善THP(透明大页)无需预留大页,由内核动态将小页合并成大页软件兼容性好可能带来一定内存申请延迟HugeTLBTHP

优化案例3–透明大页优化JAVA服务:-XX:+AlwaysPretouch堆内配置Max和Min相等堆外开启THPC++服务避免pagecache影响先使用小页分配所有可用内存,挤出pagecache再分配所有的大页,加快规整效率

目录性能持续分析总结发现性能问题性能优化案例

性能持续分析性能劣化案例优化痛点:肉眼对比火焰图,难以发现细微劣化,效率不高定期优化,无法第一时间发现潜在性能隐患沉淀不强,难以提升研发整体性能意识真实案例:基础组件劣化导致全集群性能劣化10%+

性能持续分析设计目标:持续收集开销低自动分析diff及时触达用户

性能持续分析数据采集InstrumentBased:JVMTIagentSampleBased:Perf+perf-map-agentAsyncprofiler数据格式JFR采样模式触发方式Signal特点ITimersetitimer(syscall)SIGPROF进程维度,信号频繁,可能丢失PerfEventsperf_event_open(syscall)SIGPR

文档评论(0)

优选文档 + 关注
实名认证
文档贡献者

专注于发布优质文档,喜欢的可以关注一下哦~

1亿VIP精品文档

相关文档