作業中のASP.NET 3.5 Webサイトでメモリ/ RAMの問題が発生しているようです。現在のところ、仮想サーバー上にWindows 2012をインストールした2サーバーファームを稼働させています。より多くのユーザーがログオンし、アプリケーションの使用を開始すると、特に集中的なデータベース作業を実行すると、そのw3wp.exeプロセスのメモリ使用量が非常に高くなります(最大2.5-3 GB)。仮想サーバ上のRAMの増加のためのストアドプロシージャ(ASP.NET)を実行中にメモリ使用量が多い
- 要求
- すべてのデータベース接続を確認して、読者が「使用」の文 をしている:
- セッション変数、他のさまざまなセッション変数のクリーンアップに保存されるデータセットの部分を調整した
- WinDbgなどを使用してメモリダンプを解析しようとしましたが、ログに飛びついた重要な問題はありません
は、私はすでにこの問題を解決するために多くのことを試してみました
私が気づいたことは、集中的なデータベース作業が行われているときにメモリが本当に高くなっているようです。私は、クリックするとストアドプロシージャを呼び出すだけです(FYI - これはSQLデータベースではなくInformixです)。 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〜3GBまで高速にジャンプします。 IISでメモリー制限のしきい値を追加することにしました.Webサーバー上で約3.5GBのメモリー使用量が過ぎると、オブジェクト参照エラーが返されるためです。だから一度それがメモリの限界に達すると、それはリサイクルし、もちろんユーザーをログアウトします。
誰でもアイデアがありますか?どんな洞察力も大変ありがとうございます。ありがとう。
あなたの洞察をいただきありがとうございます。この情報が当てはまると思いますか? http://stackoverflow.com/questions/37597695/informix-memory-leak – misosouper