用户画像系列——在线服务调优实践

这篇具有很好参考价值的文章主要介绍了用户画像系列——在线服务调优实践。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前面文章讲到画像的应用的几个方面,其中画像的在线服务应用主要是在推荐场景、策略引擎场景,这两部分场景都是面向线上的c端服务。

推荐场景:根据不同的用户推荐不同的内容,做到个性化推荐,需要读取画像的一些偏好数据,推荐感兴趣的内容。

策略引擎:根据用户的属性进入到不同的页面或者给出不同的策略,比如:普通用户访问不了淘宝的奢侈品入口,北京的活动只能北京用户参加。

所以能看到画像的在线服务的业务要求,流量大、对于耗时敏感(上万或者几十万的QPS、要求在毫秒内返回结果)。

目前业界对于这种c端大流量的服务基本上是采用Redis对数据进行存储,提供对外访问。

下面是画像服务在实际线上遇到的一些问题以及问题定位和处理思路:

(1)遇到的问题——流量高峰期耗时波动有毛刺、full gc 过于频繁

流量高峰期,经常出现耗时波动,观察gc情况,发现GC过于频繁(2天左右一次full gc)

机器配置:4c 8g

jvm参数配置:-Xms6g -Xmx6g -XX:NewRatio=2 -XX:+UseParallelGC -XX:ParallelGCThreads=4 -XX:+PrintGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:GCLogFileSize=50M -XX:NumberOfGCLogFiles=10 -XX:+UseGCLogFileRotation -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/online-server/logs -Xloggc:/data/online-server/logs/gc.log

单台容器 qps高峰在 600-800

用户画像系列——在线服务调优实践

(2)优化方案一

机器配置:8c 16g

jvm参数:-Xms14g -Xmx14g -XX:NewRatio=2 -XX:+UseParallelGC -XX:ParallelGCThreads=4 -XX:+PrintGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:GCLogFileSize=50M -XX:NumberOfGCLogFiles=10 -XX:+UseGCLogFileRotation -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/online-server/logs -Xloggc:/data/online-server/logs/gc.log

Full gc:4天一次

但是Survivor 区非常小:只有13M 原因参考 https://zhuanlan.zhihu.com/p/148604647

用户画像系列——在线服务调优实践
用户画像系列——在线服务调优实践

(3)优化方案二

机器配置:8c 16g

jvm参数:-Xms14g -Xmx14g -XX:NewRatio=2 -XX:+UseConcMarkSweepGC -XX:+PrintGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:GCLogFileSize=50M -XX:NumberOfGCLogFiles=10 -XX:+UseGCLogFileRotation -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/online-server/logs -Xloggc:/data/online-server/logs/gc.log

Survivor :478M

用户画像系列——在线服务调优实践
用户画像系列——在线服务调优实践

(4)优化方案三

机器配置:8c 16g

jvm:-Xms14g -Xmx14g -XX:NewRatio=1 -XX:+UseConcMarkSweepGC -XX:ParallelGCThreads=4 -XX:+PrintGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:GCLogFileSize=50M -XX:NumberOfGCLogFiles=10 -XX:+UseGCLogFileRotation -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/online-server/logs -Xloggc:/data/online-server/logs/gc.log

提升新生代大小,主要是查询服务的数据中含有很大的对象数据,短暂使用即可回收,不会常驻。

最终优化之后,full gc 维持在1周一次,但是仍然有接口耗时毛刺。

第二步:利用Arthas接口优化实践

核心逻辑主要是从Redis中里面读数据+同时根据权限解析响应有权限的标签返回,下面是利用Arthas对接口的好是分析和较高耗时的时候传递的参数的分析

用户画像系列——在线服务调优实践
用户画像系列——在线服务调优实践
用户画像系列——在线服务调优实践

最终查看这部分耗时较高的id主要是value值数据量非常庞大,导致从Redis读取+解析耗时非常严重甚至达到秒级,虽然最终返回的结果数据不算太大,但是读取和解析耗时非常严重

从调优来看,虽然能通过增大机器资源4c 8g——8c 16g,同时通过调整jvm参数让full gc 能够达到一周一次,但是对于接口波动还是存在问题,主要原因就是某些id对应的value值较大,所以读取和解析耗时严重,因此最终方案应该考虑去对value进行拆分存储,避免一次性取出来过大的数据,将常用数据和非常用数据进行拆分。

本文分析通过调整jvm参数以及利用Arthas进行分析接口耗时情况来进行定位在线服务问题。
博客地址:https://zgzf.online/

本文由博客一文多发平台 OpenWrite 发布!文章来源地址https://www.toymoban.com/news/detail-818873.html

到了这里,关于用户画像系列——在线服务调优实践的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 文档在线预览(五)在服务器部署组件来实现在线预览

    关于在线预览的实现方案除了之前说的转图片、html、pd以及利用前端组件以外方式,还有就是在服务器端引入一些开源或者商用的组件来实现在线预览的实现方案。通过这次的调研找到了kkfileview、OnlyOffice、office online server、Libre Office Online、Collabora Online等五种组件,接下来我

    2024年02月10日
    浏览(74)
  • tcp服务端,时刻在线

    C++ TCP 服务端和客户端通信的例子 在此基础上,将服务端改为时刻在线

    2024年04月17日
    浏览(24)
  • 20分钟搞定 Stable Diffusion 模型在线服务部署

    随着人工智能技术的发展与完善,AI Generated Content (AIGC,人工智能自动生成内容) 在内容的创作上为人们的工作和生活带来前所未有的帮助,具体表现在能够帮助人类提高内容生产的效率,丰富内容生产的多样性、提供更加动态且可交互的内容。 AIGC 相关技术可以在创意、表现

    2024年02月08日
    浏览(73)
  • docker搭建在线Markdown服务器

    2024年02月13日
    浏览(47)
  • 使用Python监控服务器在线状态

    在公司内网有一台服务器,有动态的公网IP,使用DDNS对外提供服务,但是会因为停电、服务器卡死等原因导致服务器离线。服务器离线后无法及时获知,因此需要实现在服务器离线的时候能够发送消息到手机上。 公司办理的是联通的商务宽带,有赠送一台沃云的ECS,但是一直

    2024年02月04日
    浏览(56)
  • ubutn在线服务器python Package安装到离线服务器

    1、在线服务器导出requirement.txt  该文件生成完毕后,需要做些修改,去掉不需要的库,否则下载的时候会出错。 2、下载whl文件 - packages 下载完成后packages文件夹包含所有的whl文件。 3、离线服务器ubuntu20.04  查看是否包含python pip 这个版本的服务器已经安装python3.8.5,但是没

    2023年04月18日
    浏览(44)
  • ubuntu在线服务器python Package安装到离线服务器

    1、在线服务器导出requirement.txt  该文件生成完毕后,需要做些修改,去掉不需要的库,否则下载的时候会出错。 2、下载whl文件 - packages 下载完成后packages文件夹包含所有的whl文件。 3、离线服务器ubuntu20.04  查看是否包含python pip 这个版本的服务器已经安装python3.8.5,但是没

    2023年04月18日
    浏览(41)
  • kkfile在线文件预览部署(Linux服务器版本)

    KKfile文件预览是一款开源的文档在线预览项目。项目使用流行的spring boot搭建,易上手和部署,基本支持主流办公文档的在线预览,如doc,docx,Excel,pdf,txt,zip,rar,图片等等。 如果你是在windows系统中可以不用安装openoffice,因为window操作系统会自带openoffice。 如果你是在Linux操作系统

    2024年01月17日
    浏览(51)
  • 创新医疗服务:宠物在线问诊系统的搭建与应用

    随着科技的不断进步,创新的医疗服务方式也日渐成为宠物主人关心爱宠健康的首选。本文将深入介绍如何搭建一套创新的宠物在线问诊系统,并展示其应用的技术代码。 在开始搭建之前,我们需要设计系统的架构并选择合适的技术栈。一个典型的宠物在线问诊系统可以分为

    2024年01月24日
    浏览(44)
  • 白嫖在线云服务器,免费在 linux 服务器使用 docker 。 附视频+附文档

    白嫖在线云服务器,免费在 linux 服务器使用 docker 。 附视频+附文档 视频: https://www.bilibili.com/video/BV1WN411W79V/ 国内互联网经过多年发展,单体应用已经无法支持我们的互联网业务,分布式、微服务架构已经是大势所趋。 就算是一些小公司,也已经开始使用分布式、微服务架

    2024年02月08日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包