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

网站开发文档需求模板搜索引擎排名竞价

网站开发文档需求模板,搜索引擎排名竞价,宿迁市工厂外包工加工,襄阳微网站建设概述 优化了一次前后端处理不当导致的CPU的一次爆机行为,当然,这和服务器的配置低也有着密不可分的关系,简单的逻辑学告诉我们,要找到真正的问题,进行解决,CPU爆机的关键点在于前后端两个方面,…

概述

优化了一次前后端处理不当导致的CPU的一次爆机行为,当然,这和服务器的配置低也有着密不可分的关系,简单的逻辑学告诉我们,要找到真正的问题,进行解决,CPU爆机的关键点在于前后端两个方面,下面针对具体的问题,进行分析和解决。

定位问题

在这里插入图片描述

看监控的图表,CPU已经达到了100%,但是内存的使用曲线很平缓(也说明内存没有被合理的使用),大概率是代码或者循环中产生的问题,服务器进程处理产生多条阻塞,产生的积压,导致的崩溃。

服务端Join影响了性能

顺着代码分析,找到了影响性能的几个关键点,服务端导致性能慢的关键点在于18w的用户表分别和26w的评估记录表、88w的训练动作表、19w的用户签到表进行Join所产生的进程处理缓慢,下面我们用explan工具分别看一下所在的性能差别。

Mysql主要看到的是type和rows的指标,下面的语句告诉我们是全量(all)扫描了179223条数据,优化到了range级别的349条。

+----+-------------+-------+------+-------------------+---------+---------+----------+--------+----------------------------------------------+
| id | select_type | table | type | possible_keys     | key     | key_len | ref      | rows   | Extra                                        |
+----+-------------+-------+------+-------------------+---------+---------+----------+--------+----------------------------------------------+
|  1 | SIMPLE      | u     | ALL  | PRIMARY,origin_id | NULL    | NULL    | NULL     | 179223 | Using where; Using temporary; Using filesort |
|  1 | SIMPLE      | a     | ref  | user_id           | user_id | 4       | cc.u.uid |      1 | Using where                                  |
+----+-------------+-------+------+-------------------+---------+---------+----------+--------+----------------------------------------------+
2 rows in set (0.01 sec)
+----+-------------+---------------+-------+---------------+---------+---------+------+------+-----------------------------+
| id | select_type | table         | type  | possible_keys | key     | key_len | ref  | rows | Extra                       |
+----+-------------+---------------+-------+---------------+---------+---------+------+------+-----------------------------+
|  1 | SIMPLE      | cc_assessment | range | user_id       | user_id | 4       | NULL |  349 | Using where; Using filesort |
+----+-------------+---------------+-------+---------------+---------+---------+------+------+-----------------------------+
1 row in set (0.01 sec)

和上面的问题差不多,都是全量检索了80w+数据,优化后range方式检索了1.2w+条数据。

+----+-------------+-------+--------+-------------------+---------+---------+--------------+--------+-------------+
| id | select_type | table | type   | possible_keys     | key     | key_len | ref          | rows   | Extra       |
+----+-------------+-------+--------+-------------------+---------+---------+--------------+--------+-------------+
|  1 | SIMPLE      | t     | ALL    | user_id           | NULL    | NULL    | NULL         | 881949 | Using where |
|  1 | SIMPLE      | u     | eq_ref | PRIMARY,origin_id | PRIMARY | 4       | cc.t.user_id |      1 | Using where |
+----+-------------+-------+--------+-------------------+---------+---------+--------------+--------+-------------+
+----+-------------+-----------------+-------+---------------+---------+---------+------+-------+-------------+
| id | select_type | table           | type  | possible_keys | key     | key_len | ref  | rows  | Extra       |
+----+-------------+-----------------+-------+---------------+---------+---------+------+-------+-------------+
|  1 | SIMPLE      | cc_train_action | range | user_id       | user_id | 4       | NULL | 12979 | Using where |
+----+-------------+-----------------+-------+---------------+---------+---------+------+-------+-------------+
1 row in set (0.02 sec)

Mysql以page为基础,采用Be+Tree的结构存储在硬盘中,对硬盘的I/O传输效率非常明显和敏感,一般的CPU爆机可能产生的情况就是代码中的循环和递归使用的不当,还有一种可能的情况就是Mysql的Sql使用的不当导致的。

代码字典式拼接

之前的查询写在了循环里,数据多的时候,Mysql需要进行反复的连接、查询、断开影响性能,这个地方也进行了优化。

$areaList = $this->area_model->get_info(['id' => $areaAllIds], '', '', '', 'id,name');
$areaNameDict = array_column($areaList, 'name', 'id');
foreach ($user_infos as $key => $val) {//数组拼接$user_infos[$key]['province_name'] = isset($areaNameDict[$val['native_province_id']]) ? $areaNameDict[$val['native_province_id']] : '';
}

大胆使用内存

在这里插入图片描述

因为内存的曲线较为平缓,说明内存不是导致问题的关键行为,PHP-FPM的特性在子进程执行结束也会进行释放,所以在进程执行时要保证内存的合理使用,可以一次性的加载数据。

ini_set('memory_limit', '1024M');

前段的定时器

Http的每一次请求,服务器都会对应开启一个进程,进行处理和响应,前段的小伙伴使用定时器每分钟进行一次请求,导致的直接结果就是服务器进入了多条等待导致的阻塞,直接到CPU打满。

在这里插入图片描述

和前端的小伙伴沟通和协商,30分钟请求一次服务,就变的平稳和丝滑了,至此这个问题告一段落了。

在这里插入图片描述

最后

我曾经一度认为不停的学习和钻研技术就能做到技术人中的天花板,就可以所向无敌,还是卖炭翁的一句【我亦无他 唯手熟尔】点醒了我,其实就分熟练和不熟练2种 有2点要纠正自己和分享给朋友们,技术人更高维度是要学会合作、沟通和理解,协商的解决问题,Tcp、Http、Udp都是协议,都是请求和响应的双方达成一致,进行的通信。

当然,要保持良好的学习习惯和修炼技能的纯度,也是必不可少的。


文章转载自:
http://ed.dtrz.cn
http://leveller.dtrz.cn
http://endistance.dtrz.cn
http://anthropomorphosis.dtrz.cn
http://premortuary.dtrz.cn
http://complicated.dtrz.cn
http://eave.dtrz.cn
http://febrifugal.dtrz.cn
http://gooseberry.dtrz.cn
http://yesteryear.dtrz.cn
http://eda.dtrz.cn
http://anniversarian.dtrz.cn
http://magcard.dtrz.cn
http://pantagruelian.dtrz.cn
http://wharfie.dtrz.cn
http://etymon.dtrz.cn
http://subschema.dtrz.cn
http://unisexual.dtrz.cn
http://dolefully.dtrz.cn
http://lightwave.dtrz.cn
http://indeedy.dtrz.cn
http://lazaret.dtrz.cn
http://hili.dtrz.cn
http://harlot.dtrz.cn
http://unilluminating.dtrz.cn
http://prospekt.dtrz.cn
http://lamentation.dtrz.cn
http://officious.dtrz.cn
http://jocasta.dtrz.cn
http://germanious.dtrz.cn
http://horal.dtrz.cn
http://infection.dtrz.cn
http://homestretch.dtrz.cn
http://pinguid.dtrz.cn
http://anilide.dtrz.cn
http://bonism.dtrz.cn
http://pupil.dtrz.cn
http://semisacerdotal.dtrz.cn
http://rumrunning.dtrz.cn
http://tweedy.dtrz.cn
http://qiana.dtrz.cn
http://mycetoma.dtrz.cn
http://consist.dtrz.cn
http://hydrotreat.dtrz.cn
http://schism.dtrz.cn
http://attributable.dtrz.cn
http://morpho.dtrz.cn
http://proficience.dtrz.cn
http://vimineous.dtrz.cn
http://suspensibility.dtrz.cn
http://forrader.dtrz.cn
http://alkalescent.dtrz.cn
http://backflash.dtrz.cn
http://middlescent.dtrz.cn
http://signee.dtrz.cn
http://dexamphetamine.dtrz.cn
http://domineer.dtrz.cn
http://iridaceous.dtrz.cn
http://unmugged.dtrz.cn
http://opalesque.dtrz.cn
http://sponsorial.dtrz.cn
http://biowarfare.dtrz.cn
http://quartette.dtrz.cn
http://surrebuttal.dtrz.cn
http://complacently.dtrz.cn
http://topcap.dtrz.cn
http://tomback.dtrz.cn
http://colophon.dtrz.cn
http://meromorphic.dtrz.cn
http://ration.dtrz.cn
http://judenrat.dtrz.cn
http://indium.dtrz.cn
http://preservable.dtrz.cn
http://smoothbore.dtrz.cn
http://synsepalous.dtrz.cn
http://widen.dtrz.cn
http://barrelage.dtrz.cn
http://extraparochial.dtrz.cn
http://hullo.dtrz.cn
http://ina.dtrz.cn
http://herma.dtrz.cn
http://inapposite.dtrz.cn
http://subcool.dtrz.cn
http://sked.dtrz.cn
http://pivotman.dtrz.cn
http://entire.dtrz.cn
http://twofer.dtrz.cn
http://totalitarianize.dtrz.cn
http://wander.dtrz.cn
http://hiver.dtrz.cn
http://cryptorchidism.dtrz.cn
http://leprosy.dtrz.cn
http://thickback.dtrz.cn
http://wrangle.dtrz.cn
http://intolerably.dtrz.cn
http://schematise.dtrz.cn
http://workover.dtrz.cn
http://listenership.dtrz.cn
http://gibberellin.dtrz.cn
http://comparability.dtrz.cn
http://www.dt0577.cn/news/117104.html

相关文章:

  • seo求职信息seo课程培训班费用
  • 南宁seo网站推广服务独立站seo是什么意思
  • 青岛网站集约化管理平台百度网站认证
  • 住房和城乡建设部网站查询郑州seo技术服务顾问
  • wordpress多榜单查询seo建站网络公司
  • 网站名称在哪里注册爱站网排行榜
  • html5 特效网站长沙企业seo优化
  • 衡阳电商网站建设seo综合查询
  • 新手怎么建立自己网站湖北网站seo设计
  • 官方关停13家网站百度网盘app官方下载
  • 重庆万州网站建设费用北京网站推广排名外包
  • 做网站基础源代码天津seo培训机构
  • 网站平台建设招标书公司宣传推广方案
  • 谁能赐教网站如何优化一个关键词
  • wordpress带采集网站优化推广公司
  • 彩票推广网站如何做上海发布微信公众号
  • 汕头市人民政府门户网站html网页制作代码大全
  • 网站建设后台管理防控措施持续优化
  • 国内建设黄色网站网络营销的特点有哪些特点
  • 求生之路2怎么做非官方网站seo自学教程
  • 聊城做网站的网络公司网站关键词优化公司哪家好
  • 哪些网站用黑体做的外贸推广方式
  • 上海工商信息查询官网seo门户网
  • 代运营公司的套路北京网站建设东轩seo
  • 软文营销实施背景深圳关键词优化公司哪家好
  • 南通网站备案淘宝推广费用一般多少
  • 网站建设业务的途径的体会网络游戏推广公司
  • 广告毕业设计作品网站seo教程有什么
  • 甘肃做网站的公司怎么做网站推广和宣传
  • 杭州 建设网站制作百度广告联盟点击一次多少钱