天天看点

系统优化、受到压力、出现瓶颈怎么解决?

1. 你任务目前的系统业务量增加10倍  可能出现瓶颈的业务节点时什么?(根据自己的业务思考,10倍压力不够的,那就100倍吧,100倍在不需要的话辞职吧)

对客户来说,直观感觉应该在如下三方面感觉不好

登录页面缓慢

查询访问缓慢

增删改缓慢

一:流量,如果是10倍或者是100倍,我们最大的压力可能是流量,对于整站https,很多东西不能上cdn,和云存储,静态的东西相对比较少,一些图片放在云上,七牛或者又拍云。但是我们这个行业,如果业务增加到100倍,估计就是行业的巨头了,到时候买流量也没有什么压力;

二:中间件压力,对宇前端可以用nginx和ha来负载,但是反向代理的中间件比如tomcat,默认并发是150.肯定来不及处理前端的数据,然后尽量做到异步来处理信息,我们是用的阿里开源的rockermq集群和zookeeper,这点和电商是有区别的

三:数据库的压力,相对于电商的数据,我们要的相当于安全。数据库的压力对于对与普通电商来比相对较小;但是也有是,我们变态的地方是日志也记录在DB中

四:服务器的压力,堆一大堆的服务器是必须的,由于行业原因,我们是不上公有云的,所以后期肯定是docker化;

五:构建,发布,回滚。现在我们已经是分布式的微服务,100多个应用,单单用jenkins是有压力的。

六:安全:网络,数据库,灾备的安全都要考虑进去

2. 你想用什么样的办法 优化你的系统

扩容方式:

             采购硬件进行扩容,包含新购主机,更换机械硬盘到SSD盘,热点数据存放到SSD盘,增加读写响应能力

优化方式:

             优化操作系统参数(读写参数)、优化架构(读写分离)

             调整数据库参数,清理历史数据

             根据业务逻辑调整SQL,优化索引,信息收集,数据整合

一:流量:不涉及money和隐私的全不用云或者cdn。买流量;

二:尽量异步和对应用的服务器来提高中间件的处理速度

三:数据库集群,redis,对于业务的需求使用不同类型的数据库,当然数据库优化是最基础的

四:服务器数量的增多,肯定是要docler化。批量管理工具ansible+salt联合使用,估计监控zabbix也要重新定制和二次开发

五:构建,发布,回滚必须有个二次开发的平台。多种自动化的工具配合使用

六:对于代码级别的要找专业的安全公司去审核。然后机房必须做到异地灾备;

3. 增加10倍的压力后。你想怎么管理你的服务器

(1)系统整体迁移到阿里云

(2)改进硬件环境,向老板申请出资购买更昂贵的服务器

(3)提高CPU并发计算能力

(4)改进服务器并发策略

(5)用saltstack ansible puppet集中管理啊

 (6)zabbix监控主机的CPU、内存等信息或者通过nagios进行监控

 (7)文件系统级别自动进行空间告警和清理。

 (8)数据库级别监控数据库的服务,数据库正常与否。

(9)二次开发造个大轮子,cmbd。那个时候,钱不会少。也会好玩很多。

转载于:https://blog.51cto.com/yht1990/1916700