Linux系统性能优化方法

这篇文章的知识点包括:影响Linux性能的因素,Linux系统性能优化的方法,阅读完整文相信大家对Linux系统性能优化的有了一定的认识。

一、性能问题综述

系统的性能是指操作系统完成任务的有效性、稳定性和响应速度。Linux系统管理员会经常遇到系统不稳定、响应速度慢等问题,例如在Linux上搭建了一个web服务,经常会出现网页打不开、打开速度慢等现象,而遇到这些问题,就会有人抱怨Linux系统不好,其实这些都是表面现象。操作系统完成一个任务时,与系统自身设置、网络拓补结构、路由设备、路由策略、接入设备、物理线路等多个方面都紧密相关,任何一个环节出现问题,都会影响整个系统的性能。因此当Linux应用出现问题是,应当从应用程序、操作系统、服务器硬件、网络环境等方面综合排查,定位问题出现在那个部分,然后集中解决。

在应用程序、操作系统、服务器硬件、网络环境等方面。影响性能最大的是应用程序和操作系统两个方面,因为这两个方面出现的问题不易察觉,隐蔽性很强。而硬件、网络方面只要出现问题,一般都能马上定位。本次博文主要介绍操作系统方面的性能调优思路,应用程序方面需要具体问题具体对待。

以下从影响Linux性能的因素、分析性能设计的人员、系统性能优化工具、系统性能评价标准四个方面介绍优化Linux的一般思路和方法。

二、影响Linux性能的因素

1)系统硬件资源

1)CPU

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

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

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

2)内存

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

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

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

3)磁盘I/O性能

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

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

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

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

Linux系统性能优化方法