首页 百科知识 影响性能的因素

影响性能的因素

时间:2022-10-11 百科知识 版权反馈
【摘要】:CPU是操作系统稳定运行的根本,CPU的速度与性能很大一部分决定了系统整体的性能,因此CPU数量越多、主频越高,服务器性能也相对好越好。可能出现CPU瓶颈的应用有邮件服务器、动态Web服务器等,对于这类应用要把CPU的配置和性能放在主要位置。内存的大小也是影响Linux性能的一个重要的因素。由于处理器寻址范围的限制,在32位Linux操作系统上,应用程序单个进程最大只能使用2GB的内存。磁盘的I/O性能直接影响应用程序的性能。

13.2.1 影响Linux性能的因素

1.CPU

CPU是操作系统稳定运行的根本,CPU的速度与性能很大一部分决定了系统整体的性能,因此CPU数量越多、主频越高,服务器性能也相对好越好。但事实也并非完全如此。

目前大部分CPU在同一时间内只能运行一个线程,超线程的处理器可以在同一时间运行多个线程,因而,可以利用处理器的超线程特性提高系统性能。在Linux系统下,只有运行SMP内核才能支持超线程,但是安装的CPU数量越多,从超线程获得的性能上的提高就越少。另外,Linux内核会把多核的处理器当作多个单独的CPU来识别,例如两个4核的CPU,在Linux系统下会认到8个CPU。但是从性能角度来讲,两个4核的CPU和8个单核的CPU并不完全等价。根据权威部门得出的测试结论,前者的整体性能要低于后者25%~30%。

可能出现CPU瓶颈的应用有邮件服务器、动态Web服务器等,对于这类应用要把CPU的配置和性能放在主要位置。

2.内存

内存的大小也是影响Linux性能的一个重要的因素。内存太小,系统进程将被阻塞,应用也将变得缓慢,甚至失去响应;内存太大,会导致资源浪费。Linux系统采用了物理内存和虚拟内存的概念,虚拟内存虽然可以缓解物理内存的不足,但是占用过多的虚拟内存,应用程序的性能将明显下降。要保证应用程序的高性能运行,物理内存一定要足够大,但是过大的物理内存,会造成内存资源浪费,例如在一个32位处理器的Linux操作系统上,超过8GB的物理内存都将被浪费。因此,要使用更大的内存,建议安装64位的操作系统,同时开启Linux的大内存内核支持。

由于处理器寻址范围的限制,在32位Linux操作系统上,应用程序单个进程最大只能使用2GB的内存。这样,即使系统有更大的内存,一次性也无法“享”用,解决的办法就是使用64位处理器,安装64位操作系统,在64位操作系统下,可以满足所有一次性对内存的使用需求,几乎没有限制。

可能出现内存性能瓶颈的应用有打印服务器、数据库服务器和静态Web服务器等,对于这类应用要把内存大小放在主要位置。

3.磁盘I/O宽带

磁盘的I/O性能直接影响应用程序的性能。在一个有频繁读写的应用中,如果磁盘I/O性能得不到满足,就会导致应用的停滞。好在现今的磁盘都采用了很多方法来提高I/O性能,比如常见的磁盘RAID技术。

RAID的英文全称为Redundant Array of Independent Disks,翻译成中文即为独立磁盘冗余阵列,简称磁盘阵列。RAID通过把多块独立的磁盘(物理硬盘)按不同方式组合起来形成一个磁盘组(逻辑磁盘),从而提供比单个硬盘更高的I/O性能和数据冗余。

通过RAID技术组成的磁盘组,就相当于一个大硬盘,用户可以对它进行分区格式化、建立文件系统等操作,跟单个物理硬盘一模一样,唯一不同的是RAID磁盘组的I/O性能比单个硬盘要高很多,同时对数据的安全性也有很大提升。

根据磁盘组合方式的不同,RAID可以分为RAID0,RAID1,RAID2,RAID3,RAID4,RAID5,RAID6,RAID7,RAID0+1和RAID10等级别,常用的RAID级别有RAID0,RAID1,RAID5和RAID0+1。这里简单介绍如下。

·RAID0:通过把多块硬盘粘合成一个容量更大的硬盘组,提高了磁盘的性能和吞吐量。这种方式成本低,要求至少两个磁盘,但是没有容错和数据修复功能,因而只能用在对数据安全性要求不高的环境中。

·RAID1:也就是磁盘镜像,通过把一个磁盘的数据镜像到另一个磁盘上,最大限度地保证磁盘数据的可靠性和可修复性,具有很高的数据冗余能力,但磁盘利用率只有50%,因而,成本最高,多用在保存重要数据的场合。

·RAID5:采用了磁盘分段加奇偶校验技术,从而提高了系统可靠性。RAID5读出效率很高,写入效率一般,至少需要3块盘。它允许一块磁盘故障,而不会影响数据的可用性

·RAID0+1:把RAID0和RAID1技术结合起来就成了RAID0+1,至少需要4个硬盘。此种方式的数据除分布在多个盘上外,每个盘都有其镜像盘,提供全冗余能力,同时允许一个磁盘故障,而不会影响数据可用性,并具有快速读/写能力。

通过对各个RAID级别的介绍,我们就可以根据应用的不同特性,选择适合自身的RAID级别,从而保证应用程序在磁盘方面达到最优的性能。

4.网络I/O宽带

Linux下的各种应用,一般都是基于网络的,因此网络宽带也是影响性能的一个重要因素,低速的、不稳定的网络将导致网络应用程序的访问阻塞,而稳定、高速的带宽,可以保证应用程序在网络上畅通无阻地运行。幸运的是,现在的网络一般都是千兆带宽,或者光纤网络,带宽问题对应用程序性能造成的影响也在逐步降低。

通过对以上四个方面的讲述,不难看出,各个方面之间都是相互依赖的,不能孤立地从某个方面来排查问题。当一个方面出现性能问题时,往往会引发其他方面出现问题。例如大量的磁盘读写势必消耗CPU和I/O资源,而内存的不足会导致频繁地进行内存页写入磁盘、磁盘写到内存的操作,造成磁盘I/O瓶颈,同时,大量的网络流量也会造成CPU过载。所以,在处理性能问题时,要纵观全局,从各个方面进行综合考虑。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈