永发信息网

怎样解决SQL Server内存不断增加问题

答案:2  悬赏:10  手机版
解决时间 2021-03-17 21:15
  • 提问者网友:爱唱彩虹
  • 2021-03-16 23:40
怎样解决SQL Server内存不断增加问题
最佳答案
  • 五星知识达人网友:空山清雨
  • 2021-03-17 00:01
内存不断增加,是因为把数据从硬盘读到内存了。如果内存足够大,这样对性能有好处。
如果内存不够大,可以进入SSMS,设置最大使用内存。
全部回答
  • 1楼网友:北城痞子
  • 2021-03-17 00:34
当系统本身有内存可以用的的时候,sql server 根据操作系统报告的物理内存加载动态增大和收缩其缓冲池(缓存)的大小。只要有足够的内存可用于防止内存页面交换(在 4 至 10 mb 之间),sql server 缓冲池就会继续增大。如果你想把sql的内存控制在某个数量,可以更改配置信息, 1.打开企业管理器,展开服务器组。 2.单击该服务器,点击鼠标右键,单击属性菜单。 3.在弹出的对话框中单击内存选项卡。 可以看到sqlserver将动态配置内存的最大值修改为物理内存的最大值了 解决 sql server 耗尽内存的情况 如果碰到sql server服务造成内存不断扩展最终系统死机等情况,请按照以下方法解决。 原理:sql server 2000引入的动态内存分配机制,一般不能很好的回收内存,如果计算机一直不关闭,就会发生内存耗尽的可能。可以选择每周关机一次来避免,或者是按照下述方法来抑制内存的增长。 1、在服务器上开始—microsoft sql server—企业管理器 中启动sql企业管理器 2、启动以后打开右边的控制台树:控制台根目录\microsoft sql server\sql server组\(local) 。 3、在(local)节点上单击鼠标右键,选择"属性"菜单,可以看到一个 sql server属性(配置) 窗体 4、选择"内存"舌标,打开内存配置页面。将内存的最大值限定在一定的范围内,一般按照以下比例: a) 如果仅仅用于数据库服务器,为总内存的80-90% b) 如果兼任域服务器,一般为60-70% c) 如果还兼任web服务器,建议最大为60% 5、设定完毕点击确定,然后重新启动sql server服务使之生效即可。 解决服务器的w3wp.exe进程占用cpu和内存过多的问题 解决cpu占用过多: 1、在iis中对每个网站进行单独的应用程序池配置。即互相之间不影响。 2、设置应用程序池的cpu监视,不超过30%(一个程序池20个站),每分钟刷新,超过限制时关闭。 根据w3wp取得是哪一个应用程序池: 1、在任务管理器中增加显示pid字段。就可以看到占用内存或者cpu最高的进程pid 2、在命令提示符下运行iisapp -a。注意,第一次运行,会提示没有js支持,点击确定。然后再次运行就可以了。这样就可以看到pid对应的应用程序池。(iisapp实际上是存放在c:\windows\system32目录下的一个vbs脚本,全名为iisapp.vbs,如果你和我一样,也禁止了vbs默认关联程序,那么就需要手动到该目录,先择打开方式,然后选“microsoft (r) windows based script. host”来执行,就可以得到pid与应用程序池的对应关系。) 3、到iis中察看该应用程序池对应的网站,就ok了,做出上面的内存或cpu方面的限制,或检查程序有无死循环之类的问题。 解决内存占用过多,可以做以下配置: 1、在iis中对每个网站进行单独的应用程序池配置。即互相之间不影响。 2、设置应用程序池的回收时间,去掉默认为1720,设置固定时间回收(在下列时间回收工作进程:00:01 06:01 12:01)。再设置当内存占用超过多少(如192m 10个站一个程序池时),就自动回收内存。 3、在性能中设置启用cpu监视 最大使用率 30% 刷新率 1分钟 操作:关闭 1、 要限制一个站点的cpu使用,必须将该站点设置为独立应用程序池,共用应用程序池是无法限制单个站点的。iis独立应用程序池,就需要独立的进程,非常消耗内存。独立池越多,就有越多的w3wp进程。对于每个站点均要独立应用程序池的服务器,在一般的普通p43.0 2g内存 的普通服务器上,建议不要超过50个站点,最好30以内,不然服务器压力非常大。在配置上,我一般把资源消耗较大的网站独立一个池,一般普通bbs或者生成html的系统大概5个站一个池。普通网站以及一些企业站点均共用一个池。 2、根据wlmmc的经验,在服务器硬件允许的情况下,一般不要限制站点内存使用,这样能够保证网站运行,不会出现用户掉线情况。需要限制某站的最大虚拟内存不要小于64m,不然可能出现一些未知的错误。 3、这些都不是根本解决办法,它的根本问题是网站程序有问题,要解决根本问题还要从程序查起。根据本文开头提到的方法查到具体的应用程序池,找到使用此应用程序池的网站,解决网站程序存在的问题,如死循环之类。 4、除了w3wp.exe, 在调用数据库进行大量查询操作的时候,也会大量占用cpu资源,这是难免的(数据库方面的语句及结构优化不在本文讨论范围之内)。个人认为,只要不是cpu长时间占用100%, 一般在75%左右都是正常的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯