系统与服务监控技术实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 系统性能监控

本书中的系统性能监控,监控目标计算机使用的操作系统为Windows Server 2008,监控中的方法同样适用于其他版本的Windows服务器操作系统。在操作系统监控中,主要监控三方面的性能,分别为:CPU、内存和磁盘,书中其他部分将详细阐述监控实现的方法。

1.2.1 监控CPU性能

CPU全称Centre Process Unit(中央处理器),CPU是系统性能的最重要指标,也是计算机的基础组件,主要完成数据运算功能,可以将CPU形象比喻为“大脑”。CPU的性能从根本上决定着服务器的性能。如果CPU出现瓶颈将影响计算机的性能。在Windows Server操作系统中,提供了针对CPU的性能计数器,通过计数器即可了解CPU的利用率。

1. CPU性能计数器

Windows Server2008操作系统中提供的“Processor”对象,详细提供CPU的使用时间、空闲时间、传输性能等参数。

“Processor”性能计数器

“Processor”性能计数器是能够监控处理器活动方面的计数器。处理器是计算机进行算数和逻辑计算、在附属件起始操作及运行处理线程的部分。一台计算机可以有多台处理器。处理器对象将每台处理器作为对象的实例,如图1-1所示。

图1-1 CPU性能计数器之一

正在监控的“Processor”性能指标如图1-2所示。从该指标中,可以分析出当前计算机CPU的使用状态。

图1-2 CPU性能计数器之二

2. 资源监视器-CPU监测

资源监视器提供CPU监测功能,通过图表和文本信息可以详细了解正在使用的CPU基本状态,能够显示正在运行的应用程序CPU的利用率、线程数以及CPU的平均利用率,如图1-3所示。

图1-3 CPU监测之一

3. CPU性能计数器分析

CPU利用率值如果持续超过95%,表明CPU存在瓶颈,可以考虑增加一个处理器或更换一个更快的处理器。如果服务器专用于SQL Server数据库,可接受的最大上限是80%~85%,通常情况下CPU的利用率合理使用范围在60%~70%。

Windows资源监控中,如果计数器“System\Processor Queue Length”大于2,而处理器利用率计数器“Processor Time”一直很低,则存在着处理器阻塞情况。

CPU资源成为系统性能瓶颈的预兆:

● 系统响应时间很慢

● CPU空闲时间为零

● 过高的用户占用CPU时间

● 过高的系统占用CPU时间

● 长时间有很长的运行进程队列

1.2.2 监控内存性能

内存是系统性能的最重要指标之一,也是计算机的基础组件,主要完成数据转储功能,可以将内存形象比喻为“仓库保管员”。内存容量的大小在一定程度上决定着服务器的性能。如果内存分配完毕将使用虚拟内存调用文件,内存瓶颈将影响计算机的性能。在Windows Server操作系统中,提供了针对内存的性能计数器,通过计数器即可了解内存的使用状态。

1. 内存

服务器中内存概念比较特殊,包括3部分的内容,分别为:物理内存、CPU缓存以及虚拟内存。下面简介这三部分的完成的功能。在对服务器内存监控时要监控三部分的性能。

(1)物理内存

服务器之所以需要高性能的内存,是由其自身的特点所决定的。作为为网络中其他计算机提供服务的计算机,在同一时间,服务器要响应几十台甚至几百台、上千台计算机发出的请求。因此服务器需要更多、更快的CPU来处理这些请求。如果没有足够大的内存,即使服务器的CPU速度再快,其性能也无法充分施展。原因很简单,CPU处理的数据必须从内存中调取,并将计算结果写入内存。

如果服务器没有足够的内存,就会把硬盘作为虚拟内存来使用。硬盘的响应速度比内存慢了几十倍至几百倍以上,因此,大量使用虚拟内存将会严重影响服务器的性能。服务器内存数量不足,将表现为响应速度较慢、硬盘指示灯长亮等,严重时将停止响应,即陷入“死机”状态。解决这些问题的有效方法只有一个——增加内存的容量。内存也不可以随便添加,不匹配的内存会导致服务器的稳定性下降。添加服务器内存,最好使用由服务器生产厂商验证过的产品,或者直接从服务器生产厂商处购买。

(2)CPU缓存

CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小但交换速度快。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。

当CPU要读取一个数据时,首先从缓存中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。

CPU在缓存中找到有用的数据称为命中。当缓存中没有CPU所需的数据时(这时称为未命中),CPU才访问内存。从理论上讲,在拥有二级缓存的CPU中,读取一级缓存的命中率为80%。也就是说,CPU一级缓存中找到的有用数据占数据总量的80%,剩下的20%从二级缓存中读取。由于不能准确预测将要执行的数据,读取二级缓存的命中率也在80%左右(从二级缓存读到有用的数据占总数据的16%)。服务器CPU中还带有三级缓存,是为读取二级缓存后未命中的数据设计的—种缓存。在拥有三级缓存的CPU中,只有约5%的数据需要从内存中调用,从而大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待,进一步提高了CPU的效率。

由于不同CPU的一级缓存容量往往相差不大,因此,二级和三级缓存容量就成为决定CPU性能的关键。二级和三级缓存容量越大,CPU的性能就越高,价格也就越贵。

(3)虚拟内存

虚拟内存是当作内存来弥补计算机物理内存空间缺乏的硬盘空间。Windows操作系统用虚拟内存管理器动态管理运行时的交换文件。操作系统默认提供比实际物理内存还多的内存容量以供使用,Windows操作系统使用硬盘部分空间作为虚拟内存。当CPU需要时,首先会读取内存中的资料。当内存容量不够用时,Windows就会将需要暂时储存的数据写入硬盘。因此,计算机的内存大小等于实际物理内存容量加上“分页文件”的大小。如果需要的话,“分页文件”会动用硬盘上所有可以使用的空间。

2. 内存性能计数器

Windows Server2008操作系统中提供的“Memory”、“Paging File”对象,详细提供内存的读、写、传输速率等参数。

(1)“Memory”性能计数器

“Memory”性能计数器是监控内存活动方面的计数器,由描述计算机上的物理和虚拟内存行为的计数器组成。物理内存指计算机上的随机存取存储器的数量。虚拟内存由物理内存和磁盘上的空间组成。许多内存计数器监视页面调度(指磁盘与物理内存之的代码和数据页的移动)。过多的页面调度(内存不足的一种表现)可引起拖延,会影响整个系统处理效率,如图1-4所示。

图1-4 “Memory”性能计数器之一

正在监控的“Memory”性能指标如图1-5所示。从该指标中,可以分析出当前计算机内存的使用状态。

图1-5 “Memory”性能计数器之二

(2)“Paging File”性能计数器

“Paging File”性能计数器是监控在计算机上分页文件的计数器。分页文件指为备份计算机上已用物理内存而保留的磁盘空间。管理员通过该计数器可以确认虚拟内存文件的大小,如图1-6所示。

图1-6 “Paging File”性能计数器之一

正在监控的“Paging File”性能指标如图1-7所示。从该指标中,可以分析出当前计算机虚拟内存文件的大小。

图1-7 “Paging File”性能计数器之二

3. 资源监视器-内存监测

资源监视器提供内存监测功能,通过图表和文本信息可以详细了解正在使用的内存基本状态,能够显示正在运行的应用程序内存使用状态,如图1-8所示。

图1-8 内存监测之一

4. 内存性能计数器分析

Windows性能计数器监控中,如果 “Process\Private Bytes” 计数器和“Process\Working Set”计数器的值在长时间内持续升高,同时“Memory\Available bytes”计数器的值持续降低,则可能存在内存泄漏。

内存资源成为系统性能瓶颈的预兆:

● 很高的换页率

● 进程进入不活动状态

● 交换区所有磁盘的活动次数可高

● 很高的全局系统CPU利用率

● 内存不足,出现提示信息

1.2.3 监控磁盘性能

磁盘是系统性能的重要指标之一,也是计算机的基础组件,主要完成数据存储功能,可以将磁盘形象的比喻为“仓库”。如果磁盘出现瓶颈将影响计算机甚至网络的性能。随着技术的发展,单一的磁盘已经不能满足系统需求,以Raid为基础的应用成为主要应用模式。在Windows Server操作系统中,提供了部分针对磁盘的性能计数器,通过计数器即可了解磁盘的使用状态。磁盘性能不仅对操作系统有直接的影响,对运行操作系统上的网络服务也有直接的影响。

1. Raid存储模式

Raid,英文全称Redundant Array of Independent Disks,中文意思是“独立磁盘冗余阵列”,有时也简称磁盘阵列(Disk Array)。

(1)Raid简介

Raid是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。组成磁盘阵列的不同方式成为Raid级别(Raid Levels)。数据备份的功能是在用户数据一旦发生损坏后,利用备份信息可以使损坏数据得以恢复,从而保障了用户数据的安全性。在用户看起来,组成的磁盘组就像是一个硬盘,用户可以对它进行分区,格式化,等等。总之,对磁盘阵列的操作与单个硬盘一模一样。不同的是,磁盘阵列的存储速度要比单个硬盘高很多,而且可以提供自动数据备份。

Raid可以充分发挥出多块硬盘的优势,可以转换硬盘速度,增大容量,提供容错功能,确保数据安全性,在任何一块硬盘出现问题的情况下都可以继续工作,不会受到损坏硬盘的影响。使用Raid可以带来以下优点:

● 通过把多个物理磁盘组织在一起作为一个逻辑卷提供磁盘跨越功能。

● 通过把数据分成多个数据块并行写入/读出多个磁盘以提高访问磁盘的速度。

● 通过镜像或校验操作提供容错能力。

(2)常用Raid模式

Raid技术分为几种不同的级别,分别可以提供不同的速度,安全性和性价比。根据实际情况选择适当的RAID级别可以满足用户对存储系统可用性、性能和容量的要求。常用的RAID级别有以下几种: Raid 0、Raid 1、Raid 1+0和Raid 5等。目前经常使用的是Raid 5和Raid 1+0。下面将简述Raid不同级别的数据存储模式以及数据容错功能。

(3)Raid 0

Raid 0是通过将2个或更多磁盘上的可用空间区域合并到一个逻辑卷而创建的,可以在多个磁盘上分布数据。Raid 0不能被扩展或镜像,并且不提供容错。如果包含RAID 0的其中一个磁盘出现故障,则整个逻辑磁盘无法工作。最好使用相同大小、型号和制造商的磁盘。利用Raid 0,可以将数据分块并按一定的顺序在阵列中的所有磁盘上,以分布式存储数据。Raid 0可以同时对所有磁盘进行写数据操作,从而可以相同的速率向所有磁盘写数据,提高数据的写入速度,如图1-9所示。

图1-9 Raid 0

尽管不具备容错能力,但Raid 0在所有数据存储模式中的性能最好,同时它通过在多个磁盘上分配I/O请求从而提高了I/O性能。例如,Raid 0在以下情况下提高了性能:

● 从(向)大的数据库中读(写)数据。

● 以极高的传输速率从外部源收集数据。

Raid 0模式,至少需要2块硬盘,可以使用N块同样的硬盘用硬件的形式通过智能磁盘控制器或用操作系统中的磁盘驱动程序以软件的方式串联在一起,形成一个独立的逻辑驱动器,容量是单独硬盘的N倍,在执行数据写操作时被依次写入到各磁盘中,当一块磁盘的空间用尽时,数据就会被自动写入到下一块磁盘中,它的好处是可以增加磁盘的容量,速度与其中任何一块磁盘的速度相同。Raid 0不具备数据备份、容错的功能,如果选中磁盘的有一块出现故障的情况下,所有数据将全部丢失。

假设现在有2块硬盘,建立了Raid 0数据存储模式,数据以64K为单位进行读写,可以同时对2块硬盘进行读写,所以Raid 0对数据的写入、读出速度非常快。一个文件假设有4个文件块,第一个块文件写入第一个磁盘,第二个块文件写入第二个磁盘,第三个块文件写入第一个磁盘,第四个块文件写入第二个磁盘,以此类推。数据处理模式如图1-10所示。

图1-10 Raid 0数据处理模式

(4)Raid 1

Raid 1,即磁盘镜像,把一个磁盘的数据镜像到另一个磁盘上,在不影响性能情况下最大限度的保证系统的可靠性和可修复性上,具有很高的数据冗余能力,多用在保存关键性的重要数据的场合。如果一个物理磁盘出现故障,虽然该磁盘上的数据将无法使用,但系统能够继续使用尚未损坏而仍继续正常运转的磁盘进行数据的读写操作,从而通过另一磁盘上保留完全冗余的副本,保护磁盘上的数据免受介质故障的影响。

Raid 1的磁盘空间利用率只有50%(每组数据有两个成员),所以Raid 1磁盘使用成本的花费相对较高。不过,对于服务器系统而言,稳定是压倒一切的,一旦系统瘫痪,所有数据都将随之而消失,所以,这些代价是非常值得的,如图1-11所示。

图1-11 Raid 1

使用Raid 1,最好使用大小、型号和制造厂家都相同的磁盘,以避免可能产生的兼容性错误。Raid 1可以增强读性能,因为容错驱动程序同时从两个成员中同时读取数据,所以读取数据的速度会有所增加。当然,由于容错驱动程序必须同时向两个成员写数据,所以,写性能会略有降低。Raid 1,至少需要2块硬盘。2块硬盘建立的镜像容量必须相同。Raid 1的容量等于所选用的磁盘存储空间的总和除以所使用的磁盘数目。在实际工作环境中,Raid 1模式可能用的是最多的。

服务器上现在有2块硬盘,建立了Raid 1。Raid 1的数据是以64K为单位读写的,一个文件假设有4个文件块,第一个块文件写入第一个磁盘,同时第一个块文件写入第二个磁盘,第二个块文件写入第一个磁盘,同时第二个块文件写入第二个磁盘,以此类推。可以看出,Raid 1具备了数据备份的功能,就是说如果有一块磁盘损坏的情况下,备份的磁盘还可以继续工作保证数据的安全。数据处理模式如图1-12所示。

图1-12 Raid 1数据处理模式

提·示

Raid 1是把同一个数据块分别写入到2块不同的磁盘中,在执行数据写入的时候,速度会有一定程度的降低,但是在读出的时候,是以并发的方式读取得,也就是说,读出的速度要远远快于写入的速度。

Raid 1具备以下特点:

● Raid 1的每一个磁盘都具有一个对应的镜像盘,任何时候数据都同步镜像,系统可以从一组镜像盘中的任何一个磁盘读取数据。

● 磁盘所能使用的空间只有磁盘容量总和的一半,成本高。

● 系统中任何一对镜像盘中至少有一块磁盘可以使用,甚至可以在一半数量的硬盘出现问题时系统都可以正常运行。

● 出现硬盘故障的Raid系统不再可靠,应当及时的更换损坏的硬盘,否则剩余的镜像盘也出现问题,那么整个系统就会崩溃。

● 更换新盘后原有数据会需要很长时间同步镜像,外界对数据的访问不会受到影响,只是这时整个系统的性能有所下降。

● Raid 1磁盘控制器的负载相当大,用多个磁盘控制器可以提高数据的安全性和可用性。

(5)Raid 5

在Raid 5中,操作系统通过给该卷的每个硬盘分区中添加奇偶校验信息带区实现容错。如果某个硬盘出现故障,操作系统便可以用其余硬盘上的数据和奇偶校验信息重建发生故障的硬盘上的数据,如图1-13所示。

图1-13 RAID 5

由于要计算奇偶校验信息,所以,Raid 5的写操作要比Raid 1的写操作慢一些。但是,Raid 5卷比Raid 1提供更好的读性能,原因很简单,操作系统可以从多个盘上同时读取数据。与Raid 1相比,Raid 5的性价比较高,而且Raid 5卷中的硬盘数量越多,冗余数据带区的成本越低,因此,Raid 5被广泛应用于数据存储。

Raid 5,目前使用最多的一种数据备份方式,如果企业资金比较宽裕,又对速度要求很高,建议使用硬件Raid 5数据存储方式。Raid 5卷至少需要3块硬盘或者更多的硬盘,比前面的几种方式硬盘数量都多。如果使用了3块硬盘,那么Raid 5卷的容量等于所选用的其中2块磁盘的存储空间的和。3块硬盘建立的Raid 5方式的容错所需的存储空间必须相同。Raid 5卷的数据以64K为单位读写的。一个文件假设有6个文件块,第一个块文件写入第一个磁盘,第二个块文件写入第二个磁盘,第一个、第二个块文件写入成功以后,Raid 5根据系统提供的奇偶校验算法对第一个文件块和第二个文件块进行计算,得出一个的奇偶校验值,把这个值写入第三块硬盘中。也就是说现在的硬盘3上存储的不是第三个块文件,而是校验信息;然后第三个块文件写入第一个磁盘,第四个块文件写入第三个磁盘,第二个磁盘上存储的是第三个、第四个块文件的奇偶检验信息;然后第五个块文件写入第二个磁盘,第六个块文件写入第三个磁盘,第一个磁盘上存储的是第五个、第六个块文件的奇偶检验信息,以此类推。从以上的存储算法看出,Raid 5卷具备数据容错功能,就是说如果有一块磁盘损坏的情况下,更换磁盘以后,可以根据奇偶校验算法反算出损坏的那块磁盘的数据,保证数据的安全。如果这个例子中的2块硬盘出现了问题,数据也会全部丢失。数据写入如图1-14所示。

图1-14 Raid 5数据处理模式

Raid 5卷是把数据块顺序的写入不同的磁盘中,在执行数据写入、读取的时候以并发的方式操作,也就是说,写入、读取得速度时非常快的。同时Raid 5卷具备了容错功能。

(6)Raid1+0

Raid 1+0即由两组Raid 1的硬盘作Raid 0的镜像容错。虽然Raid1+0具备有RAID 1的容错能力和Raid 0的容量性能。但Raid 1+0的容量还是与Raid 1一样只有50%。

Raid 1+0就是结合Raid 0、Raid 1两种的的优点,但是需要4块硬盘,而且可使用容量也只有2块硬盘的大小。数据除分布在多个盘上外,每个盘都有其物理镜像盘,提供全冗余能力,允许所有磁盘基组中的磁盘个损坏一个,但是不允许同一基组中的磁盘同时有坏的,而不影响数据可用性,并具有快速读/写能力。数据处理如图1-15所示。

图1-15 Raid1+0数据处理模式

2. 磁盘性能计数器

Windows Server2008操作系统中提供的“Physical Disk”和“Logical Disk”等对象,详细提供磁盘的读、写、分页池、传输速率、错误页面等参数。

(1)“Physical Disk”性能计数器

“Physical Disk”性能计数器监控是计算机上的硬盘或固定磁盘驱动器的计数器。磁盘用于存储文件、程序及分页数据并且通过读取检索这些项目并通过记录写入对其进行更改。物理磁盘计数器的值为逻辑磁盘(由磁盘分成)值的总和,如图1-16所示。

图1-16 “Physical Disk”性能计数器之一

正在监控的“Physical Disk”性能指标如图1-17所示。从该指标中,可以分析出当前物理磁盘的使用状态。

图1-17 “Physical Disk”性能计数器之二

(2)“Logical Disk”性能计数器

“Logical Disk”性能计数器,监控硬盘或固定磁盘驱动器逻辑分区的计数器,用逻辑磁盘的驱动器号(如: C)来识别逻辑磁盘,如图1-18所示。

图1-18 “Logical Disk”性能计数器之一

正在监控的“Logical Disk”性能指标如图1-19所示。从该指标中,可以分析出当前逻辑磁盘的使用状态。

图1-19 “Logical Disk”性能计数器之二

3. 资源监视器-磁盘监测

资源监视器提供监测磁盘读写操作功能,通过图表和文本信息可以详细了解正在使用的磁盘基本状态,甚至可以定位到是哪一个应用程序正在产生磁盘读写操作,如图1-20所示。

图1-20 磁盘监测之一

4. 磁盘性能计数器分析

Windows性能计数器监控中,如果“Disk Time”和“Avg.Disk Queue Length”计数器的指标值很高,而“Page Reads/sec”页面读取操作速率很低,则可能存在磁盘瓶径。

磁盘资源成为影响系统性能瓶颈的预兆。

● 过高的磁盘利用率

● 太长的磁盘等待队列

● 等待磁盘I/O的时间所占的百分率太高

● 太高的物理I/O速率

● 过低的缓存命中率

● 太长的运行进程队列,但CPU却空闲。