前言
昨晚救火到兩三點(diǎn),早上七點(diǎn)多醒來,朦朧中醒來發(fā)現(xiàn)電腦還開著,趕緊爬起來看昨晚執(zhí)行的SQL命令結(jié)果。由于昨晚升級了阿里云的RDS,等了將近兩個小時 還在 升降級中,早上阿里云那邊回復(fù)升級過程中出現(xiàn)異常,正在加緊處理。。。有點(diǎn)蛋疼
項目介紹
這個項目主要分為WEB、WEB-Manager、WEB-API、APP(ANDROID、IOS) 。
開發(fā)語言主要是ASP.NET
數(shù)據(jù)庫MySql
架構(gòu)采用了ASP.NET +EF+ORM Unity依賴注入 采用了DDD的部分實(shí)踐
ORM使用的是AutoMapper
使用了Redis緩存
Log4net記錄文件日志,剛開始使用Mongodb記錄日志,用了一段時候后取消了。
WEB端使用了angularjs
API層通過JSON數(shù)據(jù)與APP進(jìn)行交互,用戶狀態(tài)通過access_token進(jìn)行傳遞
數(shù)據(jù)庫層目前是基于倉儲(Repositor)模式實(shí)現(xiàn)的
剛開始項目急于上線多數(shù)采用Linq +lambda 的查詢方式,在實(shí)踐過程中發(fā)現(xiàn)變態(tài)的業(yè)務(wù)調(diào)整和快速的請求響應(yīng),將其復(fù)雜的查詢改成了原生SQL,通過Context.DataBase.SqlQuery 執(zhí)行
其他的技術(shù)就不一一介紹了
目前訪問量較大的是APP端, 最大并發(fā) 1300+
主要是API的壓力比較大,日均 100W+ 請求,API 目前 部署在Windwos server 2012上, 接口在50個以上
數(shù)據(jù)庫使用的是阿里云的單機(jī)MySql RDS 5.6 版本,10盒12G,連接數(shù)2000,iops 6000
目前 單表最大是8000W+數(shù)據(jù)。物理文件300G,APIlog日均100W+,API與業(yè)務(wù)系統(tǒng)完全獨(dú)立,除了DBLog日志還有Log4g.net生成的文件日志。
目前采用的是阿里云的負(fù)載,一主一從 購買的阿里云負(fù)載 兩臺應(yīng)用均為 8盒16G ,10M帶寬 ,資源文件上了CDN。
主的上面部署了WEB端和WEB管理后臺,從的上面只有API。
數(shù)據(jù)庫遇瓶頸
最近用戶量突破10+以上,最大并發(fā)1300+ 從前天晚上開始數(shù)據(jù)庫CPU居高不下,一時達(dá)到100%臨界點(diǎn),導(dǎo)致很多SQL命令執(zhí)行發(fā)生錯誤,鏈接拒