关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » SQL Server »SQL Server服务器内存升级后性能恶化的破解

    SQL Server服务器内存升级后性能恶化的破解

    2010-07-15 17:36:00 出处:ITJS
    分享

    以下的文章主要向大家讲述的是SQL Server服务器在内存升级之后出现性能恶化的问题的破解,在实际操作中我们经常遇到这一问题,以下的文章就是针对这一问题给出的具体解答方案。

    不久之前,笔者一个在企业中从事网管工作的朋友向我求助关于SQL Server服务器内存升级后遇到的问题。原来,他们企业准备上一个企业邮箱系统。为了节省开支,他们准备在原来的SQL Server服务器上部署企业的邮箱服务器。为

    不久之前,笔者一个在企业中从事网管工作的朋友向我求助关于SQL Server服务器内存升级后遇到的问题。原来,他们企业准备上一个企业邮箱系统。为了节省开支,他们准备在原来的SQL Server服务器上部署企业的邮箱服务器。为了提高这个服务器的性能,让其能够承担其两种应用服务的重任,所以,他们对内存进行了升级。从原先的1G升级到了2G。

    但是,内存升级完以后,邮箱应用服务的性能不但没有改善,而且,还有恶化的趋势。运行一段时间后,这台服务器上运行的邮箱系统就出现了异常情况。时不时的会报出内存分配不足的情况。一开始,他们还以为是邮箱服务器跟SQL Server服务器不兼容。故还请了邮箱服务器的技术人员前来查看。经过他们的检查,发现是SQL Server服务占用的大部分内存所导致的。SQL Server服务所需要的内存,从升级之前的600M左右一下子到了1.5个G。难怪邮箱应用服务要警报说内存不够了。

    一、原因分析。

    笔者对这种问题已经是见怪不怪了,已经遇到过好几次类似的故障。在SQL Server数据库启动的时候,数据库系统会根据物理内存的大小来动态的增大或者缩小高速缓冲区的容量。这主要是为了提高SQL Server服务器的性能才如此的设计的。

    我们知道,一般情况下,高速缓冲区越大,则SQL Server服务器的性能越好。这主要是因为有些用户查询过的数据都可以放在高速缓冲区(即内存的其中一部分)中。如此的话,当用户下次再次需要这些数据的时候,就不用到硬盘中去读取,而直接在内存中读取即可。而从内存中读取数据要比在硬盘中读取速度要快的多。

    所以,只要当服务器的可用内存在4MB与10MB之间的话,数据库系统就会把它的高速缓冲区不断的扩大。如此的话,当邮箱服务器突然需要用到比较大的内存,如对邮箱进行备份或者有用户群发邮件的时候,就会报错说“内存分配不足”。

    故一般只是内存升级,往往不能够解决SQL Server服务与其他应用服务抢占内存的情况。为了让SQL Server能够与其他应用服务友好的共处,数据库管理员还需要对内存进行合理的分配,限制SQL Server数据库服务内存的占用率。

    二、解决方法。

    针对他们企业的这种情况,笔者给出两个建议。一是合理地给SQL Server数据库分配内存。而是不要把SQL Server服务跟其他应用服务放在同一台服务器上,毕竟数据库服务的并发行访问比较多,对服务器的性能要求比较高。

    若果企业选择第一种应对措施的话,就需要限制SQL Server服务器的内存使用率。为了使得运行在同一台服务器的SQL Server服务器与邮箱服务能够达到一个合理的性能,能够和平共处,就需要采取一定的措施限制SQL Server数据库服务的内存使用量。在SQL Server服务器中,专门提供了一个工具(数据库引擎),可以用来帮助我们干预SQL Server服务器的内存分配。

    具体的说,可以按如下方法进行配置。

    第一步:打开SQL Server企业管理器。

    在SQL Server数据库中,提供了一个图形化界面的企业管理器。在这个管理平台上可以对SQL Server的大部分服务进行管理与配置。SQL Server数据库服务的内存分配规则当然也不例外,可以在这里进行调整。

    第二步:找到我们需要调整的服务器。

    有些企业,可能在网络中部署了多个SQL Server服务器。为了管理的方面,会在其中一台服务器上的企业管理器中集中进行管理。不过,这家企业他们只有一个SQL Server服务器。在我们需要调整的服务器上,右键单击,选择“属性”。然后就会弹出一个对话框。在对话框中选择“内存选项卡”。在这里就可以对数据库应用服务的内存分配方法进行设置。

    第三步:调整相关的内存参数。

    在这张选项卡中,一般有两个参数,分别为最小服务内存与最大服务内存。在实际工作中,我们往往有两种配置方法。

    一是配置一个最大最小内存。即给SQL Server数据库应用服务设置一个最大的使用内存。如此的话,在这个最大的范围之后,数据库系统会根据实际情况,在最大内存范围之内对内存的分配进行调整。一般情况下,最小内存我们可以不设置,只对最大内存进行限制即可。这就给数据库一种自主选择的权利。可以提高内存的使用效率。

    二是固定内存分配。即把“最小服务内存”与“最大服务内存”两个参数设置为相同。如此的话,不管数据库服务需要多大的内存,在服务器启动的时候,操作系统都会给其预留这么大的内存。其他的应用程序及时内存再怎么不足,也不会跨越数据库的内存领地。很明显,这种方式虽然保证了数据库服务的内存需求,但是,内存的使用率并不是很高。

    针对上面两种方法,笔者比较倾向与使用第一种配置,即只对数据库应用服务的最大内存使用率进行限制。只要不超过这个范围,则服务器可以自主的进行调解。那么这个最大的使用率设置成多少合适呢 这主要要看企业所部属的服务了。由于这家企业,在同一台服务器上运行了邮箱服务器与数据库服务器,可能对硬件的压力比较大。因为这两个应用服务,都涉及到比较多的并发访问。所以,即使把硬件升级成了2G,估计也不能够给数据库服务分配比较多的内存。一般来说,并发性访问越多,则最好能够给其配置比较多的内存。

    配置完成之后,不用重新启动,这个规则就会起效。不过笔者还是建议把SQL Server服务重新启动一下。在可以的情况下,把服务器重新启动一下最好。如此的话,操作系统就会根据这个规则,对内存进行重新的调整分配。也可以让SQL Server服务器更好的队内存进行合理的安排。如可以把SQL Serve可用内存固定在一个连续的区域内,以提高数据库的性能。

    三、总结。

    针对这个内存升级后所产生的烦恼,笔者有几句话说。

    一是硬件升级只是数据库服务器性能提升的一个充分条件,而不是必要条件。也就是说,硬件的升级并不一定会导致服务器性能的提升。在硬件升级的同时,往往也需要调整相关的配置。让硬件升级的优势得到极大的发挥。笔者认为,有时候服务配置比纯粹的硬件升级更加重要。一些经验不足的网络管理人员只知道升级硬件,而忽视了服务的调整配置。他们这是走进了一个死胡同,效果往往不能够达到他们的预期。

    二是一些并发性比较大的应用服务器,最好不要放在同一个SQL Server服务器上。现在企业基于服务器、客户端模式的管理软件应用越来越多。这种模式一个显著的特点,就是并发性访问比较频繁,给应用服务器带来了很大的压力。在一些性能要求比较高的企业,它们把数据库与前台的应用程序服务器都分开放置,以求优化服务器的性能。而且,现在SQL Server服务器价格已经逐渐能够被企业所接受。笔者认为,企业没有必要在这方面省钱。若多个应用服务并发性访问比较多的情况下,则最好考虑把他们部署在不同的服务器上。以提高各个应用服务的性能。

    三是在同一个服务器上部署多个应用服务的话,要考虑应用服务的稳定性。因为像这家企业在同一个服务器上部署数据库与邮箱服务器,笔者并不是很赞同。因为邮箱服务器是一个比较容易遭受到攻击的服务器。垃圾邮件、病毒邮件等等都可能导致服务期运行不正常。把邮箱服务放在SQL Server数据库服务旁边,会降低数据库服务的稳定性。最好还是能够分开部署。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    hiberfil.sys文件可以删除吗?了解该文件并手把手教你删除C盘的hiberfil.sys文件

    Window 10和 Windows 11哪个好?答案是:看你自己的需求

    盗版软件成公司里的“隐形炸弹”?老板们的“法务噩梦” 有救了!

    帝国CMS7.5编辑器上传图片取消宽高的三种方法

    帝国cms如何自动生成缩略图的实现方法

    Windows 12即将到来,将彻底改变人机交互

    帝国CMS 7.5忘记登陆账号密码怎么办?可以phpmyadmin中重置管理员密码

    帝国CMS 7.5 后台编辑器换行,修改回车键br换行为p标签

    Windows 11 版本与 Windows 10比较,新功能一览

    Windows 11激活产品密钥收集及专业版激活方法

    IT头条

    智能手机市场风云:iPhone领跑销量榜,华为缺席引争议

    15:43

    大数据算法和“老师傅”经验叠加 智慧化收储粮食尽显“科技范”

    15:17

    严重缩水!NVIDIA将推中国特供RTX 5090 DD:只剩24GB显存

    00:17

    无线路由大厂 TP-Link突然大裁员:补偿N+3

    02:39

    Meta 千万美金招募AI高级人才

    00:22

    技术热点

    微软已修复windows 7/windows 8.1媒体中心严重漏洞 用户可下载安

    卸载MySQL数据库,用rpm如何实现

    windows 7中使用网上银行或支付宝支付时总是打不开支付页面

    一致性哈希算法原理设计

    MySQL数字类型中的三种常用种类

    如何解决SQL Server中传入select语句in范围参数

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。