首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL性能,如何准确地度量瓶颈

SQL性能,如何准确地度量瓶颈
EN

Server Fault用户
提问于 2011-07-13 07:08:10
回答 2查看 314关注 0票数 1

昨天,我(程序员)和我的一位同事从我们的主机部开始了一系列的测试,以解决我们网站的性能问题。我们正在运行一个具有8gb内存的Windows 2008服务器。我们将用一个8 gb的内存来升级我们的服务器,因为我们的客户正在体验后端的缓慢性能(Sitecore)。我们认为,我们的性能问题与服务器上有太多的数据库有关。我们已经快速查看了我们正在测试的服务器上的性能计数器,但是我们的测试服务器与我们的实时服务器完全不同。我们在testserver上隔离了一些网站,并在该服务器上启动了一些压力源/数据库测试,并尝试了一些没有经验的计数器进行测量。如何使用性能计数器在我们的实时服务器上解决这个问题?关于如何解决这种性能问题,有什么好的指南吗?任何建议都将不胜感激!

EN

回答 2

Server Fault用户

发布于 2011-07-13 12:56:35

我不认为性能计数器会给出一个有用的答案,因为它们只会告诉您经常发生的某些事情,或者您得到的吞吐量类型,但是您已经知道吞吐量不是很好。

我看过我们me上可用的性能计数器,其中没有任何东西对此特别有帮助。您可以尝试一下SQLServer:等待统计类别中的一些计数器,以获得一些指示。

不过,我想从通常的嫌疑犯开始:

  1. 通常情况下,数据库支持的网站的性能瓶颈与缓慢的数据库查询相连接。这通常是由于缺少索引和糟糕的查询设计造成的。根据您的SQL版本,您应该能够在google上搜索一些建议来识别慢速查询。
  2. 如果将MySQL作为数据库运行,则应定期分析慢速查询日志。
  3. 同样对于MySQL,检查服务器运行状态变量,特别是完全连接选择。
  4. 如果有可能,请将DB服务器与web服务器分开。恒定的上下文切换也不利于性能的提高。
票数 1
EN

Server Fault用户

发布于 2011-07-15 13:28:04

在之前的一项工作中,我的任务是找到一些业绩问题,并为纠正提供建议。我总是从perfmon的一些基本计数器开始。

代码语言:javascript
复制
%Disk Time
%Idle Time
Avg Disk Queue Length
Avg Disk sec/Transfer
Pages/sec
% Processor Time

我还将尝试隔离应用程序中一些缓慢的页面,并查看它们的查询。有时重击页面(如主页)可能会有缓慢的查询,从而使其他适当执行的查询慢下来。一旦我找到了一些查询,我通常会在管理演播室中执行这些查询,并查看它们的查询计划,以细化痛点,比如缺少或不正确的索引。这是非常基本的,在最后。这对我来说也很容易,因为它是一个SAAS应用程序,许多客户端都使用相同的软件连接到保存服务器。

慢的原因可能是你碰到了一个自然的临界点,在这个临界点上,你的网络流量加上你的数据库服务器对于一个盒子来说太多了。但是在您将$5,000抛到一个新的数据库服务器之前,先看看perfmon数据,看看是否有些东西还不够突出。在我的例子中,直接附加存储数组上的许多磁盘IO是问题所在。添加额外的纺锤是一种可能的解决方案。以及添加更多的内存,以允许更多的缓存,并卸载日志文件到不同的RAID阵列在机器上。在这种情况下,web层也不在DB服务器上,所以这对我来说不是问题。

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

https://serverfault.com/questions/289767

复制
相关文章

相似问题

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