我正在使用的数据库服务器正在运行6个不同的SQL Server实例。它具有48 GB RAM。其中之一正在消耗超过10 GB的RAM,目前总消耗为20 GB。RAM消耗持续增长。在使用40 GB以上的RAM之前的几天,服务器的响应速度非常慢。该应用程序显示保存数据时的崩溃问题。
因此,我重新启动了SQL Server服务。
服务重新启动后,使用率已降至4 GB,但现在正在增长。而且我担心它会在4到5天内增长到40 GB,并使服务器变慢。
我猜服务重启不是一个好选择。
我还从其他来源发现,我们可以设置SQL Server的最大内存使用大小。而且我不确定这是否会有所帮助。我无法对此进行测试,因为服务器正在使用生产数据库,如果在修改SQL Server中的设置时服务停止,则将有风险。
任何人都可以帮助解决这个问题吗?
1
默认情况下,SQL将使用尽可能多的RAM来最大化其性能,这很好-这意味着它将缓存常见的查询和结果,以使您的应用程序更快。它只会使用RAM,直到操作系统报告可能发生分页为止。您可以覆盖此行为。请参阅此MS文档:如何通过使用SQL Server中的配置选项来调整内存使用情况这也可能有用:如何确定正确的SQL Server配置设置
这不是问题-这是SQL Server的设计和默认行为!是的-重新启动SQL Server进程是一个可怕的主意……SQL Server尽可能在内存中缓存尽可能多的数据和索引页-这样就可以优化整个系统的性能。这就是SQL Server计算机始终应该是专用服务器的原因-除了SQL Server以外,什么都不做。
—
marc_s 2012年
实际上,如果SQL Server正在使用尽可能多的内存,我想这将使它不太可能难以传送报告。在这种情况下,当您人为地约束SQL Server(或在一个争用资源的框上放置太多实例)时,您会看到由于内存授予和其他问题而引起的问题。
—
亚伦·伯特兰