服務器架構爲:css
Nginx+resin+memcached+db
nginx
1、故障緣由服務器
一、服務器負載高架構
(1)訪問量突增memcached
(2)代碼邏輯問題線程
(3)部分服務失效(ATS,DB,MC......)xml
PS:Linux服務器負載通常在2如下。接口
二、Direct Buffer Memory內存
Direct Buffer Memory指本地應用與MC通信區域(本地緩衝區),若MC塊設置過大,GC不能及時回收。開發
三、大量靜態文件佔用resin線程
Resin線程通常爲256
四、JVM配置過大,GC時間長,致使線程堵塞
通常應用JVM配置2~2.5G內存,大的應用配置爲3G,小的應用配置爲1.5G
2、措施
一、分離靜態文件
js,css,image,xml....這類文件直接經過nginx進行跳轉,不佔用resin線程
二、訪問量高的頁面和接口根據業務需求適當靜態化,如使用nginxPeoxyCache或者Ats(Apache Traffic Server)下降resin佔用線程數
client--->ATS--->Nginx--->NginxProxyCache--->Memcached--->Db
三、切忌MC塊設置過大,或者大量XML文件讀取。
四、注意代碼質量(開發規範)
五、JVM設置中,Xms,Xmx不要設置過大,Xmm設置通常爲Xmx/Xms的1/3.