Rs2008内存管理策略

news/2024/7/20 15:59:40 标签: 内存管理, 数据库, 大数据

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  而不是在报表服务器启动是自动检测。

MemorySafetyMargin  改为 50% ,压缩低内存区域,使系统从容应对峰值负载情况。

WorkingSetMinimum   设为 WorkSetMaxiMum   25%到 30%

 

示范:

 

服务器同时是报表服务器和数据库服务器的情况:

 

假定内存共 24G

 

Sqlserver最大使用 18G ,1G 给操作系统使用,剩余 5G给报表服务器。

配置如下:

 

<MemorySafetyMargin>50</MemorySafetyMargin>
      <MemoryThreshold>90</MemoryThreshold>
      <WorkingSetMaximum>5000000</WorkingSetMaximum>
      <WorkingSetMinimum>1500000</WorkingSetMinimum>

转载于:https://www.cnblogs.com/colder/p/3719227.html


http://www.niftyadmin.cn/n/1079619.html

相关文章

APUE学习笔记——6.10 时间与时间例程 time_t

Unix提供的最基本的时间服务室日历时间&#xff08;纪元时间&#xff09;&#xff0c;也就是计算1970年1月1日0时0分0秒到当前的秒数。该秒数用time_t表示。typedef long time_t; /* 时间值time_t 为长整型的别名*/1、获取/设置时间 1.1 time和time_t 函数time()可以用于…

开源的视频播放器

http://www.videojs.com/ http://mediafront.org/osmplayer/#.U3Hd5_mSyQA http://mediafront.org/osmplayer/#.U3Hd5_mSyQA http://www.projekktor.com/ http://jarisflvplayer.org/ http://flv-player.net/ 很多设计师在都会在他们的网站使用视频播放器。在线视频播放器无需为…

APUE学习笔记——7main()函数启动与退出

程序的启动与退出过程 先上图&#xff0c;了解进程运行的机制。 内核首先调用exec&#xff0c;运行C启动进程&#xff0c;C启动进程会调用main&#xff08;&#xff09;函数。其他所有函数都是由main函数直接或间接调用的。从Figure7.2可以看出&#xff0c;内核与用户进程的交…

GCC 命令行详解 -L 指定库的路径 -l 指定需连接的库名(转载)

转载自&#xff1a;http://www.cnblogs.com/cy163/archive/2009/03/12/1409434.html 1。gcc包含的c/c编译器gcc,cc,c,g,gcc和cc是一样的&#xff0c;c和g是一样的&#xff0c;(没有看太明白前面这半句是什么意思:))一般c程序就用gcc编译&#xff0c;c程序就用g编译2。gcc的基本…

软件质量管理6大特性21个子特性

感谢新疆风筝同学 软件质量管理6大特性21个子特性 功能靠用小护翼 这个含义不用我太多解释&#xff0c;看过WSJ广告的都懂的&#xff01;呵呵 功能性——功能可靠性——靠可用性——用 效率———小 可维护性—护 记忆时的顺序按照前面编的口诀&#xff1a;功能靠用小护翼…

APUE学习笔记——8.11 实际用户ID、有效用户ID、设置用户ID

用户ID的基本概念 在Unix系统中&#xff0c;很多操作涉及到权限问题&#xff0c;这些权限涉及到用户ID和组ID的概念。组ID和用户ID的原理和相关内容是类似的。下面介绍用户ID。我们常见见到三种关于用户ID的概念。实际用户ID&#xff1a;real user ID &#xff08;RUID&#x…

maven setting.xml

<!-- 当插件的组织Id&#xff08;groupId&#xff09;没有显式提供时&#xff0c;供搜寻插件组织Id&#xff08;groupId&#xff09;的列表。该元素包含一个pluginGroup元素列表&#xff0c;每个子元素包含了一个组织Id&#xff08;groupId&#xff09;。当我们使用…

APUE学习笔记——8.1-8.4 进程基础

进程ID 1 进程id是唯一的。&#xff08;不会有进程id一样的两个进程&#xff09; 2进程id是可复用的&#xff0c;一个进程销毁后&#xff0c;它的id号可以被新的进程使用。但是Unix采用了延迟复用的算法&#xff0c;也就是进程 销毁后它的id不会立即被使用。 3 进程id为0的是…