LAMP服务器性能优化技巧之Linux主机优化_Linux

目前LAMP (Linux + Apache + MySQL + PHP) 近几年来发展迅速,已经成为Web 服务器的事实标准。

LAMP这个词的由来最早始于德国杂志“c't Magazine”,Michael Kunze在1990年最先把这些项目组合在一起创造了LAMP的缩写字。这些组件虽然并不是开开始就设计为一起使用的,但是,这些开源软件都可以很方便的随时获得并免费获得。这就导致了这些组件经常在一起使用。在过去的几年里,这些组件的兼容性不断完善,在一起的应用情形变得非常普便。为了改善不同组件之间的协作,已经创建了某些扩展功能。目前,几乎在所有的Linux发布版中都默认包含了“LAMP stack”的产品。这些产品组成了一个强大的Web应用程序平台。“LAMP stack”中的每一个组件都是一个FOSS(免费或者开源软件/Free or Open Source Software)的实例。

FOSS方法的好处有三个方面。

第一,FOSS软件的性质意味着应用程序可以免费下载,能够让更广泛的人们不用付费就可以使用这个应用软件。这种免费的方式对于广大用户特别具有吸引力。这些用户如果不使用免费的软件就需要付费购买“专业”的商用软件工具。这在制作网站方面通常是一种昂贵的步骤。

第二,FOSS许可证是开放式的,因此对于基于FOSS技术的应用软件的使用和限制都非常少。不需要为软件的发布支付任何许可证费就可以开发和应用基于LAMP的工程。因此,这对业余爱好者和专业人员都非常有吸引力。FOSS技术(包括LAMP)的增长和使用的主要原因是因为用户能够访问其资源,修复故障和改善应用软件的性能都非常容易。

与开源软件许可证结合在一起,这种方法为许多企业简化了开发过程,并且为企业提供了专有软件或者商业软件的限制中所没有的灵活性。

本文我们将介绍基于LAMP组合的服务器的性能优化技巧:

LAMP优化:清理服务器磁盘碎片

不论Linux文件系统采用什么文件格式(ext3、JFS、XFS、ReiserFS )、何种类型的硬盘(IDE 、SCSI),随着时间的推移文件系统都会趋向于碎片化。ext3、JFS等高级文件系统可以减少文件系统的碎片化,但是并没有消除。在繁忙的数据库服务器中,随着时间的过去,文件碎片化将降低硬盘性能,硬盘性能从硬盘读出或写入数据时才能注意到。时间长了会发现每个磁盘上确实积累了非常多的垃圾文件,释放磁盘空间可以帮助系统更好地工作。Linux最好的整理磁盘碎片的方法是做一个完全的备份,重新格式化分区,然后从备份恢复文件。但是对于7×24小时工作关键任务服务器来说是比较困难的。

Kleandisk是一个高效的磁盘清理工具,它能把磁盘上的文件分成不同的"组",比如把所有的"core"文件归成一组(Group),这样要删除所有core文件时只要删除这个组就行了。core文件是当软件运行出错时产生的文件,它对于软件开发人员比较有用,对于其他用户(比如电子邮件服务器)却没有任何意义。因此,如果没有软件开发的需要,见到core文件就可以将其删除。

LAMP优化:开启硬盘DMA

现在使用的IDE硬盘基本支持DMA66/100/133(直接内存读取)但是Linux发行版本安装后一般没有打开,可以/etc/rc.d/rc.local 最後面加上一行: /sbin/hdparm -d1 –x66 -c3 -m16 /dev/hda 这样以后每次开机,硬盘的 DMA 就会开启,不必每次手动设定。添加前后你可以使用命令:hdparm -Tt /dev/hda 来测试对比一下。

LAMP优化:调整缓冲区刷新参数

Linux内核中,包含了一些对于系统运行态的可设置参数。缓冲刷新的参数可以通过调整 /proc/sys/vm/bdflush文件来完成,这个文件的格式是这样的:


  1. # cat /proc/sys/vm/bdflush   
  2. 30 64 64 256 500 3000 60 0 0   

每一栏是一个参数,其中最重要的是前面几个参数。第一个数字是在"dirty"缓冲区达到多少的时候强制唤醒bdflush进程刷新硬盘,第二个数字是每次让bdflush进程刷新多少个dirty块。所谓dirty块是必须写到磁盘中的缓存块。接下来的参数是每次允许bd flush将多少个内存块排入空闲的缓冲块列表。 以上值为RHEL 4.0中的缺省值。可以使用两种方法修改:

(1)使用命令


  1. # echo "100 128 128 512 5000 3000 60 0 0">/proc/sys/vm/bdflush   

并将这条命令加到/etc/rc.d/rc.local文件中去。

(2)在/etc/sysctl.conf 文件中加入如下行:


  1. vm.bdflush = 100 128 128 512 5000 3000 60 0 0   

以上的设置加大了缓冲区大小,降低了bdflush被启动的频度,VFS的缓冲刷新机制是Linux文件系统高效的原因之一。

LAMP优化:优化输入输出

I/O程序对Linux系统性能也是相当重要的,网络硬件I/O对服务器尤其重要。现在大多数Linux服务器使用10/100 Mb以太网。如果有较重的网络负载,则可以考虑千兆以太网卡。如果没有能力购买千兆网卡的话:可以使用多块网卡虚拟成为一块网卡,具有相同的IP地址。这项技术,在Linux中,这种技术称为Bonding。Bonding在Linux2.4以上内核中已经包含了,只需要在编译的时候把网络设备选项中的Bonding driver support选中见图1。当然利用Bonding技术配置双网卡绑定的前提条件是两块网卡芯片组型号相同,并且都具备独立的BIOS芯片。

图1 Linux内核的Bonding driver support选项

然后,重新编译核心,重新起动计算机,执行如下命令:


  1. #ismod bonding   
  2. #ifconfig eth0 down   
  3. #ifconfig eth1 down   
  4. #ifconfig bond0 ipaddress   
  5. #ifenslave bond0 eth0   
  6. #ifenslave bond0 eth1   

现在两块网卡已经象一块一样工作了。这样可以提高集群节点间的数据传输.bonding对于服务器来是个比较好的选择,在没有千兆网卡时,用两块100兆网卡作bonding,可大大提高服务器到交换机之间的带宽.但是需要在交换机上设置连接bonding网卡的两个子口映射为同一个虚拟接口。编辑/etc/modules.conf文件,加入如下内容,以使系统在启动时加载Bonding模块。


  1. alias bond0 bonding   
  2. options bond0 mode=0  

“mode”的值表示工作模式,共有0、1、2和3四种模式,这里设定为0。Bonding工作在负载均衡(Load Balancing (round-robin))方式下,即两块网卡同时工作,这时理论上Bonding能提供两倍的带宽。Bonding运行在网卡的混杂(Promisc)模式下,而且它将两块网卡的MAC地址修改为一样的。混杂模式就是网卡不再只接收目的硬件地址是自身MAC地址的数据帧,而是可以接收网络上所有的帧。

LAMP优化:减少虚拟终端机的数量

Linux安装后系统默认是6个虚拟终端机,也就是 CTRL+ALT F1~F6 那六个,作为服务器使用可以关掉其中四个,只留下 CTRL+ALT F1~F2,大约省下 4 Mbytes 的内存,但是这样一来,X-Window 会从原来的 CTRL+ALT F7 变成 CTRL+ALT F3 。 修改 /etc/inittab 中,将 mingetty 3 ~6 全部加上 # 字号 。

LAMP优化:关闭一些不用的服务

Linux服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户。提供这些服务的程序是由运行在后台的守护进程(daemons)来执行的。守护进程是生存期长的一种进程。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。他们常常在系统引导装入时启动,在系统关闭时终止。

linux系统有很多守护进程,大多数服务器都是用守护进程实现的。如Web服务http等。同时,守护进程完成许多系统任务,比如,作业规划进程crond、打印进程lqd等。有些书籍和资料也把守护进程称作:“服务”。关闭服务方法请查看笔者的文章:深入理解Linux守护进程。链结:http://www.ccw.com.cn/server/yyjq/htm2005/20050914_14ND5_1.htm 。

LAMP优化:使用工具软件PowerTweak优化系统

Powertweak for linux0.99能够监视你的系统和网络连接,并且可以将你的系统设置为最佳。

软件安装:


  1. #wegt http://prdownloads.sourceforge.net/powertweak/powertweak-0.99.2-1.i386.rpm;   
  2. #wegt http://prdownloads.sourceforge.net/powertweak/powertweak-gtk-0.99.2-1.i386.rpm   
  3. #rpm –ivh powertweak-0.99.2-1.i386.rpm   
  4. #rpm –ivh powertweak-gtk-0.99.2-1.i386.rpm   

其中powertweak-0.99.2-1.i386.rpm是主程序, powertweak-gtk-0.99.2-1.i386.rpm是KDE环境下的图形前端。程序安装后会自动添加到主选单的“系统工具中”,运行界面见图2。

 

图-2 powertweak性能优化程序

powertweak能够对X86构架处理器,芯片组,Voodoo等进行最优化设置的软件,支持大多数的中央处理器和芯片组,包括Intel,AMD,与Cyrix,内置四种最佳化设定功能,可以自行设定要最优化的硬件(中央处理器、CD-ROM、PCI总线、硬盘、磁盘阵列)、内核(包括日志、安全、资源)、网络(包括ip、TCP、Core、 ICMP、Unix domain Routing、 Arp 、Token Ring)、虚拟文件系统、性能内存管理(页面分配、高速缓存、交换分区)。Powertweak是一个强大的系统性能调节软件。但是对于使用者要求比较高,许多选项要求你对Linux系统比较了解才能准确填写。

关于Apache、PHP、Mysql软件安装,我们建议安装它们的最新版本,并且从源码安装程序。虽然很多Linux发行版本(RedHat 、Suse、TurboLinux)有相应的rpm包, 但从源码编译安装程序,会适合自己的机器设置,我们一般会装到 /usr/local 目录下,这样易于管理。安装过程这里笔者就不介绍了。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索linux
主机优化
微博lamp性能优化之路、服务器性能优化、linux服务器性能优化、web服务器性能优化、服务器性能优化方案,以便于您获取更多的相关知识。

时间: 2024-11-10 00:19:27

LAMP服务器性能优化技巧之Linux主机优化_Linux的相关文章

LAMP服务器性能优化技巧之加速PHP

目前LAMP (Linux + Apache + MySQL + PHP) 近几年来发展迅速,已经成为Web 服务器的事实标准.本文我们将介绍基于LAMP组合的服务器的性能优化技巧:加速PHP. Apache服务器优化.PHP优化.Mysql优化 1.使用eaccelerator 我们上面的介绍Apache服务器的优化,如果您曾经浏览过 PHP 的网页时,或许会发现:怎么 PHP 的速度慢慢的,这是怎么一回事啊?PHP 不是号称速度上面的反应是很快速的吗?怎么会慢慢的呢?这是由于 PHP 的程序

LAMP服务器性能优化技巧之Apache服务器优化_Linux

1.Zend Performance Suite简介 对于Apache要把 PHP 编译其中,或者采用 DSO (动态共享对象)模式,不要采用 CGI 方式.采用DSO最重要的原因是效率.Apache是模块化设计的,所以它可以加载各种各样的服务器端脚本解释器来支持动态的网页.但是随着页面访问量的增大,CGI已经不看重负,为了提高效率.所以选择把最常调用的模块编译成动态共享对象(DSO).zend出品的ZendPerformanceSuite,这是一个Apache服务器的性能测试和优化的工具.可以

LAMP服务器性能优化技巧之加速PHP_Linux

Apache服务器优化.PHP优化.Mysql优化 1.使用eaccelerator 我们上面的介绍Apache服务器的优化,如果您曾经浏览过 PHP 的网页时,或许会发现:怎么 PHP 的速度慢慢的,这是怎么一回事啊?PHP 不是号称速度上面的反应是很快速的吗?怎么会慢慢的呢?这是由于 PHP 的程序代码去调用了太多的函式库,而这些函式库每次调用都需要由硬盘读出来,有没有办法提升 PHP 的执行速度啊.如果我们可以将这些在硬盘里面的函式库先读到高速缓存中( Cache ),由于内存的速度可比硬

linux需要优化吗?Linux基本优化指南

有人看到这个标题的时候,心里一定在嘀咕"linux需要优化吗?". &http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   在回答这个问题之前,我先问个问题"何谓优化?",我的理念是,没有最优的,合适自己的才是更优的,把桌面背景调成自己喜欢的颜色,算不算优化呢? 我想上面两个问题都不用回答,如果你有兴趣,可以接着看下去. 这里要说的优化,主要指性能上的.优化是针对自己硬件,针对

网站优化技巧:网站如何优化

技巧1:抵制重复内容和抄袭 最难解决的SEO问题之一就是内容重复问题.别人可能窃取你的工作成果,拿来后重新发布,声称是自己的内容.所有搜索引擎都不善于识别哪个版本的网页才是原创版本.如果搜索引擎无法识别到底是谁在抄袭谁,那么你很可能会因重复网页而受到惩罚.而且惩罚很严重:重复网站不会出现在搜索结果中,除非搜索人员点击搜索引擎的链接,以便"重复搜索包含省略结果",但根本没有人这么做. 为了对付剽窃抄袭,许多网站都有报告侵犯版权的机制(比方说,谷歌Blogger服务就有一个通知系统).这个

网站优化:域名和虚拟主机优化篇

网站 IP 位置: 对搜索引擎来说,逻辑是,当你的服务器放在某个地方,你的网站就一定对当地的搜寻有比较大的关联性.例如,在美国的网站,由于他的网站 IP位置显示网站位于美国,搜索引擎可以推断其目标访问者大部分应是美国当地的网名. 域名选择: 当你使用某个国家的国家级域名时,大部分都是为了在那个国家当地建立本地网站所申请的.那么若在英文站优化建议用国际域名.com而不能选择.cn或者其他域名.当然,若你只做内贸,你也可以向火车啦huoche.la一样选择一个具有典型标识的域名. 因此,搜索引擎会检

值得收藏的20个Linux服务器性能优化技巧_Linux

    Linux是一种开源操作系统,它支持各种硬件平台,Linux服务器全球知名,它和Windows之间最主要的差异在于,Linux服务器默认情况下一般不提供GUI(图形用户界面),而是命令行界面,它的主要目的是高效处理非交互式进程,响应时间并不是那么重要,相反,能够长时间处理高负载才是最关键的.Linux高可用服务器集群解决方案让IT系统管理员可以从容应对许多常见的硬件和软件故障,允许多台计算机一起工作,为关键服务正常运行提供保障,系统管理员可以不中断服务执行维护和升级.     Linux

asp.net性能的技巧

[摘 要] 我只是提供我几个我认为有助于提高写高性能的asp.net应用程序的技巧,本文提到的提高asp.net性能的技巧只是一个起步,更多的信息请参考<Improving ASP.NET Performance>一书. 1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连接池(Connection Pool)改善打开和关闭数据库对性能的影响.系统将用户

Asp编码优化技巧_应用技巧

8条Asp编码优化技巧: 1.声明VBScript变量      在ASP中,对vbscript提供了强劲的支持,能够无缝集成vbscript的函数.方法,这样给扩展ASP的现有功能提供了很大便利.由于ASP中已经模糊了变量类型的概念,所以,在进行ASP与vbscript交互的过程中,很多程序员也惯于不声明vbscript的变量,这样加重了服务器的解析负担,进而影响服务器的响应请求速度. 鉴于此,我们可以象在VB中强制用户进行变量声明一样在vbscript中强制用户进行变量声明.实现方法是在AS