服务器性能

Bur*_*urt 3 iis windows-server-2003 performance

我们有一个专用的服务器,用于搭建网站(我们的测试服务器)。服务器的性能变得非常糟糕,我们必须定期重新启动它。当性能不佳时,我检查了进程和内存的任务管理器,但一切看起来都不错。

我们使用内容管理系统,并且总是在使用此 CMS 的管理部分时,我们注意到性能下降,这让我认为这可能与 CMS 进行的数据库调用有关。

这听起来可行吗?关于如何进行测试的任何其他建议?

提前致谢...

Tom*_*Tom 5

这听起来可行吗?

是的。

关于如何进行测试的任何其他建议?

性能检查。请注意,性能不仅仅是 CPU。如果您认为 db 是问题,则可能是 IO 限制 - 在这种情况下,磁盘延迟/活动百分比将猛增。检查光盘性能计数器。特别是如果你是 IO buond,CPU 会很低,因为 CPU 基本上不为进程服务,因为它在等待 IO 完成。

越来越忙,通常,数据库需要大量的 IO 预算,这意味着相当多的磁盘。我这里有一个数据库,它现在使用 6 个 10k RPM 光盘,很快就会升级到 8 个 - 仅用于数据。典型的廉价专用服务器通常具有非常糟糕的 IO 预算 - 缓慢的大型最终用户磁盘,其中很少,不能构成快速的子系统。这在某些情况下效果很好,但最终可能会过载。


Hel*_*ick 5

正如 TomTom 所说,这几乎可以肯定表明您的系统受 IO 限制而不是 CPU 限制。根本原因可能只是 CMS 背后增加的负载数据库,也可能是其他原因,但无论如何,PerfMon 都有一些有用的计数器可供查看,可以确定磁盘子系统是否是原因。

\LogicalDisk\Avg. 磁盘秒/读和\LogicalDisk\Avg。Disk Sec/Write
这些是读写 IO 操作的基本延迟数字,越低越好。只要这些数字超过 15 毫秒左右,服务器的性能就会明显变差。

\LogicalDisk\Disk Bytes/Sec 和 \LogicalDisk\Disk Reads/Sec 和 这将告诉您整体磁盘吞吐量。这些速率可能会使磁盘子系统的最大容量饱和,这可能仅仅是由于吞吐量,或者因为您的读/写模式达到了 IOP 限制。除非您 100% 确信您拥有可预测的 IO 模式,否则很难从中推断出任何重要的信息。这里没有真正有用的方法来提供任何要注意的特定数字,但是如果您在单个 SATA 磁盘上看到 50-100MBytes/sec 或更多,那将与您预期的一样好。更快的服务器磁盘(10k、15K、SSD)可以超过这一点,并且只要您支付足够的费用,SAN 附加存储几乎可以提供您想要的任何东西。对于小的随机 IO(典型的 DB 操作),这个数字总是很低并且不会告诉你太多。

\LogicalDisk\Disk Writes/Sec、\LogicalDisk\Disk Reads/Sec 和 \LogicalDisk\Disk Transfers/sec 这些将告诉您每秒离散 IO 操作的数量和读取\写入比率。旋转磁盘在这方面相当有限——7.2K SATA 磁盘每秒可以维持大约 70-80 IO,10K 磁盘将其推高到 100-150 范围,15K 将是 200+。SSD 的数量级将高出一个或两个数量级。对于读取,RAID 组相当线性地增加此值,但写入将导致 2 到 5 之间的损失。例如,3 个驱动器的 RAID 5 包(写入损失为 4)支持的写入 IO 比单个驱动器少约 25%。

如果此数字在延迟增加到危险区域(即 > 15 毫秒)时趋于增加,则强烈表明您的磁盘已达到 IOP 限制,无论报告的具体数字如何。

\LogicalDisk\Split IO/sec 这将告诉您有多少 IO 请求导致多个操作,并让您了解碎片对 IO 活动的影响程度。

PhysicalDisk :当前磁盘队列长度和 PhysicalDisk :Avg。磁盘队列长度。 这会告诉您有多少未完成的 IO 在物理磁盘级别等待完成。如果这在单个磁盘上为 2 或更高,或者超过了构建磁盘的 RAID 组中的磁盘数量,那么您可能将更多的 IO 推入磁盘,而无法及时完成。在某些情况下,这并不重要,但对于需要低延迟磁盘 IO 的系统(内存缓存无法覆盖磁盘弱点的数据库)来说,这将是一个真正的杀手。第一个是瞬时读数,因此只需担心它是否一直处于高位或与 %disk 时间计数器一致。如果平均 磁盘队列长度太高那么你肯定有问题。

PhysicalDisk : % Disk Time % Disk time 告诉您磁盘有多忙。当它接近 100% 时,您将很难让系统执行依赖于该磁盘的任何其他操作,因为所有额外的 IO 将趋于排队。甚至显着低于 100% 的数字也可能表示存在问题,如果该数字很高或正在上升,并且当前磁盘队列长度很高,则明确表明 IO 负载超出磁盘容量。这个数字实际上是以一种奇怪的方式计算的,因此在分析 RAID 性能时可能不是那么有用。

这篇 Technet 博客文章更深入地介绍了其中一些计数器以及一些您可以使用这些计数器来识别问题并确定如何修复它的场景。