Linux服务器操作系统内核优化

linux系统管理员可能会经常遇到系统不稳定、响应速度慢等问题

操作系统完成一个任务时,与系统自身设置、网络拓扑结构、路由设备、路由策略、接入设备、物理线路的多个方面都密切相关,任何一个环节出现问题,都会影响整个系统的性能。因此当linux应用出现问题是,应当重应用程序、操作系统、服务器硬件、网络环境等方面综合排查,定位问题出现在哪个部分,然后集中解决。

 

在应用程序、操作系统、硬件服务、网络环境等方面,影响性能最大的是应用程序和操作系统两个方面,应为这两个方面出现问题不易察觉,隐蔽性很强。而硬件、网络方面只要出现问题,一般都能马上定位

照传统,Linux不同的发行版本和不同的内核对各项参数及设置均做了改动,从而使得系统能够获得更好的性能。下边将分四部分介绍在Red Hat Enterprise Linux AS和SUSE LINUX Enterprise Server系统下,如何用以下几种技巧进行性能的优化:

QUOTE:

1、Disabling daemons (关闭 daemons)

2、Shutting down the GUI (关闭GUI)

3、Changing kernel parameters (改变内核参数)

4、Kernel parameters (内核参数)

5、Tuning the processor subsystem(处理器子系统调优)

6、Tuning the memory subsystem (内存子系统调优)

7、Tuning the file system(文件系统子系统调优)

8、Tuning the network subsystem(网络子系统调优)

 

1 关闭daemons

有些运行在服务器中的daemons (后台服务),并不是完全必要的。关闭这些daemons可释放更多的内存、减少启动时间并减少CPU处理的进程数。减少daemons数量的同时也增强了服务器的安全性。缺省情况下,多数服务器都可以安全地停掉几个daemons。

注意:关闭xfs daemon将导致不能启动X,因此只有在不需要启动GUI图形的时候才可以关闭xfs daemon。使用startx命令前,开启xfs daemon,恢复正常启动X。

 

2 关闭GUI

只要有可能,就不要在Linux server上启动GUI图形,通常在Linux server上,没有必要启动GUI。,所有的管理任务均可在命令行方式下完成、或者通过重定向X和Web浏览器界面。有几个可用的基于Web的工具(例如webmin, Linuxconf, 和SWAT).

需要的时候启动GUI,用完马上关闭GUI。多数情况,服务器运行在runlevel 3,即在机器启动的时候不进入GUI。命令行方式下,执行startx 来启动Xserver.

1. 查看runlevel的命令:runlevel

会显示出上次和当前的runlevel (如N 5 表示没有上次的runlevel (N) ,当前的runlevel是5).

2. 在不同的runlevels之间切换,使用命令 init

如切换到run level 3,键入命令init 3

下边是对Linux中不同runlevels的简要描述

– 0 – Halt 停机(不要将0设置为缺省,否则服务器启动后就会马上关闭)

– 1 - Single user mode 单用户模式

– 2 - Multi-user 不带NFS的多用户模式 (如果没有网络,相当与3)

– 3 - Full multi-user mode 完全多用户模式

– 4 – Unused 未使用

– 5 - X11

– 6 – Reboot 重启(不要将6设置为缺省,否则服务器会不断地重启)

 

3 改变内核参数

Linux内核是操作系统的核心,对所有的Linux发行版本是通用的。内核参数可以改变,在命令行下执行sysctl 命令。

提示:缺省情况下,LINUX内核包括不必重启就可以使用sysctl命令的必要的模块。尽管如此,如果你在安装系统的时候选择移除该功能,那么你只有重新启动LINUX,才可以使得改变生效。

内核参数保存在/proc(特别是/proc/sys),提供了内核、处理器、内存、网络及其他组件的相关参数。每个执行的进程都有一个以相应PID命名的目录。Figure 10-3列出了一些包括内核信息的文件。

 

4 内核的参数

 

5 处理器子系统调优

处理器对于应用和数据库服务器来讲是最重要的硬件子系统之一。然而在这些系统中,CPU经常是性能的瓶颈。

在配有Xeon处理器的高端服务器中,你可以启用或者关闭Hyper-Threading(超线程功能)。Hyper-Threading在操作系统里将一颗处理器虚拟化为两颗使用。Red Hat Enterprise Linux AS和SUSE LINUX Enterprise Server都支持该功能,从而可以使处理器在同一时刻执行两个线程或者进程。对于支持Hyper-Threading的操作系统和软件来说,不需要增加CPU时钟频率即可使性能得到明显的改进。例如,在4路的服务器上起用Hyper-Threading功能并使用性能监测工具(如top)来检测,可以看到8颗处理器。

提示,对于Hyper-Threading:

_ 基于SMP内核的LINUX才可以支持Hyper-Threading

_ 安装的CPU数量越多,从Hyper-Threading获得的性能上的提高就越少。可获得的性能提高大约为:

– 2颗物理CPU: 15-25%

– – 4颗物理CPU: 1-13%

– – 8颗物理CPU: 0-5%

– 如需更多的关于Hyper-Threading信息,可查看更多

EM64T是Intel IA-32处理器的64-bit扩展。意思是,处理器能够支持更多的内存并支持64-bit应用同时完全兼容现存的32-bit应用。Red Hat Enterprise Linux 3 Update 2 和 SUSE LINUX Enterprise Server 9支持这种新的处理器。如需更多的EM64T信息,可查看更多

选择正确的内核

Red Hat Enterprise Linux AS和SUSE LINUX Enterprise Server都包括有若干个内核包,如Table 10-6所列。选择合适的内核对性能非常重要。

 

6 内存子系统的调优

内存子系统的调优不是很容易,需要不停地监测来保证内存的改变不会对服务器的其他子系统造成负面影响。如果要改变虚拟内存参数(在/proc/sys/vm),建议您每次只改变一个参数然后监测效果。对与虚拟内存的调整包括以下几个项目:

配置Linux内核如何更新dirty buffers到磁盘。磁盘缓冲区用于暂存磁盘的数据。相对于内存来讲,磁盘缓冲区的速度很慢。因此,如果服务器使用这类内存,性能会成问题。当缓冲区内的数据完全dirty,使用:sysctl -w vm.bdflush="30 500 0 0 500 3000 60 20 0"

vm.bdflush有9个参数,但是建议您只改变其中的3个:

  • nfract, 为排队写入磁盘前,bdflush daemon允许的缓冲区最大百分比
  • ndirty, 为bdflush即刻写的最大缓冲区的值。如果这个值很大,bdflush需要更多的时间完成磁盘的数据更新。
  • nfract_sync, 发生同步前,缓冲区变dirty的最大百分比

配置kswapd daemon,指定Linux的内存交换页数量

sysctl -w vm.kswapd="1024 32 64"

三个参数的描述如下:

– tries_base 相当于内核每次所交换的“页”的数量的四倍。对于有很多交换信息的系统,增加这个值可以改进性能。

– tries_min 是每次kswapd swaps出去的pages的最小数量。

– swap_cluster 是kswapd 即刻写如的pages数量。数值小,会提高磁盘I/O的性能;数值大可能也会对请求队列产生负面影响。

如果要对这些参数进行改动,请使用工具vmstat检查对性能的影响。其它可以改进性能的虚拟内存参数为:

_ buffermem

_ freepages

_ overcommit_memory

_ page-cluster

_ pagecache

_ pagetable_cache

 

7 网络子系统的调优

操作系统安装完毕,就要对网络子系统进行调优。对其它子系统的影响:影响CPU利用率,尤其在有大量TCP连接、块尺寸又非常小时,内存的使用会明显增加。

 

你可能感兴趣的:(linux,运维,linux)