首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >升级的SQL server,性能急剧下降。

升级的SQL server,性能急剧下降。
EN

Server Fault用户
提问于 2013-06-13 17:55:13
回答 2查看 163关注 0票数 0

使用新的SQL服务器寻求帮助。

我的一个客户端正在运行一个老化的SBS 2003服务器(Xeon 3060,4G RAM)和一行业务应用程序,使用SQL server 2005使用一个25千兆的SQL数据库。他们有14个同时使用。服务器有1G的NIC,所有东西都连接到一个48端口的千兆位交换机上。

SPECIFICATIONS:

我用一个新的服务器(Xeon E5620,48千兆内存)替换了运行2012的服务器。新服务器有4个网卡,如下所示:

  • 英特尔Gigabit NIC被配置为LBFO团队。该团队与虚拟交换机接口,所有VM的接口都通过virtual接口。
  • 1 Gigabit NIC用于超-V管理
  • 为IPMI提供1台专用网卡

虚拟机和分配的内存如下:

  • 'SBS2011‘(16G)是他们的DC、Exchange、DNS等,也是他们的一般文件共享
  • “SERVER2”(16 gig)正在运行SBS高级插件(Server 2008 R2 +SQLServer2008Standard),并承载着他们的业务数据库和与该数据库相关的另一个文件共享。
  • 我偶尔用作测试工作站的虚拟Win7pro (4g)机器
  • 一台用于Hyper管理的虚拟Win8pro (4G)机器(尽管我发现我更喜欢powershell命令)。
  • 这给超级V核心的开销留下了8G的空间

症状:

当第一批用户进入并开始工作时,它的功能是可以接受的,但仅仅在5-10分钟之后,性能坦克就可以发挥作用了。然后,他们在应用程序中切换“制表符”需要10-30秒。这种情况发生在有线和无线客户端上。

SQL服务器被分配了16G内存,当然SQL服务立即获得了15G内存。由于该服务器还提供另外两个小型应用程序和一个文件共享,所以我认为将SQL内存限制在10 gig是明智的。这个问题仍然存在。

考虑到我需要以一种合乎逻辑的方式来处理这个问题,我已经安装了一些软件来监控网络的各个方面,包括两个服务器上的内存和CPU的使用,两个服务器和无线的带宽。现在它已经收集了一些数据供我使用,我相信我在SQL服务器上仍然存在与内存相关的问题。

请记住,旧服务器与SBS操作系统、Exchange、all File Share和SQL 2005一起运行4G RAM的数据库,因此我认为16G应该可以。当然,我意识到这是一个不同的操作系统和不同的软件。

到目前为止我做过的事情:

  1. 将SQL实例的上限设置为10吉,以便为其他应用程序和开销留出资源。
  2. 将备份配置为在凌晨12:30关闭SQL服务,并在凌晨1:00重新启动它(目的是释放资源)

客户员工在早上7:30左右开始上班,性能箱在上午8:00开始工作。在下面的服务器内存图中可以看到正在发生以下情况:

从前一天12:30开始,可用内存约为4G,SQL服务停止,可用内存约为15G。上午1:00 SQL服务启动,可用内存约为5.5G7:30,员工的可用内存开始下降(员工开始登录应用程序),上午8:10性能差,员工不开心,老板不高兴=我不开心

我的想法和考虑:

这是一个整天都在看病人的医疗办公室。半数以上的工作人员在病人在那里的时候,会在短时间内查阅病人记录。对这些信息进行长期缓存可能是不必要的。其余的工作人员都是从同一个应用程序访问时间表、账单等。

  1. 可用的服务器内存似乎是相关的。同意/不同意?
  2. 我读过关于Windows文件系统缓存的文章,我想就此提出建议。
  3. 我觉得我应该为Server虚拟机分配更多的内存。我可以核武器的Win8 & Win7的VM下降到1G,留下4的超级V核心。这样我就可以在SQL server上抛出10 G,把它撞到26 gig。
  4. 关于#3,我想要关于如何在服务器内分配这个内存的建议。我是把它给2008年的R2操作系统,还是把它分配给SQL实例,还是把它分散到这两个实例中呢?
  5. 我还应该考虑做些什么来提高绩效呢?
  6. 从我所能看到的情况来看,CPU的使用和带宽似乎不是一个问题,但请在doaks.net/sqlhelp上查看资源截图和图形。

如有任何建议,将不胜感激。

谢谢。

EN

回答 2

Server Fault用户

发布于 2013-06-13 18:22:26

可用的服务器内存可能与问题无关。SQL Server应该占用所有内存,并将其保存在自己的位置。这是故意的。

当您将Server从Server 2005升级到Server 2008时,R2是否更新了Server数据库中表上的统计信息?这需要完成,因为Server 2005中构建的统计信息不被Server 2008及更高版本所使用。

您需要查看Server内部,以了解问题的来源。只要看一下CPU、内存和网络统计数据,你就只能得到一半的图片。SQL Server执行计划将告诉您您需要知道的关于正在发生什么的一切,特别是如果统计数据过时了(我猜它们是过时的),如果缺少索引的话。此外,您需要查看索引碎片,以查看您的索引是否严重碎片,导致内存浪费和额外的物理IO。

对于读和写,IO工作负载是什么样的,特别是响应时间和每秒IO?

Server中的等待状态是什么?在运行查询时,数据库中是否存在阻塞?

停止重新启动Server实例吗?这样做只会使事情变得更糟,而且会使问题更难解决,而不是更容易解决。

应用程序中是否有大量的动态SQL,还是都是通过存储过程完成的?

票数 0
EN

Server Fault用户

发布于 2013-06-13 22:01:36

在SQL服务器上抛出硬件只会有这么大的帮助。配置错误的安装可能会降低性能,而不需要从PerfMon之类的工具中找到明显的原因。如果您没有重要的数据库调优经验,请雇用Server顾问。

如果系统在较少的硬件上执行可接受的操作,则可能会出现配置问题。一位称职的顾问应该能够在5小时内解决这个问题。(https://www.google.com/?q=sql+server+consultant)

如果您还想尝试解决问题,请看以下关于基本性能故障排除的教程:

  • 服务提供商_闪电战 (自动诊断脚本)
  • 与服务器一起使用虚拟化的技巧
  • 使用活动监测器,特别注意等待、IO统计和等待任务
  • SQL server中包含的大多数监视工具的本演练。

另外,停止重新启动--您所做的一切都是导致Server释放它用来加速执行的所有有用的缓存。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/515633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档