win2003系统+IIS6下,经常出现w3wp.exe和sqlserver.exe的内存占用居高不下
在IIS6下,經常出現w3wp.exe,sqlserver.exe的內存占用不能及時釋放,從而導致服務器響應速度很慢。
由于內存釋放不及時嚴重影響到服務器的正常運營,建議采用以下配置,但請考慮自身服務器的使用情況。
可以做以下配置:
1、在IIS中對每個網站進行單獨的應用程序池配置。即互相之間不影響。(進程池越多越占用內存,由于訪問網站之后往往不會立即釋放內存資源。)
2、設置應用程序池的回收時間,默認為1720小時,可以根據情況修改。同時,設置同時運行的w3wp進程數目為1。再設置當內存或者cpu占用超過多少,就自動回收內存 。
3、設置固定時間加收進程,比如在凌晨1:00至9:00之前訪問人數都比較少,影響很少小,可以設定每天在這個時間段內進行內存回收,以減少服務器因為內存不足帶來的影響。設定固定的時間在IIS6中沒有限制次數,可以根據實際情況來設定時間比如:晚上12:00,8:00,12:30,6:30等時間段時間有效的進程池資源回收。
一般來說,這樣就可以解決了。但仍然會出現個別網站因為程序問題,不能正確釋放。
那么,怎么樣才能找到是哪一個網站的?
1、在任務管理器中增加顯示pid字段。就可以看到占用內存或者cpu最高的進程pid
2、在命令提示符下運行iisapp -a。注意,第一次運行,會提示沒有js支持,點擊確定。然后再次運行就可以了。這樣就可以看到pid對應的應用程序池
3、到iis中察看該應用程序池對應的網站,就ok了。
實例: |
| 答2: w3wp.exe就是你的ASP.NET應用宿主,如果你使用了大量的Session、Cache等資源,并且Session超市時間很長,那么內存占用量就比較大。應用池是為增加性能而設的一個特性,但是也消耗很大的內存。另外關掉Windows Server 2003里的大多數Service(那個不用都可以關掉),也可以節省一部分內存 1.懷疑在程序中應用的CACHE, 2.CACHE中有大量的數據 3.頻繁刷新CACHE 4.沒有設計好CACHE的方式 你的問題我以前也遇見過,我以前是用的Session,后我全部改成cook之后就好多了,應該是你的Session或是你的CACHE有問題(CACHE不太懂,但多多少應該是有的) 跟蹤下SQL的調用記錄,在每次往CACHE或SESSION寫入大量數據時記錄一下時間,看是否太過頻繁 1.在win2003里asp.net的進程就是w3wp.exe 2.512M內存個人用是夠用了,但是放在服務器上就有點不夠用了,尤其是win2003 + asp.net +sql server 。尤其是sql server 他是很吃內存的,如果不控制的話,他會占光所有的物理內存(只剩下幾十M 倒 100M 吧)。win2003 本身就要占用150M左右。也就剩不下什么了。 3.優化asp.net程序,就向樓上的說的那樣,少用或不用session cache application之類的東西,再有就是是不是有翻頁的地方,翻頁處理不好也是會占很多內存的。 4.限制sql的內存。企業管理器——SQL的屬性(一般是local)——“內存”標簽 在這里看內存的設置,把最大值改成100M吧。 第四條是最快的方法,可以試一試,但是如果服務內存足夠的還是讓sqlserver自己處理吧,我相信它可以做到 |
| 答3: w3wp.exe是2003下的一個iis進程,至于樓主說的sql占用內存,那有可能是因為你的sql沒有設置占用內存上限 在IIS6下,經常出現w3wp.exe的內存及CPU占用不能及時釋放,從而導致服務器響應速度很慢。 解決內存占用過多,可以做以下配置: 1、在IIS中對每個網站進行單獨的應用程序池配置。即互相之間不影響。 2、設置應用程序池的回收時間,默認為1720小時,可以根據情況修改。再設置當內存占用超過多少(如500M),就自動回收內存。 解決CPU占用過多: 1、在IIS中對每個網站進行單獨的應用程序池配置。即互相之間不影響。 2、設置應用程序池的CPU監視,不超過25%(服務器為4CPU),每分鐘刷新,超過限制時關閉。 根據w3wp取得是那個一個應用程序池: 1、在任務管理器中增加顯示pid字段。就可以看到占用內存或者cpu最高的進程pid 2、在命令提示符下運行iisapp -a。注意,第一次運行,會提示沒有js支持,點擊確定。然后再次運行就可以了。這樣就可以看到pid對應的應用程序池。(iisapp實際上是存放在C:\windows\system32目錄下的一個VBS腳本,全名為iisapp.vbs,如果你和我一樣,也禁止了Vbs默認關聯程序,那么就需要手動到該目錄,先擇打開方式,然后選“Microsoft (r) Windows Based Script Host”來執行,就可以得到PID與應用程序池的對應關系。) 3、到iis中察看該應用程序池對應的網站,就ok了,做出上面的內存或CPU方面的限制,或檢查程序有無死循環之類的問題。 |
轉載于:https://www.cnblogs.com/smallmuda/archive/2012/04/20/2458810.html
總結
以上是生活随笔為你收集整理的win2003系统+IIS6下,经常出现w3wp.exe和sqlserver.exe的内存占用居高不下的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 动态规划求数塔问题
- 下一篇: 清空sqlserver当前日志信息!