sql server2005内存过高释放方法
最近做了一个网站qq.115sou.com,在服务器中SQL Server占用内存非常高,加内存后,SQL Server又吃掉新加的内存,好像内存永远不够用一样,怎么办?
其实这并不一定是由于SQL Server活动过度造成的,在启动SQL Server后,SQL Server内存使用量会持续稳定上升,即使服务器上活动很少也不会下降,直到物理内存仅剩下4到10M为止,这是SQL Server缓冲池的预期行为,正常现象。
不过这种现象使得服务器应付峰值的能力降低,当突然有较大的活动时,可能使得服务器当机。要限制缓冲池的内存使用量,可以打开“SQL Server属性”->“内存”,在这一页中降低“最大值”,点击“确定”。点击“运行值”,可以发现“最大值”没有变化,说明刚才的设置并没有生效,实际上该设置更改后要重新启动SQL Server才能生效,重新启动SQL Server。
这里的内存,并不是指SQL Server整个占用的内存,而是指SQL Server缓冲池所用的内存,所以SQL Server实际所占内存要大于此值。
SqlServer2005内存分配
| 默认情况下Sqlserver2005的内存会根据可用资源的情况动态的变化.Min server Memory的默认值为0,Max server memory的默认值为2147483647,可以为Max server memory的值指定为最小内在为16MB.
但是如果把Max server memory的值设置为最小降底Sqlserver2005的性能,甚至无法启动.如果出现无法启动的时候可以使用-f startup选项进行启动,并将Max server memory设置成以前的值.. 当Sqlserver动态使用内存时,他会定期查询系统以确定可用物理内存量,在Server2000中,Sql会根据服务器的活动来增大或收缩缓冲区调整缓存,以使可用物理内存保持在4MB和10Mb之间.保持此可用内存可避免Win server2000分页.如果内存过少则Server2000会释放内存给WinServer2000,如果内存过多Sql2000将分配内存给缓冲池.Sql仅在工作负荷需要时才增加内存给缓冲池.处于休眠状态的服务器不会增加其缓冲池的内存. 手动设置Sql内存的方法: 一:将Min server memory和Man server memory设置成同一值,此值与达到该值后分配给缓冲池的固定内存相对应. 二:将Min server memory和Man server Memory设置成一个范围内,这种方法系统或数据管理员希望配置Sql实例,同时又要考虑同一台机器上运行其它应用程序的内存需求很有用. Min server memory保证了Sqlserver实例的缓冲池可用的最小内存量,Sql server不会在启动时立即分配Min server memory指定的内存量,不过除非降低Min server memory的值,否则内存使用量由于客户端使用达到该值后,Sql server不能分已经分配的缓冲池中释放内存. Sql server 并不一定分配指定的Min server memory,如果Sql server的负荷不需要分配Min server memory指定的内存,Sql server将以较小的内存运行.... max server memory 避免了 SQL Server 缓冲池使用的内存量多于指定的内存量,这样剩余的可用内存可以用来快速启动其他应用程序。SQL Server 不会在启动时立即分配 max server memory 指定的内存量。内存使用量会随着 SQL Server 的需要增加,直到达到 max server memory 指定的值。除非提高 max server memory 的值,否则 SQL Server 不能超过此内存使用量。 在减小 max server memory 值之前,可以使用性能监视器来检查 SQLServer:Buffer Manager 性能对象,并注意 Stolen pages 和 Reserved pages 计数器的当前值。这些计数器将内存报告为 8K 页的数目。应将 max server memory 设置为大于这两个值的和,以免出现内存不足错误。对于合理的最低 max server memory 设置 (MB),近似值为 ([Stolen pages] + [Reserved pages])/ 100。若要减小 max server memory,可能需要重新启动 SQL Server 以释放内存。 |
sql server2005内存过高释放方法的更多相关文章
- SQL Server内存数据写入磁盘方法比较
众所周知,SQLServer增删改数据最先都是在内存中进行的,这可以大大加快数据操作的速度: 当内存中的数据被修改了,而磁盘中的数据还没有被修改时,就产生了所谓的“脏页”,SQLServer是如何同步 ...
- w3wp.exe进程占用内存过高解决方法
解决CPU占用过多: 1.在IIS中对每个网站进行单独的应用程序池配置.即互相之间不影响. 2.设置应用程序池的CPU监视,不超过25%(服务器为4CPU),每分钟刷新,超过限制时关闭. 根据w3wp ...
- 用windbg+sos找出程序中谁占用内存过高,谁占用CPU过高(转载)
原文地址: http://www.cnblogs.com/Lawson/archive/2011/01/23/1942692.html 很早看到windbg+sos方面的知识,一直没仔细学习,也许因为 ...
- Sql server2005 优化查询速度50个方法小结
Sql server2005 优化查询速度50个方法小结 Sql server2005优化查询速度51法查询速度慢的原因很多,常见如下几种,大家可以参考下. I/O吞吐量小,形成了瓶颈效应. ...
- SQL Server占用服务器内存过高
SQL Server对服务器内存的使用策略是用多少内存就占用多少内存,只用在服务器内存不足时,才会释放一点占用的内存,所以SQL Server 服务器内存往往会占用很高. 查看内存状态: DBCC M ...
- SQL Server2005索引碎片分析和解决方法
SQL Server2005索引碎片分析和解决方法 本文作者(郑贤娴),请您在阅读本文时尊重作者版权. 摘要: SQL Server,为了反应数据的更新,需要维护表上的索引,因而这些索引会形成碎片.根 ...
- linux服务器内存占用太高-释放内存
修改/proc/sys/vm/drop_caches,释放Slab占用的cache内存空间(参考drop_caches的官方文档): Writing to this will cause the ke ...
- 编写高质量代码改善C#程序的157个建议——建议47:即使提供了显式释放方法,也应该在终结器中提供隐式清理
建议47:即使提供了显式释放方法,也应该在终结器中提供隐式清理 在标准的Dispose模式中,我们注意到一个以~开头的方法,如下: /// <summary> /// 必须,防止程序员忘记 ...
- Windows xp下安装sql server2005所碰到的一些问题及解决方法
之前提到的帮老板做的一个中船重工的项目,其中的一个子模块:windows下获取特定进程网络流量 一开始是用VS2010做的,后来老板把项目书拿给我看后,明确要求开发环境为VS2005和Sql serv ...
随机推荐
- D2GS1.11 的DC Key的相關設置指南
D2GS1.11版本暗黑戰網服務器DC Key 的相關設置是保存在 D2Server.ini 文件中的.在這裡我列舉跟DC Key 有關的配置條款. (以下內容具存在於D2Server.ini 文件中 ...
- STS中取消show in Breadcrumb方法
前言:STS是Spring产品下的一个开发工具,它和eclipse很像,只不过对Spring有更好的兼容.Show in Breadcrumb是快速导航条,可以清晰的看到我们当前的类,属性或方法的导航 ...
- DevExpress控件使用系列--ASPxTreeList
控件功能 结合列表控件及树控件的优点,在列表控件中实现类型树的多层级操作 官方说明 http://documentation.devexpress.com/#AspNet/clsDevExpres ...
- C++文件操作之get/getline
问题描述: C++ 读取写入文件,其中读取文件使用get和getline方式 参考资料: http://simpleease.blog.163.com/blog/stat ...
- BZOJ3473: 字符串
3473: 字符串 Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 109 Solved: 47[Submit][Status] Descriptio ...
- 控制DIV属性——实现盒子长、宽、背景等变化
写在最前面:Demo的源起来自于http://js.fgm.cc/learn/,但是实现部分都是经过自己思考和优化的,有时会借助别人的图片,然而“窃喜”.如无特殊说明,demo都是经过ie6.ie7等 ...
- JAVA数据源连接方式汇总
最近在研究JAVA的数据源连接方式,学习的时候发现了一位同行写的文章,转载过来,留作记录! 一.问题引入 在java程序中,需要访问数据库,做增删改查等相关操作.如何访问数据库,做数据库的相关操作呢? ...
- Open multiple Eclipse workspaces on the Mac
This seems to be the supported native method in OS X: cd /Applications/eclipse/ open -n Eclipse.app ...
- Servlet 各种path路径比较
假定你的web application 名称为news,你在浏览器中输入请求路径: http://localhost:8080/news/main/list.jsp 则执行下面向行代码后打印出如下结果 ...
- [转] 软件定义网络(SDN) 的应运而生
原文见51CTO:http://network.51cto.com/art/201103/251425.htm 2012的故事 2012年的某天,你跟往常一样起床,打开电脑,却发现无法登录到邮箱.无法 ...