rs2008 在記憶體管理方面已經有了很大的改變。主要增加了檔案快取,允許把記憶體資料解除安裝到檔案快取中。而rs2005 都是把資料放到記憶體中。對於大資料量的報表而言,很容易出現outofmemory 錯誤。
在實際應用中,發現rs2008 也經常出現 outofmemory 錯誤。主要有以下幾個原因:
1 物理記憶體過低。
機器只有2g記憶體,特別是64位的機器。
2 同一臺伺服器同時承擔兩種角色: 資料庫伺服器,報表伺服器。但沒有限定資料庫伺服器的占用的最大記憶體。
由於資料庫通常會採用貪婪的記憶體策略獲取盡可能多的記憶體,導致報表伺服器的記憶體嚴重不足。
3 報表伺服器預設的記憶體管理引數不適用於有大量報表使用者同時使用的情況。預設配置適用於負載均衡的場景。
如果系統經常出現負載尖峰(某一時刻有大量報表使用者同時使用的情況),則報表伺服器則會從無壓力區域迅速達到高壓力區域。出現outofmeory,或者拒絕新的請求(503錯誤,伺服器狀態不可用)。
為了改善這種情況,需要對報表伺服器記憶體管理策略進行調整。
在 rsreportserver.config配置檔案中增加配置。
worksetmaximum 預設為報表伺服器啟動檢測到的最大可用記憶體。
memorythreshold 預設是worksetmaximum 的90%
memorysafetymargin預設是worksetmaximum 的80%
workingsetminimum預設是worksetmaximum 的60%
通過以上討論,強烈建議
1 手工指定 worksetmaximum 而不是在報表伺服器啟動是自動檢測。
2memorysafetymargin改為 50% ,壓縮低記憶體區域,使系統從容應對峰值負載情況。
workingsetminimum設為 worksetmaximum 25%到 30%
示範:
伺服器同時是報表伺服器和資料庫伺服器的情況:
假定記憶體共 24g
sqlserver最大使用 18g ,1g 給作業系統使用,剩餘 5g給報表伺服器。
配置如下:
5090
5000000
1500000
WIN7下RS2008匿名新方法 非暴力
之前寫過rs2008匿名訪問的文章 實現reporting service2008 的匿名訪問 親測可行 雖然可行,但是不優雅,而且極容易出錯,已經付出過多次重裝rs的代價了,最近偶然的一次機會,在錯亂之中發現一種較為優雅的方法,該方法不涉及檔案替換 更改配置檔案等暴力手段。當然該方法有一定的限制 ...
記憶體管理策略
在引用計數的環境下管理記憶體使用的基本模型是,通過在nsobject協議定義的方法和提供標準命名的方法。nsobject類也定義了乙個方法 dealloc 當乙個物件被釋放時此函式被呼叫。本文介紹了您需要知道的,如何正確的管理內存在乙個cocoa程式,並提供了一些正確的使用例項。記憶體管理模型是基於...
RS 2008 RS 2005 配置管理器問題
在一台已經安裝了rs 2005的vista電腦上安裝rs 2008,而且要讓兩個rs共存。安裝sql 2008時指定的例項名稱為sql2008,安裝過程一切順利,但是執行rs 2008的配置管理器,卻無法鏈結 report server 同事justing 找到了乙個解決辦法 http www.ki...