龙空技术网

服务器内存使用率96%以上,sql server数据库占用内存过大

ICT王工日记 3399

前言:

如今朋友们对“怎么看服务器内存使用情况”都比较讲究,兄弟们都需要了解一些“怎么看服务器内存使用情况”的相关资讯。那么小编在网摘上收集了一些关于“怎么看服务器内存使用情况””的相关文章,希望你们能喜欢,咱们快快来学习一下吧!

最近帮客户部署了一套监控系统,有几台服务器不定时报内存使用率96%以上。

登录到服务器中,查看内存使用情况,sql server内存占用了太多内存了。

先简单说一下SQL server的内存管理机制,SQL Server 数据库的内存使用原则是按需分配,且贪婪(用完不还)。它不会自动释放内存,因此执行结果集大的sql语句时,数据取出后,会一直占用内存,直到占满机器内存(并不会撑满,还是有个最大限制,比机器内存稍小),在重启服务前,sqlserver不会释放该内存,也没有任何办法可人为释放。

原因是它的存储引擎本身是一个Windows下的进程,所以在使用内存时和其它Windows进程是一样的,都要向Windows申请内存,申请到内存之后,SQL Server的内存使用可以粗略地分为两个部分:一是缓冲池内存,被数据页和空闲页占用;二是非缓冲内存,被线程、DLL、链接服务器等占用

那怎么解决呢?最直接的办法是:人为修改最大可占用物理内存进行限制。

那么将sql server占用内存控制在80%较为合理。为什么要控制sql server占用内在80%较为合理,因为sql server占用内存的主要原因是缓存,只有合理最大化的利用内存缓存数据才能提高访问速度。而服务器本身还需要一定的内存远行,所以只需要预留20%的内存给服务器使用足够,这样就留有最大化的内存给sql server使用。当然,这个不是标准值,还要根据服务器的负载情况来判定,如果设置80%还是服务器内存使用率比较高,可以再调低些。

操作步骤:

管理员用户登录数据库客户端(Microsoft SQL Server Management Studio),在实例名(树形菜单根节点,显示登录名那栏)上右键,选择属性-->内存,设置“最大服务器内存”,单位为MB,可根据实际内存调整。

调整前的配置

调整后的配置

确定后,内存会慢慢降下来了。

标签: #怎么看服务器内存使用情况