Enterprise Just Builder

Solution for Enterprise Software Architecture

xperf

Xperf 高手训练营 (1): NetTCPPortSharing 和 NLA Services 导致系统启动缓慢

本系列文章将通过一些现实生活中的例子来展示如何用 Xperf 工具来诊断一些常见的性能问题,并如何实现系统优化的。1

我们的第一个案例是某台笔记本花了2分钟才能显示出正常的桌面。要加速启动速度,我们必须先了解问题出在哪里。所以首先需要抓取系统痕迹(trace),xbootmgr 工具适用于系统开关机的场景,其命令如下:

xbootmgr -trace boot -traceFlags Latency+DISPATCHER -postBootDelay 120 -stackWalk Profile+ProcessCreate+CSwitch+ReadyThread+Mark+SyscallEnter+ThreadCreate

注意这里的 -stackwalk 开关。 stackwalking 使得我们可以在痕迹中查看模块以及函数调用。对于 64位机器,在收集痕迹文件之前,须先禁止执行换页以防部分内核被换出。你可以执行以下命令来达到这一目的。

Reg.exe add “HKLM\System\CurrentControlSet\Control\Session Manager\Memory Management” -v DisablePagingExecutive -d 0x1 -t REG_DWORD -f

收集好痕迹文件,接着打开 Performance Analyzer。Performance Analyzer (又称 xperfview) 是用来分析 XPERF 痕迹的工具。它是 Windows 性能工具箱(Windows Performance Toolkit) 中的利器,该工具箱是 Windows SDK 的一部分。

 

, ,

XPerf — Windows Performance Toolkit 使用简介

文章评价:

从 Windows 2000 开始,Windows 中就带了事件跟踪机制。所谓事件跟踪,是一种从各种系统组件触发事件的基础设施,只为少量的内核模式下的实体所使用。在 Windows XP 中, MOF 文件 (与 WMI 提供程序的元数据类似)被用来描述事件。在 Windows Vista 和 Windows Server 2008 中,事件用 XML 装配清单来描述事件,这个设计使得 ETW 的使用更为普遍,成百上千的新的事件提供程序( Event Proivder ) 被添加到系统中。

这些提供程序会产生什么信息呢?首先, Windows事件日志(Windows Event Log) 使用这些 ETW 提供程序生成的一部分信息(但不是全部)。因此可以获得有关系统事件的各种诊断消息。另一个提供程序是性能监视器(Performance Monitor), 特点是能够查询成组的 ETW 事件。将这些不同源的信息组织在一起并不是件容易的事。尤其利用同样的跟踪,在对系统的整体的分析和对某些特定应用的分析中不断切换的时候。

这种整合的需求最终导致了 Windows 性能工具包(Windows Performance Toolkit, WPT) 的诞生,它致力于数据收集和集成,是正确地解释和利用 ETW 输出不可缺少的工具。特别的是,它能用一致的方式查看大量的信息,让你能够对系统内正发生的事情有一个整体印象。另外,通过利用内核采样中断,你可以使用全局的采样事件探查器 (包括调用堆栈分析)。更棒的是,它是完全免费的。

下面让我们来看看 WPT 的功能。从 Windows 7 开始,WPT 被包括在 Windows SDK 中,你需要下载 Windows SDK 并安装它。

>>> 阅读全文

 

, , , , , , , ,

Windows 开/关转换性能分析

简介
Windows 开/关转换(即启动、休眠、关机过程)的性能对用户体验是至关重要的,因为它提高了用户对计算机的感受程度,并提供一致的开/关机体验。

对于以下的用户场景,开/关机转换性能非常重要:

  • 用户将硬件和操作系统的启动时间作为主要的性能指标。
  • 系统更新可以保护 Windows 用户并及时引入新功能,但用户对漫长的更新和重新启动周期感到沮丧。过长的关机时间会让用户感到烦躁,并增加了系统管理员的服务时间。较长的关机时间,也对移动系统的可靠性产生不利影响,例如增加了因电力不足而意外关机的风险。
  • 移动用户希望他们的计算机的能迅速转换到睡眠状态。睡眠性能对保持数据的完整性是非常重要的。如果从休眠状态恢复的时间太长,用户将忽略睡眠功能,而是直接关闭计算机。

本文会详细介绍 Windows 的开/关转换,重点介绍每个转换阶段的性能漏洞,并展示了如何通过使用 Windows 性能工具包(WPT)识别和分析这些问题。性能分析往往是必要的,因为诸如应用程序、驱动程序、服务和设备等这些系统扩展,如果没有经过优化,都会对开/关转换时间产生负面影响。优化不良的系统扩展通常由下面原因导致:

  • 延迟
  • 缺乏并行
  • 过多的资源消耗

本文可以帮助用户大大减少开/关转换时间。我们将这些性能优化应用到了实验室的许多系统上,在一些系统中,启动到桌面的时间减少了将近50%。某些系统上,开机时间减少到 40 到 50 秒。但是转换过程中的驱动程序,服务,或应用程序的影响是各不同的,因此你的测试结果也不尽相同。

表1是某四台真实机器的 Windows 7 的启动时间。这一数据显示了从BIOS POST 结束后到 Post Boot 阶段(系统空闲状态)所经过时间。启动阶段在本文后面的“引导转换”一节中会进一步说明。

>>> 阅读全文

 

, , , , ,