前言

昨晚救火到两三点,早上七点多醒来,朦胧中醒来发现电脑还开着,赶紧爬起来看昨晚执行的SQL命令结果。由于昨晚升级了阿里云的RDS,等了将近两个小时 还在 升降级中,早上阿里云那边回复升级过程中出现异常,正在加紧处理。。。有点蛋疼

 

项目介绍

这个项目主要分为WEB、WEB-Manager、WEB-API、APP(ANDROID、IOS) 。

开发语言主要是ASP.NET 

数据库MySql

架构采用了ASP.NET +EF+ORM   Unity依赖注入 采用了DDD的部分实践 

ORM使用的是AutoMapper

使用了Redis缓存

Log4net记录文件日志,刚开始使用Mongodb记录日志,用了一段时候后取消了。

WEB端使用了angularjs    

API层通过JSON数据与APP进行交互,用户状态通过access_token进行传递

数据库层目前是基于仓储(Repositor)模式实现的

刚开始项目急于上线多数采用Linq +lambda 的查询方式,在实践过程中发现变态的业务调整和快速的请求响应,将其复杂的查询改成了原生SQL,通过Context.DataBase.SqlQuery  执行

 

其他的技术就不一一介绍了

目前访问量较大的是APP端, 最大并发 1300+

主要是API的压力比较大,日均 100W+ 请求,API 目前 部署在Windwos server 2012上,  接口在50个以上

数据库使用的是阿里云的单机MySql  RDS 5.6 版本,10盒12G,连接数2000,iops 6000  

目前 单表最大是8000W+数据。物理文件300G,APIlog日均100W+,API与业务系统完全独立,除了DBLog日志还有Log4g.net生成的文件日志。

目前采用的是阿里云的负载,一主一从  购买的阿里云负载      两台应用均为 8盒16G ,10M带宽 ,资源文件上了CDN。

主的上面部署了WEB端和WEB管理后台,从的上面只有API。

数据库遇瓶颈

        最近用户量突破10+以上,最大并发1300+  从前天晚上开始数据库CPU居高不下,一时达到100%临界点,导致很多SQL命令执行发生错误,链接拒