sql server 2008 R2 连接数过高的解决办法


查看 sql server 连接数的指令为:sp_who 、 sp_who active 、sp_who2 和 sp_who2 active ,至于其中的区别,请大家search一下,这里不再解释了


由于公司最近两个Web站点做了负载均衡,但是缓存机制仍然是 Asp.Net 自带的缓存,这样就导致了每台Web 服务器内存中都有一份缓存,直接导致了多次请求DB数据库,造成了DB连接数过高。

由于是两个较大的站点两台服务器做负载均衡(负载平衡),所以,DB 的连接数也飙升,几乎翻了3倍。


公司DB服务器用的是 Sql Server 2008 R2 ,并且DB服务器配置是相当的强悍的,连接数一度冲击到740,真是让人惊叹不已。虽然链接数强悍,但是前台访问的页面 超时的 也是茫茫多,没办法,只能采用了紧急处理:
1. 加大程序中的缓存,特别是页面头部加上 OutPutCache 缓存。
2. 用上镜像的备份DB服务器,把2个站点的DB链接改到了镜像的DB,这台镜像DB和现在主DB是不在同一个机房的,目标就是容灾和在高流量的情况下快速切换

虽然紧急处理了,链接数降低了下来,但是通过这次发现,Sql Server 2008 R2  的连接数还是很容易造成性能瓶颈的,瓶颈也就是400左右,超过400,就会造成部分超时等待,但是少于400,就会比较顺畅。当然,这个是和服务器配置有关的。

最根本的解决办法,只能是把 MemberCache 给用上了,哎。

原文地址:https://www.cnblogs.com/xunziji/p/1975426.html