服务器的数据库服务占用内存过大

ljldashen 2019-03-12 12:12:13
项目服务器因为特殊原因重装了系统,版本是windows server 2008 R2标准版,安装了数据库以后,32G内存被sqlservr.exe进程使用了近30G,几乎可以说是机器有多大内存就吃满多少内存,只有关闭了SQL代理服务后才正常,原因不明。
另外,该机子之前没有开启过防火墙,因为网络管理员不懂没有配置端口,所以墙一直是关闭的,不懂是不是被入侵了,之前有设置过数据库服务的内存大小上限,没有效果,只要打开代理服务就会炸内存,导致远程连接都失败。无法处理,有人知道怎么解决吗?
...全文
2291 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 2019-03-19
  • 打赏
  • 举报
回复
引用 9 楼 ljldashen 的回复:
而且我尝试过IIS不挂任何站点,还是代理服务打开就出现内存暴涨的情况
你把 sql 代理执行的作业都全部看一遍, 看下哪个的消耗比较大。 一般来说, 你按我 #3 设置之后, 是不会有问题的了。 内存占用再大也会在限定范围之内。除非你 定时任务 调用的是外部的程序。
ljldashen 2019-03-19
  • 打赏
  • 举报
回复
我更换了另一个版本的数据库,内存没再涨了,因为服务器急着用所以没有深究,还是谢谢大家的帮助了。
by_封爱 2019-03-18
  • 打赏
  • 举报
回复
这个问题不清楚. 但是我很好奇一个问题. 我之前用mssql 只开一个mssql的服务几行了. 不需要开代理.. 就是在端口那地方 重新分配一个端口 然后ip,port就行了. 只有一个服务 不需要你所谓的代理服务啊.. 依然可以远程.. 用了8年...
编程有钱人了 2019-03-18
  • 打赏
  • 举报
回复
1:用 CHECKPOINT; DBCC DROPCLEANBUFFERS; DBCC FREEPROCCACHE; DBCC FREESYSTEMCACHE ('ALL'); 清空下缓存; 2:重启sql服务(这个方法不推荐);
编程有钱人了 2019-03-18
  • 打赏
  • 举报
回复
大量查询尽量不要使用select * from 表,优化经常使用的查询,用redis存储!
wanghui0380 2019-03-18
  • 打赏
  • 举报
回复
mssql的代理服务都是执行各种自动化脚本的,如果你不需要可以关闭他

如果你需要,请一个一个排查,看是哪个自动化脚本的问题,然后修复他。
wanghui0380 2019-03-18
  • 打赏
  • 举报
回复
既然你自己都说代理会有问题,那就查代理都干了啥呗。本来代理都是执行非常规的事情,不然你用不上代理。所以那些非常规的东西出问题,你不追究我很好奇

ljldashen 2019-03-18
  • 打赏
  • 举报
回复
而且我尝试过IIS不挂任何站点,还是代理服务打开就出现内存暴涨的情况
ljldashen 2019-03-18
  • 打赏
  • 举报
回复
引用 4 楼 以专业开发人员为伍 的回复:
[quote=引用 楼主 ljldashen 的回复:] 项目服务器因为特殊原因重装了系统,版本是windows server 2008 R2标准版,安装了数据库以后,32G内存被sqlservr.exe进程使用了近30G,几乎可以说是机器有多大内存就吃满多少内存,只有关闭了SQL代理服务后才正常,原因不明。
正常啊。[/quote]会把服务器吃的饱饱的,甚至连打开任务管理器都无法正常执行...
  • 打赏
  • 举报
回复
引用 楼主 ljldashen 的回复:
项目服务器因为特殊原因重装了系统,版本是windows server 2008 R2标准版,安装了数据库以后,32G内存被sqlservr.exe进程使用了近30G,几乎可以说是机器有多大内存就吃满多少内存,只有关闭了SQL代理服务后才正常,原因不明。
正常啊。
吉普赛的歌 2019-03-17
  • 打赏
  • 举报
回复
在连接上右键-》“属性”, 如上图修改最大内存。 如果这台服务器是 DB专用服务器, 那就设置为 28672 MB ( 28GB ) 如果这台服务器不是,还承担 WEB服务器之类的应用,那就设置为 20480 MB ( 20GB ) 后面可以根据实际情况再调整。 设置完之后,重启一下sqlserver服务。 DB服务器确实有多大内存就占用多大内存的特点,也不用担心,因为多占用了内存,数据库才得以高效运行。 影响了远程之类的操作, 限制一下SQL Server最大内存就可以了, 但不要限制得太厉害, 要不就矫枉过正了。
cwsj 2019-03-17
  • 打赏
  • 举报
回复
MS-SQLSEVER如果你使用默认配置,哪你有多少内存,它都会吃光它。。。。 解决办法:服务器属性->内存->最大服务器内存:6000 (改成自已的需求)-> 重启服务生效 还搞不掂加我啊,我帮你配置下
丰云 2019-03-12
  • 打赏
  • 举报
回复
要具体情况具体分析,你提供的信息不足以定位问题 首先,如果你的数据库数据量巨大,运行起来后,大部分数据都因为业务原因加载进内存了,那么,这个数据本身占用的内存是无法避免的。 其次,如果你的数据库里面运行着大量的过程和触发器甚至游标等,而这些程序写得又不够严谨,也会导致大量的内存占用或泄露。 再着,sql server数据库有大量的配置项,如果没配置好,也会额外导致巨大的内存消耗。。。 等等,请使用sql server自带的专业的数据库管理和分析工具,仔细查看数据库内存消耗情况

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧