WCI361 Windows Vista WCI361 Windows Vista 运行性能设计与 改进
课程内容概述 当前个人计算机性能局限在哪里 Windows Vista 在运行性能上有哪些改进 有效地利用内存SuperFetch™ 避免硬盘 I/O 瓶颈 ReadyBoost™ReadyDrive™辅助的工具 低优先级 I/O 诊断工具 根据硬件情况进行动态性能调整
PC 硬件的运行速度比较 内存 ( 和 CPU) 速度 3-4 GB/s 硬盘顺序读写速度 MB/s 闪盘 (USB2) 读写速度 MB/s 硬盘随机读写速度 1 MB/s
PC 为什么会时慢时快 内存内容不合适运行性能随时间退化目标软件最近没运行过其他软件不必要的占用了内存 用户使用状态切换, 影响内存内容质量 重新启动或睡眠( sleep/hibernate ) 切换用户 (user switch) 中午休息和运行大程序 硬盘随机 (random I/O), 硬盘 I/O 等待 (blocking I/O) 页面错误 ( Page faults ) 软件初始化( Program loads ) 磁盘起动时间( Disk spin up time ) 磁盘寻道时间( Disk seeks time )
硬盘寻道 (Disk Seek) 问题 硬盘制造业不断地改善磁盘制造技术,磁盘转速 和接口标准都不断进步 ATA/33 ATA/66 ATA/100 SATA 4200 转 5400 转 7200 转 转 2 MB 8 MB 16 MB 结果 : 最高顺序读写速度为 80+ MB/s 这样的速度, 1 GB 的内存需要 12.8 秒可以充满 寻道用的时间在不断的进步, 但相比之下还不够快 3.5” Desktop 硬盘平均寻道用时约 10 mSec 2.5” Mobile 硬盘平均寻道用时约 ~12.5 mSec 如果能用到磁道续存 (track buffer) 会好很多 随机 IO 速度局限在 ~ 1MB/sec 这样的速度, 1 GB 的内存需要 1024 秒才可以充满!
.data pages 主文件表 (MFT) Entry 目录项 (Directory) Entry PE Header.text pages Dram Cache DLLs 在硬盘上的分布
硬盘寻道问题 现代 PC 的 I/O 里,随机 I/O 占很大一部分 MobileMark 2005 基准检验的 I/O 50% 只有 4KB 大小, 而且是随机的 文件在硬盘上的储存的节构 一个动态链接库( DLL )在硬盘上至少共储存在 5 到 6 个不同的位置 目录 ( Directory ), 主文件表的条目 (主文件表 (MFT) Entry ), 还有别的文件 系统元数据 ( File System Metadata )及其他 象 Internet Explorer, Adobe Reader, 或 Outlook 这样常用的软件都需要超 过 100 个 DLLs 可靠性和持久性 记录 (Logging), 进程 (Transactions), 软件临时用的文件 (Temp files) 一个简单的注册表 (Registry) 内容更新可能需要 5 到 6 个随机 I/O 和有序的硬盘改 写 (Writes) 页面错误 (page faults) 的读取等待 Code 页面, Stack 页面, Heap 页面都有可能出现页面错误
用户看到的是什么呢? 使用模式切换非常慢在内存不够用时,软件反应缓慢软件启动非常慢
硬盘寻道问题演示
Windows Vista 怎样解决这个问题 内存管理上的突破: Superfetch 只要可能,尽量不去读写硬盘 非读不可时,使用合适的优先级 I/O (Prioritized I/O) 新增加了诊断问题的工具和功能
智能的内存管理
Internet Explorer 内存 OS 启动程序 Microsoft Word Outlook Photo Editor 硬盘 空白内存 内存缓存 现有 (Windows XP) 的内存管理方法
SuperFetch SuperFetch 是内存管理的重要突破 根据用户使用电脑的方法和习惯来优化内存管理考虑到页面的使用频率,和页面之间的关系适应不同的内存使用方式,包括很复杂的情况 在同一个电脑上可以跟据不同的账号 ( 用户 ) ,时间,一 周里的哪一天来改变内存内容 用户透明,用户和软件都不需知道 SuperFetch 的存在
Internet Explorer 内存 OS 启动程序 Microsoft Word Outlook Photo Editor Disk 内存缓存 SuperFetch
SuperFetch SuperFetch 可以事先预测而且可以应变不同的情 况 把需要用到的内容事先放到内存里尽量保持把正确的内容留在内存里
Internet Explorer 空闲任务 Microsoft Word Outlook 空闲任务 Internet Explorer 空闲任务 Outlook 空闲任务 MS Word 空闲任务 OS 启动程序 Photoshop Photoshop 现有的内存管理 (LRU 最近最少使用算法 ) OS 启动程序 Photoshop 内存缓存 OS 启动程序 Photoshop Photoshop Superfetch OS 启动程序 Photoshop 把正确的内容留在内存理
SuperFetch SuperFetch 不会影响现有系统性能 在事先充满内存时利用低优先级 I/O (Low Priority I/O) SuperFetch 同时管理内存和系统缓存 (I/O cache)
避免从硬盘上取数据造成的阻塞避免从硬盘上取数据造成的阻塞
ReadyBoost SuperFetch 利用闪盘作为缓存 外部连接的 USB keys, SD cards, Compact Flash, 内部 的 PCIe cards 在出现页面错误时,用这种方法可以很快的把需 要的数据读到内存里 可以达到从硬盘里读取同样数据的 10 倍速度 根据用户使用电脑的方式主动预测把数据存到闪 盘里
Readyboost 演示
ReadyBoost 的特点 可靠 用直写高速缓存,用户可以随时取掉闪盘, 而不用担心 数据损失 闪盘受损也不是问题 独创的集中写入 (write gathering) 方法有效地优化运行性能,同 时避免闪盘磨损 根据不同的闪盘大小和差别 (1~10 万次的擦写操作 ) ,预测寿命 为 19.4 – 1823 年 安全保险 数据用 AES-128 加密过 高效 数据压缩率可达 1.8 到 2.3 倍
ReadyDrive Hybrid 硬盘 硬盘里加入一个闪盘,非易失性缓存 (NV Cache) 磁盘停转时还可以读写数据关机后缓存里的数据还可以保存 SuperFetch 提供有效的缓存管理 Dram Cache NV Cache Up to 90% Power Saving over conventional HDD SATA or PATA Interface Read and Write while spindle is stopped
主文件表 (MFT) Entry 目录项 (Directory) Entry Dram Cache.data pages PE Header.text pages 在硬盘上的 DLLs
主文件表 (MFT) Entry 目录项 (Directory) Entry PE Header.text pages Dram Cache NV Cache.data pages ReadyDrive 硬盘上的 DLLs
ReadyDrive 缓存存储的内容 系统写入数据 (Cache writes) 主机启动和休眠恢复所需的数据和程序 原始设备制造商( OEMs )加入的数据和程序 数据读取缓存 (Cache reads)
ReadyDrive 的优点 运行性能主机启动更快 睡眠和恢复更快 减少硬盘寻道增强运行性能,同时增加每秒钟可运行的 I/O 节省电源和增强电池的时间 有了 ReadyDrive, Windows Vista 可以把磁盘停传,从而减少一般 2.5” 硬盘的 70-90% 的电源消费量 可靠性的进步 写入数据时震动和碰撞对 ReadyDrive 都不是问题 磁盘停传可以减少噪音
Readydrive 演示
ReadyDrive ATA 指令集 微软,硬盘制造业,和工业伙伴合作定义了一个 新的 ATA 指令集,从而使得 ReadyDrive 的管理成 为可能 一个 ATA 指令加上子命令 (sub-commands) 定义 (identify) ReadyDrive hybrid 硬盘功能 增加与减少 ReadyDrive 里数据和程序 查询 ReadyDrive 里数据和程序 开始与结束节电模式 这套指令集使 T13 接受进入了 ATA 8 规范而成为标 准 ReadyDrive 设备和硬盘都有机会创新
ReadyBoost and ReadyDrive ReadyBoost 与 ReadyDrive 起着相辅相成的作用 两个都以 SuperFetch 为基础 ReadyDrive 帮助用户使用状态切换 可以把一些数据固定在缓存理加速一些数据的读写加强系统可靠性节省能源ReadyBoost大型的读缓存减缓内存压力
ReadyBoost & ReadyDrive 系统内存 硬盘盘面 (HDD Platter) Read Cache ReadyBoost Write Cache OEM Pinning Boot Data Read Cache ReadyDrive NVRAM RAM Magnetic
有优先级的 I/O
低优先级 I/O 为什么用低优先级 I/O? 很长时间来,程序员可以用线程优先级来控制处理器 (CPU) 的使 用 只控制处理器 (CPU) 使用还是有可能导致整个系统变慢 在 Windows Vista, 程序员可以控制 I/O 的优先级 低优先级 I/O 有哪些应用 SuperFetch 查询索引的产生 (Search indexing) Windows Defender 磁盘碎片整理程序 (Disk defrag software) 启动程序
怎样使用低优先级 I/O Call SetThreadPriority with THREAD_BACKGROUND_MODE_BEGIN Call SetProcessPriorityClass with PROCESS_BACKGROUND_MODE_BEGIN
诊断运行性能的工具
现今运行性能工具的不足之处 可重复性很多时侯,运行性能问题不能重复主动性 Event logs 对用户来说不是很容易用
Performance Analyzer Windows Diagnostic Infrastructure System Event Log CKCL - ETW Kernel Events Windows Vista 运性能诊断架构 运行性能调试和问题诊断 减少诊断运行性能问题的时间更快更好的诊断和解决运行性能问题 利用 Circular Kernel Context Logger (CKCL) 的信息 CKCL 提供既时系统活动和信息的记录 系统会自动分析某些问题的根源 分析结果写入 System Event Log
Vista 运行性能优点 Windows Vista 系统运行性能相对稳定 使用模式切换有很大进步既使在系统压力很大时,系统对用户命令反应快捷 Windows Vista 在技术上有重大创新 SuperFetch 是内存管理上的突破 ReadyDrive Hybrid 硬盘在硬盘的可靠性,电池寿命,和运行性能 上都有帮助 ReadyBoost 利用闪盘来增强系统运行性能,从而使用户不需增加 内存 Low priority I/O 使得背景应用程序不会影响用户的主要活动 Windows Vista 在运行性能问题诊断有很大进步 Circular Kernel Context Logger (CKCL)
根据硬件情况进行动态性能调整
PC 硬件越来越复杂 PC 硬件系统的两极分化越来越大 高端有多核 (multiple core) 系统,低端有 value single core system 高端有 Media center 笔记本电脑, 低端有轻而薄 (thin and light) 笔记本电脑 Windows Vista OS 有些功能只有相配的硬件才会开启,比如: Windows Vista 桌面组合和 Aero 主题 Windows Vista 放映幻灯片和视频的某些功能 现有应用软件怎样应变不同的硬件呢? 在 Windows XP ,基本上是由软件自己选择应变不同的硬件 Windows XP 提供了很少的几个工具来帮助应用软件根据不同的硬件决定功能 D3D 提供的图形功能信息对游戏软件有帮助 应用软件可以通过 WMI 来列举系统功能 只有一些应用软件有自己的系统功能凭估程序游戏是个例外但是游戏也经常把功能留给用户来调整
Windows Vista 有什么改进 新工具: Windows System Assessment Tool (WinSAT) WinSAT 是 Windows Vista 操作系统的一部分 每个 Windows Vista 系统第一次登录前都会运行 WinSAT 为应用软件根据不同硬件作调整,提供系统运行数据和信息 WinSAT 评估系统以下的几种运行性能 处理器 (CPU) 系统内存 Windows 的桌面图形和游戏 (3D) 图形 硬盘 WinSAT 有以下的一些应用 在 Windows Vista 里启用 Aero 是 logo test SYSFUND-046 规定的一部分 在 Windows Vista Readiness Advisor 和 Any Time Upgrade 工具里 为 Windows Vista 系统和应用软件提数据 作为计算机爱好者评估系统性能的工具 WinSAT 提供一个简单的 COM 接口,应用软件可以用来访问 WinSAT 的数据
带个客户更多价值 Windows 体验评分 (WEI) 源于 WinSAT 评估结果 处理器 (CPU) , 系统内存,视窗图形,游戏图形,和硬盘 都有 1.0 到 5.9 的子分数 (Sub Score) WEI 系统基本分数 (Based Score) 由五个子分数的最低决定 一个 PC 上的 WEI 分数不会变,除非硬件有所更新 Vista 出版时, WEI 分数从 1.0 到 到 9 个月以后会增加 6.0 到 6.9 以后每 12 个月会增加一个新个位数 (7,8,9,10 …) WEI 和 Windows Vista WEI 评分是 Windows Vista 系统第一次登录前运行 WinSAT 生成的 WEI 评分信息可以从系统控制面板 (System CPL) 和性能信 息和工具面板 (Performance Information and Tools CPL) 得到
WEI 演示
Windows 体验指数 (WEI) 指什么? 应用场景对应计算机 Level 1 最基本的性能表现. 可保障日常工作用软件, 即时通讯软件, 浏览网页, 收发邮件, 小型益智类游戏 ( 如 纸牌、跳棋 ) 能够正常运行 满足运行 Windows ® Vista™ 的最低性能标准 市场定位 : 入门级台式机、笔记本. 超轻薄型便携式计算 机 Level 2 更优良的性能表现. 所支持软件与上一级别相同. 计算机可以较流畅运行 Windows Vista ,但是还不能够完 全支持 Aero 效果. 市场定位 : 中低端型台式电脑. 普及型轻薄笔记本电脑. Level 3 支持 Aero 效果, 支持 Windows 媒体中心, 可以运行画面较复杂的大中型游戏 满足运行 Windows Vista 高级特性 (Aero 效果 ) 的最低配置 标准. 市场定位 : 高性价比台式电脑. 超轻薄型笔记本电脑,用 于替代台式机的笔记本电脑. Level 4 流畅的性能表现支持高清晰视频播放支持高清晰多显示器输出性能优秀的计算机 市场定位 : 用于替代台式机的笔记本,高端笔记本. Level 5 支持流畅运行画面绚丽复杂的大型游戏流畅运行要求较高的大型应用程序 个人计算机市场中的顶级机型. 市场定位 : 顶级台式和笔记本电脑
Windows 体验评分 WEI 的设计目的是为了能让用户购买和合作伙伴出 售 PC 和软件的过程能更轻松有保障 PC 的性能更清楚 PC 和软件销售的过程更容易解释产品的性能 用户的期望比较现实也比较容易满足减少产品的返回率和支持费用 WEI 不是整个 PC 的评分
Resources Windows PC Accelerators Technical Chats and Webcasts Microsoft Learning and Certification MSDN & TechNet Newsgroups communities/newsgroups/en-us/default.aspx Technical Community Sites User Groups