我正在研究的ASP.NET 3.5网站上似乎存在某种内存/ RAM问题。目前,我们在虚拟服务器上运行带有Windows 2012的2服务器Web场。当更多用户登录并开始使用该应用程序时,尤其是运行密集型数据库工作时,该w3wp.exe进程的内存使用量将会非常高(最高2.5-3 GB)。
我已经尝试了很多方法来帮助解决这个问题:
然而,我注意到,在进行密集数据库工作时,内存似乎非常高。我在网站上有一个按钮,当点击它时,它只是调用一个存储过程(仅供参考 - 这是一个Informix,而不是SQL数据库)。
从ASP.NET页面 -
Dim SWS As New PurchaseOrders
Protected Sub btnFunction_Click (ByVal sender As Object, ByVal e As System.EventArgs) Handles btnFunction.Click
SWS.MyFunctionCall()
End Sub
在App_Code文件的方法调用中 -
Using Conn As New IfxConnection(ConnectToInformix())
Conn.Open()
Dim cmd As New IBM.Data.Informix.IfxCommand()
cmd.Connection = Conn
cmd.CommandTimeout = 0
cmd.CommandText = "auto_order"
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add("@storeID", IfxType.Integer)
cmd.Parameters("@storeID").Value = store_id
Dim value As String
value = cmd.ExecuteScalar()
If (value = "1") Then
Return True
Else
Return False
End If
End Using
存储过程运行正常,但用户将连续运行此过程。同时,还有其他用户正在运行的其他数据库功能。所以当发生这种情况时,内存会高达2.5-3 GB。我已经在IIS中添加内存限制阈值,因为如果它超过大约3.5 GB内存使用量,网站上的所有内容都将返回对象引用错误。因此,一旦达到内存限制,它将回收,当然也会将用户注销。
有人有任何想法吗?非常感谢任何见解。感谢。
答案 0 :(得分:0)
这听起来像是informix驱动程序中的内存泄漏问题。您可以尝试使用某些内存分析器进行分析吗?您可以在试用期间免费使用一些优秀的内存分析器。