我的测试环境是这样的:
3台PC,配置都一样,A作为数据库发布服务器负责只写;B作为订阅服务器负责只读;C作为应用服务器,开一个ASP.NET页面进行测试,测试程序也跑在C上。
测试页面做的工作是在拥有4000条数据的表中select 50条数据,条件语句带了几个like用来吃性能。同时更新1000条数据的某个字段为随机产生的值(一条update语句)。
使用VS2010自带的负载测试,模拟250个用户并发访问,未使用读写分离前的测试结果图是这样的:
可以看到,系统的每秒请求数为151,平均页响应时间是3秒。
然后使用读写分离,即将查询语句连接到B服务器,update语句则使用A服务器。然后测试结果如下:
系统的每秒请求数骤降到33,平均页响应时间竟到了15.5秒
在测试过程中,我观察了A服务器中的数据库日志文件,发现日志文件激增的很厉害,3分钟就到了2G多,而不使用复制数据库时,10多分钟也就4M。而CPU的使用率一般都保持在50%左右,想来这个应该不是瓶颈。
有经验的朋友能不能帮忙解释一下,为何扩展后性能反而大幅度下降了?