1. 测试建议
1.1 测试目的
某企业客户数据仓库平台经过几年的建设,在容量上和性能上将面临不能满足新的业务需求的局限性,需要为下一步分公司的硬件采购和总公司的统一规划上,拿出具有指导意义的平台方案建议。基于目前平台的现状,需要对IA64和X64体系进行对比测试,测试的目的是比对两个平台上原有X32应用在功能兼容性、性能指标、数据准确性等方面的重要指标。
1.2 测试关键点
兼容性:
OLEDB\ODBC驱动的IA64、X64的平台兼容性
调度平台的可用性:涉及到ASP、Main程序、数据仓库平台Portal等
SSIS包、SSAS、SSRS、SP的兼容性验证;
数据准确性:
几张关键业务表的数据抽取总行数、关键列求和、浮点字段的加和除;
增量更新表和全量更新表各确保有一个被测试;
性能:
OLEDB\ODBC驱动在IA64、X64平台的执行性能
SSIS的X32、X64、IA64的相同包、相同配置执行性能对比
根据CPU个数和内存情况对X64、IA64分别做优化后的执行对比(如增加并发数)
数据模型的分层汇总测试;
CubeDB生成立方体的测试;
SSIS包、SSAS、SSRS、SP的分段性能测试;
通过关键性能计数器记录性能影响的关键点;
结合测试机硬件配置和测试记录给出测试报告与采购部署建议,并提供数据基准参考;
2. 性能计数器
性能计数器是Windows平台对系统运行状态监控的重要工具,提供对操作系统本身和面向特定应用的各种性能参数,通过量化的性能计数器,可以对系统性能对比和问题追踪提供重要依据。以下分别介绍比较重要的SSIS性能计数器和操作系统计数器:
2.1 SQL Server提供的计数器
|
指标名称 |
指标描述 |
指标范围 |
|
1 .SQL Server SSIS Pipeline的性能计数器 | ||
|
Buffer memory |
正在使用的各种类型的内存缓冲区的大小。如果该数值大于物理内存量,则 Buffers Spooled 计数将随内存交换的增加而增加。内存交换的增加会降低数据流引擎的性能。 |
|
|
Buffers in use |
数据流引擎当前使用的各种类型的缓冲区对象的数量。 |
|
|
Buffers spooled |
写入磁盘的缓冲区的数量。如果数据流引擎运行时物理内存较低,则当前没有使用的缓冲区会被写入磁盘,然后在需要时重新加载。 |
|
|
Private buffer memory |
所有专用缓冲区所使用的内存总量。如果数据流引擎创建的是一个支持数据流的缓冲区,则该缓冲区就不是专用缓冲区。专用缓冲区是指转换仅用于临时工作的缓冲区。例如,聚合转换使用专用缓冲区来完成其工作。 |
|
|
Private buffers in use |
转换使用的缓冲区的数量。 |
|
|
Rows read |
源产生的行数。该数值不包括查找转换从引用表中读取的行数。 |
|
|
Rows written |
提供给目标的行数。该数值不反映写入目标数据存储区中的行数。 |
|
|
2 . SQL Server中缓冲器管理器( Buffer Manager)对象包含的性能计数器 | ||
|
缓冲区高速缓存命中率 (Buffer Cache Hit Ratio % ) |
指在缓冲区高速缓存中找到而不需要从磁盘中读取的页的百分比。该比率是缓存命中总次数与缓存查找总次数之比。经过很长时间后,该比率的变化很小。由于从缓存中读取数据比从磁盘中读取数据的开销小得多,一般希望该比率高一些。 |
该指标的值最好为 90% 或更高。通常可以通过增加 SQL Server 可用的内存数量来提高该指标的值。增加内存直到这指标的值持续高于 90%,表示 90% 以上的数据请求可以从数据缓冲区中获得所需数据。 |
|
缓冲总页数(Total Pages) |
指在SQL读写过程中使用的缓冲总页数 |
这个计数器是针对SQL Server的物理读写,不是整个系统的物理读写。物理读写比较耗时,所以上面的两个值不要太大。 |
|
读的页 /秒 ( Page Reads/sec) |
指每秒发出的物理数据库页读取数。该指标主要考察数据库从磁盘读取数据的频率。因为物理 I/O 会耗费大量时间,所以应尽可能地减少物理 I/O 以提高性能。 |
该指标的值应尽可能的小。可以通过使用更大的数据高速缓存、智能索引、更高效的查询或者改变数据库设计等方法,以降低该指标的值。 |
|
写的页 /秒 ( Page Writes/sec) |
指每秒执行的物理数据库写的页数。该指标主要考察数据库向磁盘写入数据的频率。因为物理 I/O 会耗费大量时间,所以应尽可能地减少物理 I/O 以提高性能。 |
该指标的值应尽可能的小。可以通过使用更大的数据高速缓存、智能索引、更高效的查询或者改变数据库设计等方法,以降低该指标的值。 |
|
惰性写 /秒 ( Lazy Writes/sec) |
指每秒被缓冲区管理器的惰性编写器写入的缓冲区数。惰性编写器是一个系统进程,用于成批刷新脏的老化的缓冲区(包含更改的缓冲区,必须将这些更改写回磁盘,才能将缓冲区重用于其他页),并使它们可用于用户进程。 |
该指标的值 最好为 0。 |
|
3 .SQL Server中通用( General Statistics)对象包含的性能计数器 | ||
|
事务总数(Transactions) |
执行的事务总数 |
|
|
用户连接数(Use Connections) |
当前用户连接数 |
|
|
4 . SQL Server中访问方法( Access Methods)对象包含的性能计数器 | ||
|
全表扫描 /秒 ( Full Scans/sec) |
指 每秒全表扫描的数量。全表扫描可以是基本表扫描或全索引扫描。由于全表扫描需要耗费大量时间,因此全表扫描的频率过高的话,会影响性能。 |
如果该指标的值比 1或 2 高,应该分析设计的查询以确定是否确实需要全表扫描,以及 SQL 查询是否可以被优化。 |
|
页分割/秒(Page splits/sec) |
由于数据更新操作引起的每秒页分割的数量。[页拆分是说把已满的页上一半的数据移到两个新页上,以便在本页上腾出空间插入数据。页拆分会降低性能。] |
|
|
5 . SQL Server中锁(Locks)对象包含的性能计数器 | ||
|
死锁数(Number of Deadlocks) |
(死锁的数量/秒) 导致死锁的锁请求的数量 |
|
|
平均等待时间(Average Wait Time) |
(平均等待时间(毫秒)) 线程等待某种类型的锁的平均等待时间 |
|
|
6 . SQL Server中内存(Memory)对象包含的性能计数器 | ||
|
服务器内存总数(Total Server Memory) |
Total Server Memory (KB) 计数器值与计算机的物理内存大小相比一直很高,可能需要更多的内存。 |
|
2.2 操作系统提供的计数器
|
指标名称 |
计数器 |
指标描述 |
|
Processor使用 |
%Processor Time(所有实例) |
指处理器执行非闲置线程时间的百分比。这个计数器设计成用来作为处理器活动的主要指示器。它通过在每个范例间隔中衡 量处理器用于执行闲置处理线程的时间,并且用 100% 减去该值得出。(每 台处理器有一个闲置线程,该线程在没有其它线程可以运行时消耗周 期)。可将其视为范例间隔用于做有用工作的百分比。这个计数器显 示在范例间隔时所看到的忙时平均值。这个值是用 100% 减去该服务不活 动的时间计算出来的。 |
|
Processor瓶颈 |
Interrupts/sec |
指处理器每秒钟接收并维护的硬件中断的平均值。它不包括 DPC,DPC 将单独计算。这个值是产生中断的设备(如:系统时钟、鼠标、磁盘驱动器、数据交流线路、网络街面卡和其它附件设备)的活动的间接指示器,这些设备通常在完成了一项任务或需要注意时中断处理器。正常的线程操作在中断时悬停。大多数的系统时钟每隔 10 毫秒中断处理器一次,形成了间隔活动的后台。这个计数值显示用上两个实例中观察到的值之间的差除于实例间隔的持续时间所得的值。 |
|
System/Processor Queue Length(所有实例) |
是指处理列队中的线程数。即使在有多个处理器 的计算机上处理器时间也会有一个单列队。不象磁盘计数器,这个计数器仅 计数就绪的线程,而不计数运行中的线程。如果处理器列队中总是有两个以上的线程 通常表示处理器堵塞。这个计数器仅显示上一次观察的值;而不是一个平 均值。 | |
|
System/Context Switches/sec |
指计算机上的所有处理器全都从一个线程转换到另一个线程的综合速率。当正在运行的线程自动放弃处理器时出现上下文转换,由一个有更高优先就绪的线程占先或在用户模式和特权(内核)模式之间转换以使用执行或分系统服务。它是在计算机上的所有处理器上运行的所有线程的Thread: Context Switches/sec 的总数并且用转换数量衡量。在系统和线程对象上有上下文转换计数器。这个计数值显示在上一次两个实例中观察到的值除于实例间隔的持续时间所得的值的差异。 | |
|
Process (进程) |
Private Bytes |
指这个处理不能与其它处理共享的、已分配的当前 字节数。 |
|
Virtual Bytes |
指处理使用的虚拟地址空间的以字节数显示的当前大小。 使用虚拟地址空间不一定是指对磁盘或主内存页的相应的使用。虚 拟空间是有限,如果使用过多,可能会限制处理加载数据 库的能力。 | |
|
Working Set |
指这个处理的 Working Set 中的当前字节数。 Working Set 是在处理中被线程最近触到的那个内存页集。如果 计算机上的可用内存处于阈值以上,即使页不在使用中,也会留在一 个处理的 Working Set中。当可用内存降到阈值以下,将从 Working Set 中删除页。如果需要页时,它会在离开主内存前软故障返回 到 Working Set 中。sql server的进程Working Set(Process sqlservr) | |
|
Handle Count |
由这个处理现在打开的句柄总数。这个数字是在这个处理中每个线程当前打开的句柄的总数。 | |
26

被折叠的 条评论
为什么被折叠?



