是这样的,有个用asp.net mvc4.0写的HTTP服务
在链接数不是很多的情况下,是没有任何问题的
但是当连接数达到一定值的时候,变的异常的慢,导致响应超时之类的问题
我觉得是否我的程序逻辑有问题:
我在响应一个操作的时候,有可能会对数据库进行1-3次的插入或者查询操作
插入/查询的操作均为 新建一个数据库连接-执行存储过程-关闭数据库连接
是不是这样有可能会引起在某个高峰时候,有太多个数据库连接而导致服务挂掉呢?
还是有其他可能的原因呢?
万分感谢!
备注:客户端只有几百,虽然有时可能同时发出N个POST请求,但是还不足以达到高并发吧?
------解决思路----------------------
几百个用户的连接就导致这个问题,怀疑程序的问题比较大。。。
数据库方面也可以检查一下,因为有select操作,可以检查检查索引,看看是否有索引遗漏。。。
程序连接数据库那一块最好是使用连接池吧。
------解决思路----------------------
首先你需要检查瓶颈在哪里,见过一个例子,一个工厂的生产线,好像是手机还是什么的,当开了5条线的时候,没问题,一旦开到7条的时候就卡得不行,数据库怎么都找不到问题,最后通过网络抓包,发现是程序端的循环逻辑写在连接的外部,也就是每次循环都要打开、断开连接,造成严重开销。你不妨从这个点考虑一下是否有类似的可能。
其次,响应时间慢,可以从数据库的等待状态着手,看看数据库在等待什么资源
------解决思路----------------------
后台是什么版本的数据库,服务器的机器配置如何?
担心连接数
可以用sp_who2查看一下
------解决思路----------------------
还是远程实际诊断靠谱点,可能出问题的因素太多了,没法猜
------解决思路----------------------
对不经常更新的表的select 要 nolock
对经常要用到的数据要缓存到 session或者Application里 尽量减少查询的次数
最主要的要尽量减少链接数,可以考虑吧链接对象放到session 或者Application中进行共享
追后就是要分析你写的sql语句了,要进行性能优化
------解决思路----------------------
你分数给的也太少了