当前位置:首页 > 内存 > 正文

二手服务器内存回收

  • 内存
  • 2024-08-07 06:31:19
  • 9538

一、内存读取错误救命求解决的办法一般来说,这种情况经常出现在使用GHOST安装系统的机器上。最好使用常规设置。例如,使用番茄花园版本。


二、怎样解决SQLServer内存不断增加问题为此,数据库引擎会获取尽可能多的可用内存,同时保留足够的可用内存以防止操作系统交换内存。SQLServer实例在开始完成初始化过程时通常会获取8到12MB的内存。实例完成初始化后,在用户连接到实例并开始生成工作负载之前,不会获取更多内存。此时,实例将继续根据需要获取内存以支持工作负载。随着越来越多的用户连接并运行查询,SQLServer将获取满足需求所需的额外内存。实例将继续获取内存,直到达到自己的内存分配目标,并且在达到该目标的下限之前不会释放任何内存。为了获得尽可能多的内存而不生成不必要的分页I/O,每个SQLServer实例都配置了一个内存获取目标,直到计算机的可用物理内存在4MB到10MB的范围内。选择此区域是因为测试表明WindowsNT和Windows2000都有最小内存交换,直到内存分配对应于可用物理内存减去4MB。具有繁重工作负载处理任务的SQLServer实例在范围的低端保留可用物理内存(具有轻工作负载处理任务的4MB实例)在范围的高端(10MB)保留可用物理内存。SQLServer实例的目标会随着工作负载的变化而变化。随着越来越多的用户连接并生成更多工作,实例往往会获取更多内存,以将可用内存保持在4MB限制以下。随着工作负载减轻,实例将目标调整为10MB可用空间并释放操作系统内存。将可用空间量保持在10MB到4MB之间可以防止WindowsNT或Windows2000执行过多的分页操作,同时允许SQLServer获得尽可能最大的缓存,而不会导致额外的交换。实例的目标内存配置与数据库缓存池相对于可用池大小的页面需求有关。在实时的任何时间点,总缓冲区页需求取决于满足当前正在执行的查询所需的数据页数量。如果数据页的需求相对于高速缓存中的页数较大,则高速缓存中的每个页都可能在相对较短的时间内被新页替换。这可以通过缓冲区管理对象的页面生命周期性能计数器来测量。对相对较小缓冲区的高需求的情况将产生较短的生命周期,并且最终效果是I/O增加,因为页面必须经常被重写才能被多个逻辑读取引用。为了缓解这个问题,数据库引擎可以分配更多内存来增加缓存大小。当页面生存期较长时,数据库引擎将可用内存定位在目标范围的高端(10MB),当页面生存期较短时,数据库引擎将可用内存定位在目标范围的低端(4MB)MB)。)。当其他应用程序在运行SQLServer实例的计算机上启动时,它们会消耗内存,导致可用物理内存量低于SQLServer目标。然后,SQLServer实例从地址空间释放足够的内存,将可用内存量带回SQLServer的目标。如果其他应用程序停止运行并且可用内存增加,SQLServer实例将增加其内存分配大小。SQLServer每秒能够释放和获取数MB字节的内存,从而使其能够快速适应内存分配的变化。您可以通过配置允许SQLServer使用的最大内存来限制这一点:最小和最大服务器内存影响minservermemory和maxservermemory配置选项确定SQLServer数据库引擎使用的内存量的上限和下限。数据库引擎不会立即获取minserver内存中指定的内存量。数据库引擎开始仅使用初始化所需的内存。随着数据库引擎的工作负载增加,它将不断获取支持工作负载所需的内存。在达到minserver内存中指定的内存量之前,数据库引擎不会释放任何所需的内存。当达到minserver内存时,数据库引擎使用标准算法检索并释放所需的内存(将操作系统的可用内存保持在4MB到10MB之间)。唯一的区别是数据库引擎远不会将内存分配降低到minservermemory指定的级别以下,并且永远不会获取超过maxservermemory指定的级别的内存。数据库引擎获得的内存量完全取决于实例上的工作负载。不处理大量请求的SQLServer实例永远无法达到minserver内存。如果为minservermemory和maxservermemory指定相同的值,则当分配给数据库引擎的内存达到该值时,数据库引擎将停止动态释放和检索内存。如果您频繁启动或停止运行SQLServer实例的计算机上的其他程序,则启动这些程序所需的时间可能会随着SQLServer实例分配和释放内存而延长。此外,如果SQLServer是在一台计算机上运行的多个服务器应用程序之一,则系统管理员可能需要控制分配给SQLServer的内存量。