当前位置: 首页 > news >正文

武威网页设计培训学校百度推广优化排名怎么收费

武威网页设计培训学校,百度推广优化排名怎么收费,做带支付功能的网站,通州北苑网站建设近期随着公司部分项目迁移,服务器压力集中于某些业务上,导致原本稳定的项目出现了频繁的卡死现象。 通过逐步调试发现,此时项目的性能瓶颈出现在做缓存的Redis上。以最简单的get指令,一次调用耗时可以达到数百毫秒,显然…

近期随着公司部分项目迁移,服务器压力集中于某些业务上,导致原本稳定的项目出现了频繁的卡死现象。

通过逐步调试发现,此时项目的性能瓶颈出现在做缓存的Redis上。以最简单的get指令,一次调用耗时可以达到数百毫秒,显然是不可思议的。

对Redis本身做性能测试,发现Redis性能很正常,远远没有达到极限。

服务卡死时服务器本身资源也很正常,没有出现性能瓶颈问题。

基本判定问题出现在服务器代码本身。

服务器程序结构: SpringMVC+Spring+Mybatis+Jedis

经过数周的排查,最终发现了两点使用不正确的地方。

Redis调用次数过多

在调试过程中,首先发现的就是此问题。

初步调试中利用Spring的AOP功能,对Jedis的每次调用都做了记录,发现原有的业务逻辑中,每次接口请求,需要调用Redis至少五十次,简直丧心病狂。

不需要数据支持,仅凭常识就能够想到如此大量的Redis调用会很大程度上影响接口的性能。

根据Redis监控分析,当服务卡死,Redis的连接数远远没有达到极限,仅为6000+,说明此时其实是Jedis连接池不足以支持如此频繁的请求。

于是第一步就是精简代码,减少Redis请求。

鉴于前人都不是傻子,其实精简代码的成效不是很好。使用hmget替换了循环的hget之后,性能略有提升但是仍旧无法满足需求。最后的解决方案是使用MongoDb再增加一层缓存数据库。

部分修改频繁的统计、计数性质数据与内容数据一起作为一个文档存储于MongoDb,再间隔几分钟定时从MongoDb再同步到Redis缓存中。省去了80%的Redis请求数量。

最后从Redis使用get获取内容id列表,再通过hmget一次批量获取数据,两次请求完成原本数十上百次请求的工作,性能得到极大提升。

在测试环境中测试,Jmeter,300线程。3秒超时

原有代码仅有不足200的QPS,延迟极高,有很高的失败率。

新代码可以达到800+QPS,而且平均响应时间在50ms左右,最高仅有500ms

Redis缓存数据过大

然而代码上线不久就再次卡死。只能继续寻找原因。

Redis的性能强大是经过无数项目实践证明的。但是Redis也有它适用场景的限制。在原本的代码中将大量的Json数据缓存在Redis中,是导致Reids性能缓慢的元凶之一。

根据Redis的性能测试,在数据量超过1K时开始出现较为明显的性能下滑,超过100K时性能下滑已经极为严重。

在原本的业务逻辑中,Redis每次读取数据可达300KB,堪称海量。此时使用Jmeter进行压测,在200线程下仅仅有250QPS的吞吐量。

在调试期间,曾经想到过这个问题,并将数据量折半,约为170KB每次,但是因为数据量仍然远超100KB大关,性能提升并不明显。

最后通过减少数据量,将数据减少至80KB,发现性能出现较大提升,最后进一步精简数据达到40KB,得到了700+QPS的吞吐量,提升十分显著。

减少Redis请求量的另一种思路

在这个项目上线并且平稳运行之后,很容易联想到公司另一个项目也出现了极为相似的性能问题。

这个项目并不存在数据量过大的问题。每次返回的数据不足10KB,虽然Redis请求量没有前一个丧心病狂,但是仍然较多而且连读带写。更严重的问题则是,由于业务逻辑问题,不能便捷的切换为MongoDb进行数据整合。

第一步将一部分请求用Hmget的方式做了整合,性能提升很不明显,大概只有5%左右。

Redis请求量大导致速度慢,并不是Redis本身无法处理大量请求,而是大量请求占用连接池资源,并且有固定的网络请求消耗。Redis中有一个神器pipeline可以解决此问题。

根据初步的测试,通过pipeline的方式对统计数据的Redis请求做了整合之后,在200线程下的吞吐量由300QPS提升到了500QPS,提升十分显著。

补充 :

经过进一步的调试,通过hmget和pipeline的结合,成功将吞吐量提升至1000+QPS,进一步证明了合理使用Redis,程序的性能都是有很大潜力可以挖掘的。

总结

Redis是性能强大的缓存服务。但是也不能无条件的相信Redis的性能。最后错误的使用方法将会成为服务器性能的陷阱,而且会付出大量的精力去修正原有的程序。

缓存是高性能服务的保障,但是缓存和数据库资源一样是需要精细的算计的。节约每一点资源,谁知道哪里就会成为压垮服务器的最后一根稻草呢。

http://www.lbrq.cn/news/2626489.html

相关文章:

  • 阜创汇网站建设名额最新国际新闻头条今日国际大事件
  • 网站编程工具可以免费领取会员的软件
  • 网站做附近地图导航深圳百度seo整站
  • 哪些网站有web做竞价排名
  • 运城建设银行网站点附近电脑培训速成班一个月
  • 大连科技网站制作小说网站排名免费
  • 安平县哪家做网站友情链接交换条件
  • 跨境电商单页网站的详情页怎么做的淘宝店铺推广
  • 医院网站制作设计推广产品的方法
  • 上海网站建设企b2b免费外链发布
  • 免费的小网站免费自己建网页
  • asp.net企业网站设计seo人员工作内容
  • 网站导航怎么做外链武汉seo管理
  • 做企业网站公司做推广
  • 霞山手机网站建设公司中国刚刚发生的新闻
  • 虚拟机怎么做多个网站百度seo插件
  • 外贸有哪些网站西安网站制作
  • ps做网站首页怎么国际新闻 军事
  • 云匠网要交钱才能用吗广州aso优化公司 有限公司
  • 阿里巴巴的网站应该怎么做北京营销型网站
  • alipay域名网站什么是搜索引擎优化seo
  • 可以做动态图表的网站百度官方网站
  • 车辆保险网站无货源电商怎么做
  • 计算机培训班有哪些湖北seo关键词排名优化软件
  • 广告设计制作方案seo服务商技术好的公司
  • 二 网站建设的重要性搜索引擎优化seo课程总结
  • 企业宣传片视频模板seo推广软件代理
  • 关于企业网站建设的提案百度认证证书
  • 湖南株洲网站建设seo顾问服务咨询
  • 做服装网站宣传太原seo网站优化
  • Numpy科学计算与数据分析:Numpy数组操作入门:合并、分割与重塑
  • 嵌入式硬件中MOSFET基本原理与实现
  • 基于Python的超声波OFDM数字通信链路设计与实现
  • Maven入门到精通
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘caffe’问题
  • Dart中回调函数的简单实现