我的数据库服务器占用了71% - 75%的内存,我从perfMonitor日志中可以看出,SQL_Service消耗了65% - 69%的内存。
为了降低内存消耗,我们执行了不同的操作,例如:
服务器RAM内存总计为65 GB。
期待专家的意见。如何降低内存消耗?
发布于 2017-07-27 07:12:24
似乎您正在运行server和一个服务器上的应用程序。
SQL Server将通过设计来消耗它所能使用的所有内存。( Server中的默认最大内存设置为2147483647 MB。)
如果将默认的MAX内存设置更改为其他设置,则Server将在重新启动数据缓存、查询计划缓存和其他Server相关组件后开始使用内存。
在某个时候,Server将通过最小内存设置。Server将不会将内存释放回通过此设置的操作系统。
稍后,Server实例可能会达到MAX内存设置。对于数据缓存和计划缓存,Server不会传递这一行。但是,Server进程可以使用比MAX内存服务器设置更多的功能,因为某些对象在MAX内存设置之外运行(取决于版本),而server可能会过多提交内存。这将在下面的文章中讨论。
您的Server现在将在MIN和MAX内存设置之间使用内存,直到重新启动Server实例为止。
注意:减少正在运行的Server实例的最大内存设置将清除内存中的数据缓存,并导致性能下降。
如果您的Server实例正在应用程序服务器上运行,而不是单独运行,则可能必须减少server的最大内存设置,以允许应用程序共享某些内存。
如果您的Server实例是独立运行的,那么请根据以下建议尝试配置MAX内存设置:
...reserve 1GB的内存为操作系统,1GB为每4GB的RAM安装从4-16 GB,然后1 GB为每8GB的RAM安装在16 GB以上的RAM .
参考资料:我的Server实际需要多少内存? (SQLSkills.com)
还有其他一些很好的文章解释了Server如何使用RAM。
发布于 2017-07-27 07:12:02
调整你的想法。
SQL Server尽可能地缓存--因为RAM比磁盘更快。除非Server使用太多的内存(而且您可以给出一个上限)--为什么要抱怨内存用作缓存呢?你宁愿不使用内存吗?那为什么要买呢?您只需购买32 by内存就可以节省开支--然后Server将不会使用更多内存。你会更开心吗?对共享服务器设置限制基本上是有意义的--与其他服务共享,多个实例,诸如此类的东西。在专用服务器上,您希望server使用尽可能多的内存。
所以,问题是:你一开始就没有问题。您可以想象一种情况,而实际上,Server的工作方式是按预期进行的。
发布于 2017-07-27 07:38:26
数据库是任何应用程序的重要组成部分,并且是活动的--所有的time.This都是数据库通常托管在专用服务器中的原因,在这些服务器中,其他任何东西都不会妨碍数据库的资源利用。
现在来问您的问题,根本没有问题,Server正在按预期工作。SQL Server足够聪明,并且缓存尽可能多,以使操作更快。
有一个名为MAX内存设置的设置,可以设置为希望Server不再使用任何进一步RAM的值。这是在保留OS进程的内存使用情况后完成的。
例如:在16 GB服务器中,我们估计了Server缓冲池,并将最大内存设置为10 GB。现在,Server内存的使用永远不会超过这一点,而OS使用的是剩余的6GB。
https://dba.stackexchange.com/questions/181928
复制相似问题