前言
昨晚救火到两三点,早上七点多醒来,朦胧中醒来发现电脑还开着,赶紧爬起来看昨晚执行的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命令执行发生错误,链接拒