OutOfMemoryException問題的處理

2021-04-26 06:22:25 字數 1578 閱讀 7159

介紹

我所參與做的產品是乙個比較大型的asp.net系統,在測試部門和客戶那裡,如果長時間執行,系統常常會出現一些outofmemoryexception的異常。引起記憶體溢位的錯誤的原因有很多,主要在伺服器配置方面和**編寫兩個方面可以進行優化和改進,避免此類問題的出現,但完全杜絕是比較困難的。下面是我收集整理的一些解決方法。 

伺服器配置方面

1.   安裝.net framework 1.1 service pack 1

2.   使用更多的記憶體

b.即使你有很多記憶體,但

.net(注意不是asp.net工作程序,而是.net整個

使用的記憶體是有一定限制的,可以通過加大配置使用量來減少記憶體溢位的發生。方法如下:

3. **工作執行緒

設定iis

定期清除work process

是避免此異常的乙個較好的方式。但這個功能是iis 6.0

(也就是windows 2003

上帶的iis

)才支援。

配置方法如下:

windows 2000 server

上安裝的是iis 5.0

,本身不支援recycle

,但要想實現這個功能也不難。微軟針對iis提供的iis5recycle

便是這樣乙個程式,它安裝後以服務形式提供**工作程序。

安裝說明見http://support.microsoft.com/?id=322350

是表示安裝好之後的配置資訊! 是不是和iis6中的一模一樣?

**編寫方面的注意問題

1.system.drawing方面的類使用問題

system.drawing用到了很多系統的資源和非託管**,所以使用的時候要特別小心,注意記憶體洩漏(memory leak)例如:bitmap.maketransparent方法的使用問題:

2.new byte問題

處理流的時候常常會用到new乙個大的byte陣列。但在多使用者情況下會消耗大量的記憶體。正確的做法應該是定義乙個比較小的byte陣列做為快取,然後迴圈使用。如在我們的程式中,有些地方使用不當,當(或附件)過大或過多的時候,new byte[length]就有可能消耗過多的記憶體。

3. 避免使用大物件陣列或小物件大陣列

程式設計時同樣要重視效率問題(包括記憶體占用問題)。

4.com

介面呼叫是要注意釋放物件。

rocketmq client 日誌的問題處理方式

目錄 使用rocketmq後,缺省會在 logs rocketmqlogs 目錄下生成大量的mq跟蹤日誌,可以通過以下方式禁用或改變儲存目錄 設定系統屬性 rocketmq.client.loguseslf4j true 啟動引數 新增 drocketmq.client.loguseslf4j tr...

實戰修改密碼處的一處邏輯問題 原創

遇到乙個系統,有點代表性,就把這個漏洞細節發出來了。具體漏洞點在修改密碼的地方。首先用xiaoliu13的號進行登入 然後點選修改密碼 然後填寫好原密碼和確認密碼後點選修改,然後抓包 然後可以看到,這裡有我的賬號,把我的賬號改成其他賬號。這裡原密碼我們改成123456,進行爆破,若對方密碼為1234...

elasticsearch 頻繁GC問題處理

收到es的告警,在1小時內意外分配了碎片,從而導致集群狀態 green yellow red yellow green 頻繁切換?在此期間,es不可訪問,並且呼叫api開始返回非200的狀態碼。環境 3個主節點和3個工作節點。這種鋸尺模式的原因是,elasticsearch在執行某些操作搜尋查詢,寫...