昨天我(程序员)和我们的主办部门的一位同事开始了一系列testing,以解决我们网站的性能问题。 我们正在运行带有8gb内存的Windows Server 2008服务器。 我们将用一个8 GB的ram升级我们的服务器,因为我们的客户正在经历后端(Sitecore)的低速performance。 我们认为我们的性能问题与我们服务器上的数据库太多有关。 我们已经快速查看了正在testing的服务器上的性能计数器,但是我们的testing服务器与我们的实时服务器完全不同。 我们在testing服务器上隔离了一些网站,并在服务器上启动了一些压力testing/数据库testing,并尝试用我们没有任何经验的计数器进行测量。 我们如何使用性能计数器在我们的服务器上解决问题? 有没有什么好的指导如何解决这种性能问题呢? 任何意见将不胜感激!
我不认为性能计数器会给出一个有用的答案,因为他们只是经常告诉你某些事情发生了,或者你得到了什么样的吞吐量,但是你已经知道吞吐量并不是很好。
我看了一下MS SQL Server上的可用性能计数器,没有任何内容让我觉得这个特别有用。 你可以试试SQLServer中的一些计数器:等待统计类别来获得一些指示。
但是,我会从通常的嫌疑人开始:
在以前的工作中,我的任务是find一些性能问题,并提出纠正的途径。 我总是从perfmon开始看一些基本的计数器。
%Disk Time %Idle Time Avg Disk Queue Length Avg Disk sec/Transfer Pages/sec % Processor Time
我也将尝试隔离应用程序中的一些缓慢页面,并检查他们的查询。 有时,像主页面这样重的页面可能会减慢查询速度,从而使其他正常执行的查询速度下降。 一旦我追踪了一些查询,我通常会在pipe理工作室中执行这些查询,并查看他们的查询计划,以修复诸如缺less索引或不正确索引等问题。 这到底是非常基础的。 这对我来说也很简单,因为它是一个SAAS应用程序,许多许多客户端都使用相同的软件连接到保存服务器。
缓慢可能来自这个事实,这是你打到一个自然的转折点,你的networkingstream量加上你的数据库服务器是一个盒子太多。 但在您将5000美元转储到新的数据库服务器之前,请先查看perfmon数据,看看有没有什么东西可以突出显示。 在我的情况下,直接附加存储arrays上的多磁盘IO是问题。 添加附加主轴是一个可能的解决scheme。 除了添加更多的内存以允许更多caching,并将日志文件卸载到机器中的不同RAIDarrays上。 在这种情况下,Web层也不在数据库服务器上,所以这对我来说不是问题。