Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103611200
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-05-01 09:39:16

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


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

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


SUSE LINUX 提供了图形界面下的修改方式。使用如下命令来启动powertweak工具:
/sbin/yast powertweak
使用如下命令启动基于字符的管理菜单:
/sbin/yast2 powertweak

[attachment=69]

Red Hat也提供了图形界面下更改sysctl参数的方式:
/usr/bin/redhat-config-proc

[attachment=70]

如图Figure 10-5

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

[attachment=71]

[attachment=72]



4 内核的参数
Table 10-5 列出了Red Hat V2.4与性能关系密切的一些内核参数。


[attachment=73]

[attachment=74]


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

[attachment=75]

提示,对于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所列。选择合适的内核对性能非常重要。


[attachment=76]

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个:
1 nfract, 为排队写入磁盘前,bdflush daemon允许的缓冲区最大百分比
2 ndirty, 为bdflush即刻写的最大缓冲区的值。如果这个值很大,bdflush需要更多的时间完成磁盘的数据更新。
7 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
阅读(332) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~