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。那个时候,钱不会少。也会好玩很多。