Pre-1.前言
最近看到一个说法,当网站被CC时,站库分离可以起到缓解的作用,那么我就来做一个测试
Pre-2.测试说明
本次测试通过阿里云PTS的RT 90% 和RT Avg 两个指标来比较响应时间的差别,从而确定站库分离是否有用。
Pre-3.测试配置
- PTS:30个并发用户,时长为3分钟
- 站库不分离:1x1C2G20M
- 站库分离:1x1C2G20M + 1x1C2G(MySql 5.7.20-18)
ps: 为了避免网络波动造成误差,PTS和主机都处于上海地域
Pre-4.环境配置
进行两组不同程序的测试,WordPress和Typecho,均不启用Cache
|
站库分离 |
站库不分离 |
Nginx |
1.14.0 |
1.14.0 |
PHP |
7.2.11 |
7.2.11 |
MySql |
5.7 |
外部-5.7 |
OS |
CentOS 7.5 |
CentOS 7.5 |
测试结果
是否站库分离 |
程序 |
RT 90%(ms) |
RT Avg(ms) |
错误率 |
CPU占用率 |
内存占用率 |
否 |
WordPress |
1203 |
1149 |
0% |
100% |
30% |
否 |
Typecho |
321 |
308 |
0% |
100% |
27% |
是 |
WordPress |
941 |
973 |
0% |
100% |
22% |
是 |
Typecho |
255 |
225 |
0% |
97% |
21% |
总结
- 从结果来看,站库分离对于缓解压力有一定作用
- 但是在30并发情况下,分离之后响应时间和系统负载的下降有限
- 而且站库分离意味着成本的上升。相比之下还是启用缓存,优化代码带来的提升更明显
- 在遭遇CC时,nginx直接限死单IP并发和全站并发,效果非常好(推荐:有攻击时单IP并发为10,全站并发为200)
- 有条件的话,站库分离还是做一下比较好
PS:nginx的并发指的是并发的连接,PTS的并发指的是并发的页面打开
https:///archives/341
Comments
|