我們有一個.NET webapi應用程序(帶有服務自動啓動提供程序)。w3wp從一天到另一天的高內存使用量
該應用程序是由我們的buildserver建,輸出部署到多個服務器和應用程序的請求通過負載均衡器路由。
該網站已經運行好幾個月了。幾天前,我們注意到應用程序池使用的內存比前一天多出3倍,在3臺服務器中有2臺。
,現在使用更多的內存比其他的服務器就是這麼做的,即使我們IISRESET,重新啓動服務器等。applicationpool被啓動後比其他的分配馬上3倍更多的內存。
現在到了超怪異的東西....
要了解被關押了什麼在內存,I「附加」一個dotTrace探查器(遙控器,使用remoteagent.exe)到一個服務器。池似乎回收,一旦它啓動,它不再分配3倍的內存(所以內存快照是無用的)。我從工作進程中「分離」了剖析器,發現應用程序池不再使用3x內存。我重新啓動了服務器,並且仍然沒有使用3x內存。
因此...似乎只是將探查器連接到w3wp進程,以一種持久的方式解決了我的問題,因爲它仍然在iisreset和重新啓動後使用「低內存使用情況」。
試圖在服務器#2遭遇了同樣的問題,同樣的程序,也固定我的問題。
好像dotTrace做這樣神奇的東西我workerprocesses :)?
任何人都可以找出原因嗎?我有更多的服務器(在其他環境中)有同樣的問題,但我想知道這個問題的根源。