Linux性能调优的几种方法.docx
- 文档编号:6639080
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:15
- 大小:583.27KB
Linux性能调优的几种方法.docx
《Linux性能调优的几种方法.docx》由会员分享,可在线阅读,更多相关《Linux性能调优的几种方法.docx(15页珍藏版)》请在冰豆网上搜索。
Linux性能调优的几种方法
Linux性能调优的几种方法
按照传统,Linux不同的发行版本和不同的内核对各项参数及设置均做了改动,从而使得系统能够获得更好的性能。
下边将分四部分介绍在RedHatEnterpriseLinuxAS和SUSELINUXEnterpriseServer系统下,如何用以下几种技巧进行性能的优化:
QUOTE:
1、Disablingdaemons(关闭daemons)
2、ShuttingdowntheGUI(关闭GUI)
3、Changingkernelparameters(改变内核参数)
4、Kernelparameters(内核参数)
5、Tuningtheprocessorsubsystem(处理器子系统调优)
6、Tuningthememorysubsystem(内存子系统调优)
7、Tuningthefilesystem(文件系统子系统调优)
8、Tuningthenetworksubsystem(网络子系统调优)
1关闭daemons
有些运行在服务器中的daemons(后台服务),并不是完全必要的。
关闭这些daemons可释放更多的内存、减少启动时间并减少CPU处理的进程数。
减少daemons数量的同时也增强了服务器的安全性。
缺省情况下,多数服务器都可以安全地停掉几个daemons。
Table10-1列出了RedHatEnterpriseLinuxAS下的可调整进程.
Table10-2列出了SUSELINUXEnterpriseServer下的可调整进程
注意:
关闭xfsdaemon将导致不能启动X,因此只有在不需要启动GUI图形的时候才可以关闭xfsdaemon。
使用startx命令前,开启xfsdaemon,恢复正常启动X。
可以根据需要停止某个进程,如要停止sendmail进程,输入如下命令:
RedHat:
/sbin/servicesendmailstop
SUSELINUX:
/etc/init.d/sendmailstop
也可以配置在下次启动的时候不自动启动某个进程,还是sendmail:
RedHat:
/sbin/chkconfigsendmailoff
SUSELINUX:
/sbin/chkconfig-ssendmailoff
除此之外,LINUX还提供了图形方式下的进程管理功能。
对于RedHat,启动GUI,使用如下命令:
/usr/bin/redhat-config-services或者鼠标点击MainMenu->SystemSettings->
ServerSettings->Services.
提示:
并非所有的daemons都会显示在该配置界面,如要看到全部的daemons,使用如下命令:
/sbin/chkconfig–list
对于SUSELINUX,图形界面是YaST2,可用如下命令来启动
/sbin/yast2runlevel或者如Figure10-2所示用鼠标点击
Browse:
YaST/−>YaSTmodules−>System−>Runleveleditor
2关闭GUI
只要有可能,就不要在Linuxserver上启动GUI图形,通常在Linuxserver上,没有必要启动GUI。
,所有的管理任务均可在命令行方式下完成、或者通过重定向X和Web浏览器界面。
有几个可用的基于Web的工具(例如webmin,Linuxconf,和SWAT).
需要的时候启动GUI,用完马上关闭GUI。
多数情况,服务器运行在runlevel3,即在机器启动的时候不进入GUI。
命令行方式下,执行startx来启动Xserver.
1.查看runlevel的命令:
runlevel
会显示出上次和当前的runlevel(如N5表示没有上次的runlevel(N),当前的runlevel是5).
2.在不同的runlevels之间切换,使用命令init
如切换到runlevel3,键入命令init3
下边是对Linux中不同runlevels的简要描述
–0–Halt停机(不要将0设置为缺省,否则服务器启动后就会马上关闭)
–1-Singleusermode单用户模式
–2-Multi-user不带NFS的多用户模式(如果没有网络,相当与3)
–3-Fullmulti-usermode完全多用户模式
–4–Unused未使用
–5-X11
–6–Reboot重启(不要将6设置为缺省,否则服务器会不断地重启)
修改文件/etc/inittab来设置机器启动的runlevel,如Figure10-3。
对于SUSELINUXEnterpriseServer,执行YaSTrunlevel命令改变缺省runlevel值.
如图Figure10-2。
缺省情况下,保存了6个控制台:
F1……F6。
为节省内存,可以减少为3个。
使用mingettyttyx命令来实现,如图Figure10-3
提示:
即便是已经关闭了GUI,依然可以远程连接并启动GUI,可以使用ssh-x
3改变内核参数
Linux内核是操作系统的核心,对所有的Linux发行版本是通用的。
内核参数可以改变,在命令行下执行sysctl命令。
提示:
缺省情况下,LINUX内核包括不必重启就可以使用sysctl命令的必要的模块。
尽管如此,如果你在安装系统的时候选择移除该功能,那么你只有重新启动LINUX,才可以使得改变生效。
SUSELINUX提供了图形界面下的修改方式。
使用如下命令来启动powertweak工具:
/sbin/yastpowertweak
使用如下命令启动基于字符的管理菜单:
/sbin/yast2powertweak
RedHat也提供了图形界面下更改sysctl参数的方式:
/usr/bin/redhat-config-proc如图Figure10-5
Parameterstoragelocations
内核参数保存在/proc(特别是/proc/sys),提供了内核、处理器、内存、网络及其他组件的相关参数。
每个执行的进程都有一个以相应PID命名的目录。
Figure10-3列出了一些包括内核信息的文件。
4内核的参数
Table10-5列出了RedHatV2.4与性能关系密切的一些内核参数。
5处理器子系统调优
处理器对于应用和数据库服务器来讲是最重要的硬件子系统之一。
然而在这些系统中,CPU经常是性能的瓶颈。
在配有Xeon处理器的高端服务器中,你可以启用或者关闭Hyper-Threading(超线程功能)。
Hyper-Threading在操作系统里将一颗处理器虚拟化为两颗使用。
RedHatEnterpriseLinuxAS和SUSELINUXEnterpriseServer都支持该功能,从而可以使处理器在同一时刻执行两个线程或者进程。
对于支持Hyper-Threading的操作系统和软件来说,不需要增加CPU时钟频率即可使性能得到明显的改进。
例如,在4路的服务器上起用Hyper-Threading功能并使用性能监测工具(如top)来检测,可以看到8颗处理器。
如图Figure10-6
提示,对于Hyper-Threading:
_基于SMP内核的LINUX才可以支持Hyper-Threading
_安装的CPU数量越多,从Hyper-Threading获得的性能上的提高就越少。
可获得的性能提高大约为:
–2颗物理CPU:
15-25%
––4颗物理CPU:
1-13%
––8颗物理CPU:
0-5%
–如需更多的关于Hyper-Threading信息,可浏览:
EM64T是IntelIA-32处理器的64-bit扩展。
意思是,处理器能够支持更多的内存并支持64-bit应用同时完全兼容现存的32-bit应用。
RedHatEnterpriseLinux3Update2和SUSELINUXEnterpriseServer9支持这种新的处理器。
如需更多的EM64T信息,可浏览:
选择正确的内核
RedHatEnterpriseLinuxAS和SUSELINUXEnterpriseServer都包括有若干个内核包,如Table10-6所列。
选择合适的内核对性能非常重要。
6内存子系统的调优
内存子系统的调优不是很容易,需要不停地监测来保证内存的改变不会对服务器的其他子系统造成负面影响。
如果要改变虚拟内存参数(在/proc/sys/vm),建议您每次只改变一个参数然后监测效果。
对与虚拟内存的调整包括以下几个项目:
_配置Linux内核如何更新dirtybuffers到磁盘。
磁盘缓冲区用于暂存磁盘的数据。
相对于内存来讲,磁盘缓冲区的速度很慢。
因此,如果服务器使用这类内存,性能会成问题。
当缓冲区内的数据完全dirty,使用:
sysctl-wvm.bdflush="3050000500300060200"
vm.bdflush有9个参数,但是建议您只改变其中的3个:
1nfract,为排队写入磁盘前,bdflushdaemon允许的缓冲区最大百分比
2ndirty,为bdflush即刻写的最大缓冲区的值。
如果这个值很大,bdflush需要更多的时间完成磁盘的数据更新。
7nfract_sync,发生同步前,缓冲区变dirty的最大百分比。
配置kswapddaemon,指定Linux的内存交换页数量
sysctl-wvm.kswapd="10243264"
三个参数的描述如下:
–tries_base相当于内核每次所交换的“页”的数量的四倍。
对于有很多交换信息的系统,增加这个值可以改进性能。
–tries_min是每次kswapdswaps出去的pages的最小数量。
–swap_cluster是kswapd即刻写如的pages数量。
数值小,会提高磁盘I/O的性能;数值大可能也会对请求队列产生负面影响。
如果要对这些参数进行改动,请使用工具vmstat检查对性能的影响。
其它可以改进性能的虚拟内存参数为:
_buffermem
_freepages
_overcommit_memory
_page-cluster
_pagecache
_pagetable_cache
8网络子系统的调优
操作系统安装完毕,就要对网络子系统进行调优。
对其它子系统的影响:
影响CPU利用率,尤其在有大量TCP连接、块尺寸又非常小时,内存的使用会明显增加。
如何预防性能下降
如下的sysctl命令用于改变安全设置,但是它也可以防止网络性能的下降。
这些命令被设置为缺省值。
◆关闭如下参数可以防止黑客对服务器IP地址的攻击
◆开启TCPSYNcookies,保护服务器避免受syn-flood攻击,包括服务取决denial-of-service(DoS)或者分布式服务拒绝distributeddenial-of-service(DDoS)(仅适用RedHatEnterpriseLinuxAS)
◆以下命令使服务器忽略来自被列入网关的服务器的重定向。
因重定向可以被用来进行攻击,所以我们只接受有可靠来源的重定向。
另外,你可以配置接受或拒绝任何ICMP重定向。
ICMP重定向是路由器传输路由信息的机制。
比如,当网关接收到来自所接网络主机的Internet数据报时,网关可以发送重定向信息到一台主机。
网关检查路由表获得下一个网关的地址,第二个网关将数据报路由到目标网络.关闭这些重定向得命令如下:
◆如果这个服务器不是一台路由器,那么它不会发送重定向,所以可以关闭该功能:
◆配置服务器拒绝接受广播风暴或者smurf攻击attacks:
◆忽略所有icmp包或者pings:
◆有些路由器针对广播祯发送无效的回应,每个都产生警告并在内核产生日志.这些回应可以被忽略:
针对TCP和UDP的调优
下边的命令用来对连接数量非常大的服务器进行调优.
◆对于同时支持很多连接的服务器,新的连接可以重新使用TIME-WAIT套接字.这对于Web服务器非常有效:
如果你使用该命令,还要启动TIME-WAIT套接字状态的快速循环功能:
图Figure10-7显示出将这些功能启用,连接数量明显降低.因为每个TCP传输都包含远程客户端的协议信息缓存,所以有利于提高性能.缓存中存放round-trip时间、最大segment大小、拥塞窗口的信息。
◆参数tcp_fin_timeout是套接字关闭时,保持FIN-WAIT-2状态的时间。
一个TCP连接以three-segmentSYN序列开始,以three-segmentFIN序列结束.均不保留数据.通过改变tcp_fin_timeout的值,从FIN序列到内存可以空闲出来处理新连接的时间缩短了,使性能得到改进.改变这个值的前要经过认真的监测,避免因为死套接字造成内存溢出.
◆服务器的一个问题是,同一时刻的大量TCP连接里有很多的连接被打开但是没有使用.TCP的keepalive功能检测到这些连接,缺省情况下,在2小时之后丢掉.2个小时的可能导致内存过度使用,降低性能.因此改成1800秒(30分钟)是个更好的选择:
◆对于所有协议的队列,设置最大系统发送缓存(wmem)和接收缓存(rmem)到8MB
这些设置指定了创建TCP套接字时为其分配的内存容量.另外,使用如下命令发送和接收缓存.该命令设定了三个值:
最小值、初始值和最大值:
第三个值必须小于或等于wmem_max和rmem_max。
◆(SUSELINUXEnterpriseServer适用)通过保留路径验证来源数据包。
缺省情况下,路由器转发所有的数据包,即便是明显的异常网络流量。
通过启动和是的过滤功能,丢掉这些数据包:
◆当服务器负载繁重或者是有很多客户端都是超长延时的连接故障,可能会导致half-open连接数量的增加。
这对于Web服务器很来讲很平常,尤其有很多拨号客户时.这些half-open连接保存在backlogconnections队列中.将这个值最少设置为4096(缺省为1024).即便是服务器不接收这类连接,设置这个值还能防止受到denial-of-service(syn-flood)的攻击.
◆设置ipfrag参数,尤其是NFS和Samba服务器。
这里,我们可以设置用于重新组合IP碎片的最大、最小内存。
当ipfrag_high_thresh值被指派,碎片会被丢弃直到达到ipfrag_low_thres值。
当TCP数据包传输发生错误时,开始碎片整理。
有效的数据包保留在内存,同时损坏的数据包被转发。
例如,设置可用内存范围从256MB到384MB:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 性能 方法