欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

[轉(zhuǎn)]LAMP(Linux+Apache+MySQL+PHP)服務(wù)器的性能

系統(tǒng) 2124 0

LAMP(Linux+Apache+MySQL+PHP)服務(wù)器的性能優(yōu)化

計(jì)世網(wǎng)特約撰稿 曹江華
來(lái)源: http://www.ccw.com.cn/server/yyjq/htm2006/20060627_193322.htm

目前LAMP (Linux + Apache + MySQL + P HP ) 近幾年來(lái)發(fā)展迅速,已經(jīng)成為Web 服務(wù)器的事實(shí)標(biāo)準(zhǔn)。LAMP這個(gè)詞的由來(lái)最早始于德國(guó)雜志“c't Mag

<script language="JavaScript1.1" src="http://ad.ccw.com.cn/adshow.asp?positionID=30&amp;js=1&amp;innerJs=1" type="text/javascript"></script>
azine”,Michael Kunze在1990年最先把這些項(xiàng)目組合在一起創(chuàng)造了LAMP的縮寫(xiě)字。這些組件雖然并不是開(kāi)開(kāi)始就設(shè)計(jì)為一起使用的,但是,這些開(kāi)源軟件都可以很方便的隨時(shí)獲得并免費(fèi)獲得。這就導(dǎo)致了這些組件經(jīng)常在一起使用。在過(guò)去的幾年里,這些組件的兼容性不斷完善,在一起的應(yīng)用情形變得非常普便。為了改善不同組件之間的協(xié)作,已經(jīng)創(chuàng)建了某些擴(kuò)展功能。目前,幾乎在所有的Linux發(fā)布版中都默認(rèn)包含了“LAMP stack”的產(chǎn)品。這些產(chǎn)品組成了一個(gè)強(qiáng)大的Web應(yīng)用程序平臺(tái)。“LAMP stack”中的每一個(gè)組件都是一個(gè)FOSS(免費(fèi)或者開(kāi)源軟件/Free or Open Source Software)的實(shí)例。FOSS方法的好處有三個(gè)方面。第一,F(xiàn)OSS軟件的性質(zhì)意味著應(yīng)用程序可以免費(fèi)下載,能夠讓更廣泛的人們不用付費(fèi)就可以使用這個(gè)應(yīng)用軟件。這種免費(fèi)的方式對(duì)于廣大用戶(hù)特別具有吸引力。這些用戶(hù)如果不使用免費(fèi)的軟件就需要付費(fèi)購(gòu)買(mǎi)“專(zhuān)業(yè)”的商用軟件工具。這在制作網(wǎng)站方面通常是一種昂貴的步驟。FOSS許可證是開(kāi)放式的,因此對(duì)于基于FOSS技術(shù)的應(yīng)用軟件的使用和限制都非常少。不需要為軟件的發(fā)布支付任何許可證費(fèi)就可以開(kāi)發(fā)和應(yīng)用基于LAMP的工程。因此,這對(duì)業(yè)余愛(ài)好者和專(zhuān)業(yè)人員都非常有吸引力。FOSS技術(shù)(包括LAMP)的增長(zhǎng)和使用的主要原因是因?yàn)橛脩?hù)能夠訪問(wèn)其資源,修復(fù)故障和改善應(yīng)用軟件的性能都非常容易。與開(kāi)源軟件許可證結(jié)合在一起,這種方法為許多企業(yè)簡(jiǎn)化了開(kāi)發(fā)過(guò)程,并且為企業(yè)提供了專(zhuān)有軟件或者商業(yè)軟件的限制中所沒(méi)有的靈活性。本文我們將介紹基于LAMP組合的服務(wù)器的性能優(yōu)化。

一、Linux主機(jī)性能優(yōu)化

1.清理服務(wù)器磁盤(pán)碎片:

不論Linux文件系統(tǒng)采用什么文件格式(ext3、JFS、XFS、ReiserFS )、何種類(lèi)型的硬盤(pán)(IDE 、SCSI),隨著時(shí)間的推移文件系統(tǒng)都會(huì)趨向于碎片化。ext3、JFS等高級(jí)文件系統(tǒng)可以減少文件系統(tǒng)的碎片化,但是并沒(méi)有消除。在繁忙的數(shù)據(jù)庫(kù)服務(wù)器中,隨著時(shí)間的過(guò)去,文件碎片化將降低硬盤(pán)性能,硬盤(pán)性能從硬盤(pán)讀出或?qū)懭霐?shù)據(jù)時(shí)才能注意到。時(shí)間長(zhǎng)了會(huì)發(fā)現(xiàn)每個(gè)磁盤(pán)上確實(shí)積累了非常多的垃圾文件,釋放磁盤(pán)空間可以幫助系統(tǒng)更好地工作。Linux最好的整理磁盤(pán)碎片的方法是做一個(gè)完全的備份,重新格式化分區(qū),然后從備份恢復(fù)文件。但是對(duì)于7×24小時(shí)工作關(guān)鍵任務(wù)服務(wù)器來(lái)說(shuō)是比較困難的。Kleandisk是一個(gè)高效的磁盤(pán)清理工具,它能把磁盤(pán)上的文件分成不同的"組",比如把所有的"core"文件歸成一組(Group),這樣要?jiǎng)h除所有core文件時(shí)只要?jiǎng)h除這個(gè)組就行了。core文件是當(dāng)軟件運(yùn)行出錯(cuò)時(shí)產(chǎn)生的文件,它對(duì)于軟件開(kāi)發(fā)人員比較有用,對(duì)于其他用戶(hù)(比如電子郵件服務(wù)器)卻沒(méi)有任何意義。因此,如果沒(méi)有軟件開(kāi)發(fā)的需要,見(jiàn)到core文件就可以將其刪除。

2、開(kāi)啟硬盤(pán)DMA

現(xiàn)在使用的IDE硬盤(pán)基本支持DMA66/100/133(直接內(nèi)存讀取)但是Linux發(fā)行版本安裝后一般沒(méi)有打開(kāi),可以/etc/rc.d/rc.lo ca l 最後面加上一行: /sbin/hdparm -d1 –x66 -c3 -m16 /dev/hda 這樣以后每次開(kāi)機(jī),硬盤(pán)的 DMA 就會(huì)開(kāi)啟,不必每次手動(dòng)設(shè)定。添加前后你可以使用命令:hdparm -Tt /dev/hda 來(lái)測(cè)試對(duì)比一下。

3、調(diào)整緩沖區(qū)刷新參數(shù)

Linux內(nèi)核中,包含了一些對(duì)于系統(tǒng)運(yùn)行態(tài)的可設(shè)置參數(shù)。緩沖刷新的參數(shù)可以通過(guò)調(diào)整 /proc/sys/vm/bdflush文件來(lái)完成,這個(gè)文件的格式是這樣的:

# cat /proc/sys/vm/bdflush

30 64 64 256 500 3000 60 0 0

每一欄是一個(gè)參數(shù),其中最重要的是前面幾個(gè)參數(shù)。第一個(gè)數(shù)字是在"dirty"緩沖區(qū)達(dá)到多少的時(shí)候強(qiáng)制喚醒bdflush進(jìn)程刷新硬盤(pán),第二個(gè)數(shù)字是每次讓bdflush進(jìn)程刷新多少個(gè)dirty塊。所謂dirty塊是必須寫(xiě)到磁盤(pán)中的緩存塊。接下來(lái)的參數(shù)是每次允許bd flush將多少個(gè)內(nèi)存塊排入空閑的緩沖塊列表。 以上值為RHEL 4.0中的缺省值。可以使用兩種方法修改:

(1)使用命令

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

并將這條命令加到/etc/rc.d/rc.local文件中去。

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

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

以上的設(shè)置加大了緩沖區(qū)大小,降低了bdflush被啟動(dòng)的頻度,VFS的緩沖刷新機(jī)制是Linux文件系統(tǒng)高效的原因之一。

4、優(yōu)化輸入輸出

I/O程序?qū)inux系統(tǒng)性能也是相當(dāng)重要的,網(wǎng)絡(luò)硬件I/O對(duì)服務(wù)器尤其重要。現(xiàn)在大多數(shù)Linux服務(wù)器使用10/100 Mb以太網(wǎng)。如果有較重的網(wǎng)絡(luò)負(fù)載,則可以考慮千兆以太網(wǎng)卡。如果沒(méi)有能力購(gòu)買(mǎi)千兆網(wǎng)卡的話:可以使用多塊網(wǎng)卡虛擬成為一塊網(wǎng)卡,具有相同的IP地址。這項(xiàng)技術(shù),在Linux中,這種技術(shù)稱(chēng)為Bonding。Bonding在Linux2.4以上內(nèi)核中已經(jīng)包含了,只需要在編譯的時(shí)候把網(wǎng)絡(luò)設(shè)備選項(xiàng)中的Bonding driver support選中見(jiàn)圖1。當(dāng)然利用Bonding技術(shù)配置雙網(wǎng)卡綁定的前提條件是兩塊網(wǎng)卡芯片組型號(hào)相同,并且都具備獨(dú)立的BIOS芯片。

圖1 Linux內(nèi)核的Bonding driver support選項(xiàng)
然后,重新編譯核心,重新起動(dòng)計(jì)算機(jī),執(zhí)行如下命令:

#ismod bonding

#ifconfig eth0 down

#ifconfig eth1 down

#ifconfig bond0 ipaddress
#ifenslave bond0 eth0
#ifenslave bond0 eth1

現(xiàn)在兩塊網(wǎng)卡已經(jīng)象一塊一樣工作了。這樣可以提高集群節(jié)點(diǎn)間的數(shù)據(jù)傳輸.bonding對(duì)于服務(wù)器來(lái)是個(gè)比較好的選擇,在沒(méi)有千兆網(wǎng)卡時(shí),用兩塊100兆網(wǎng)卡作bonding,可大大提高服務(wù)器到交換機(jī)之間的帶寬.但是需要在交換機(jī)上設(shè)置連接bonding網(wǎng)卡的兩個(gè)子口映射為同一個(gè)虛擬接口。編輯/etc/modules.conf文件,加入如下內(nèi)容,以使系統(tǒng)在啟動(dòng)時(shí)加載Bonding模塊。

alias bond0 bonding

options bond0 mode=0

“mode”的值表示工作模式,共有0、1、2和3四種模式,這里設(shè)定為0。Bonding工作在負(fù)載均衡(Load Balancing (round-robin))方式下,即兩塊網(wǎng)卡同時(shí)工作,這時(shí)理論上Bonding能提供兩倍的帶寬。Bonding運(yùn)行在網(wǎng)卡的混雜(Promisc)模式下,而且它將兩塊網(wǎng)卡的MAC地址修改為一樣的。混雜模式就是網(wǎng)卡不再只接收目的硬件地址是自身MAC地址的數(shù)據(jù)幀,而是可以接收網(wǎng)絡(luò)上所有的幀。

5、減少虛擬終端機(jī)的數(shù)量。

Linux安裝后系統(tǒng)默認(rèn)是6個(gè)虛擬終端機(jī),也就是 CTRL+ALT F1~F6 那六個(gè),作為服務(wù)器使用可以關(guān)掉其中四個(gè),只留下 CTRL+ALT F1~F2,大約省下 4 Mbytes 的內(nèi)存,但是這樣一來(lái),X-Window 會(huì)從原來(lái)的 CTRL+ALT F7 變成 CTRL+ALT F3 。 修改 /etc/inittab 中,將 mingetty 3 ~6 全部加上 # 字號(hào) 。

6. 關(guān)閉一些不用的服務(wù)

Linux服務(wù)器在啟動(dòng)時(shí)需要啟動(dòng)很多系統(tǒng)服務(wù),它們向本地和網(wǎng)絡(luò)用戶(hù)提供了Linux的系統(tǒng)功能接口,直接面向應(yīng)用程序和用戶(hù)。提供這些服務(wù)的程序是由運(yùn)行在后臺(tái)的守護(hù)進(jìn)程(daemons)來(lái)執(zhí)行的。守護(hù)進(jìn)程是生存期長(zhǎng)的一種進(jìn)程。它們獨(dú)立于控制終端并且周期性的執(zhí)行某種任務(wù)或等待處理某些發(fā)生的事件。他們常常在系統(tǒng)引導(dǎo)裝入時(shí)啟動(dòng),在系統(tǒng)關(guān)閉時(shí)終止。linux系統(tǒng)有很多守護(hù)進(jìn)程,大多數(shù)服務(wù)器都是用守護(hù)進(jìn)程實(shí)現(xiàn)的。如Web服務(wù)http等。同時(shí),守護(hù)進(jìn)程完成許多系統(tǒng)任務(wù),比如,作業(yè)規(guī)劃進(jìn)程crond、打印進(jìn)程lqd等。有些書(shū)籍和資料也把守護(hù)進(jìn)程稱(chēng)作:“服務(wù)”。關(guān)閉服務(wù)方法請(qǐng)查看筆者的文章:深入理解Linux守護(hù)進(jìn)程。鏈結(jié):http://www.ccw.com.cn/server/yyjq/htm2005/20050914_14ND5_1.htm 。

7.使用工具軟件PowerTweak優(yōu)化系統(tǒng)

Powertweak for linux0.99能夠監(jiān)視你的系統(tǒng)和網(wǎng)絡(luò)連接,并且可以將你的系統(tǒng)設(shè)置為最佳。

軟件主頁(yè): http://linux.powertweak.com/

軟件安裝:

#wegt http://prdownloads.sourceforge.net/powertweak/powertweak-0.99.2-1.i386.rpm;

#wegt http://prdownloads.sourceforge.net/powertweak/powertweak-gtk-0.99.2-1.i386.rpm

#rpm –ivh powertweak-0.99.2-1.i386.rpm

#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環(huán)境下的圖形前端。程序安裝后會(huì)自動(dòng)添加到主選單的“系統(tǒng)工具中”,運(yùn)行界面見(jiàn)圖2。

圖-2 powertweak性能優(yōu)化程序

powertweak能夠?qū)86構(gòu)架處理器,芯片組,Voodoo等進(jìn)行最優(yōu)化設(shè)置的軟件,支持大多數(shù)的中央處理器和芯片組,包括 Intel ,AMD,與Cyrix,內(nèi)置四種最佳化設(shè)定功能,可以自行設(shè)定要最優(yōu)化的硬件(中央處理器、CD-ROM、PCI總線、硬盤(pán)、磁盤(pán)陣列)、內(nèi)核(包括日志、安全、資源)、網(wǎng)絡(luò)(包括ip、TCP、Core、 ICMP、Unix domain Routing、 Arp 、Token Ring)、虛擬文件系統(tǒng)、性能內(nèi)存管理(頁(yè)面分配、高速緩存、交換分區(qū))。Powertweak是一個(gè)強(qiáng)大的系統(tǒng)性能調(diào)節(jié)軟件。但是對(duì)于使用者要求比較高,許多選項(xiàng)要求你對(duì)Linux系統(tǒng)比較了解才能準(zhǔn)確填寫(xiě)。

關(guān)于Apache、PHP、Mysql軟件安裝,我們建議安裝它們的最新版本,并且從源碼安裝程序。雖然很多Linux發(fā)行版本(RedHat 、Suse、TurboLinux)有相應(yīng)的rpm包, 但從源碼編譯安裝程序,會(huì)適合自己的機(jī)器設(shè)置,我們一般會(huì)裝到 /usr/local 目錄下,這樣易于管理。安裝過(guò)程這里筆者就不介紹了。

二、Apache服務(wù)器檢測(cè)和優(yōu)化

1.Zend Performance Suite簡(jiǎn)介

對(duì)于Apache要把 PHP 編譯其中,或者采用 DSO (動(dòng)態(tài)共享對(duì)象)模式,不要采用 CGI 方式。采用DSO最重要的原因是效率。Apache是模塊化設(shè)計(jì)的,所以它可以加載各種各樣的服務(wù)器端腳本解釋器來(lái)支持動(dòng)態(tài)的網(wǎng)頁(yè)。但是隨著頁(yè)面訪問(wèn)量的增大,CGI已經(jīng)不看重負(fù),為了提高效率。所以選擇把最常調(diào)用的模塊編譯成動(dòng)態(tài)共享對(duì)象(DSO)。zend出品的ZendPerformanceSuite,這是一個(gè)Apache服務(wù)器的性能測(cè)試和優(yōu)化的工具。可以在它的主頁(yè)注冊(cè)并且免費(fèi)下載。并且得到一個(gè)協(xié)議文件。下載的軟件包中有兩個(gè)文件:主程序:ZendPerformanceSuite-3.6.0a-Linux_glibc21-i386.tar.gz和協(xié)議文件:zend_performance_suite.dat

2.軟件安裝:

gunzip ZendPerformanceSuite-3.6.0a-Linux_glibc21-i386.tar.gz

tar vxf ZendPerformanceSuite-3.6.0a-Linux_glibc21-i386.tar

cp zend_performance_suite.dat /ZendPerformanceSuite-3.6.0

./install

(1)軟件安裝非常簡(jiǎn)單只要根據(jù)安裝向?qū)У奶崾静僮骷纯桑?jiàn)圖3.

圖3 軟件安裝向?qū)?

3、Apache服務(wù)器的測(cè)試

(1)打開(kāi)一個(gè)網(wǎng)絡(luò)瀏覽器輸入:http://www.cjh.com/ZendPerformanceSuite/login.php

然后輸入密碼即可進(jìn)入軟件的主界面。

(2)ZendPerformanceSuite的主界面分成四部分。見(jiàn)圖4。

圖4 軟件的主界面

ZendPerformanceSuite軟件包括四部分:“Fast Track”、“Console”、“FileView”、“Testing”。Fast Track是測(cè)試向?qū)Аonsole是參數(shù)設(shè)置、FileView 顯示存放的文件、Testing是測(cè)試命令。

(3)參數(shù)說(shuō)明

其中“Console”部分比較重要。這里介紹一下它的主要選項(xiàng):見(jiàn)圖-3:

圖5 軟件的“Console”界面

在這個(gè)菜單中將要設(shè)置Apache服務(wù)器的各項(xiàng)參數(shù):

“Modified File Detection”:自動(dòng)檢測(cè)文件類(lèi)型,

“Filepath Identifiction”:全部文件深度,

“Accelerator memory”:加速內(nèi)存容量,

“Memory Reclaim Threshold”:內(nèi)存回收比例,

“Maximum Accelerated Files”:最大加速文件數(shù)量。

“Extensions For PHP Files”擴(kuò)展文件類(lèi)型,

“Dynamic Caching Enabled”是否支持動(dòng)態(tài)緩存,

“Maximum Cache Size”最大緩存容量,

“Minimum Free Diskspace”:最小磁盤(pán)空間,

“Maximum Cached File Size”最大緩存文件大小,

“Default Cache Lifetime”缺省緩存文件存活時(shí)間,

“Default Dynamic Caching Conditions”:缺省緩存狀態(tài),

“Compress Files”是否壓縮文件。根據(jù)你的Apache服務(wù)器情況配置“Console”中的參數(shù),就可以測(cè)試了,目前ZendPerformanceSuite支持“Performance Test”(性能測(cè)試)和“Compression Test”(壓力測(cè)試)。

(4)壓力測(cè)試

這里以壓力測(cè)試為例,“Console”各項(xiàng)參數(shù)填寫(xiě)后就可以進(jìn)行測(cè)試了,選擇“Testing”菜單進(jìn)行測(cè)試,結(jié)果見(jiàn)圖-4。

圖6 Apache服務(wù)器壓力測(cè)試結(jié)果

可以看到測(cè)試數(shù)據(jù)以圖形的數(shù)值兩種方式在圖-4中。性能測(cè)試的步驟和壓力測(cè)試一樣的,需要說(shuō)明的是你需要通過(guò)修改“Console”菜單中的參數(shù)進(jìn)行多次測(cè)試,最后找到符合你的Apache服務(wù)器最佳選項(xiàng)。按“Apply Change”按鈕保存設(shè)置。

Zend Performance Suite 是一個(gè)可以大幅度提升Apache運(yùn)行效率的軟件包!它可以增強(qiáng)服務(wù)器的數(shù)據(jù)吞吐能力,節(jié)省服務(wù)器的資源消費(fèi),支持Linux,Solaris和FreeBSD。它可以減小服務(wù)器的負(fù)荷,減少頁(yè)面的反應(yīng)時(shí)間,減少數(shù)據(jù)庫(kù)的負(fù)荷。增大使用者,文件壓縮。緩沖的靈活配置,應(yīng)用編程接口功能。

三、加速PHP

1.使用eaccelerator

我們上面的介紹Apache服務(wù)器的優(yōu)化,如果您曾經(jīng)瀏覽過(guò) PHP 的網(wǎng)頁(yè)時(shí),或許會(huì)發(fā)現(xiàn):怎么 PHP 的速度慢慢的,這是怎么一回事啊?PHP 不是號(hào)稱(chēng)速度上面的反應(yīng)是很快速的嗎?怎么會(huì)慢慢的呢?這是由于 PHP 的程序代碼去調(diào)用了太多的函式庫(kù),而這些函式庫(kù)每次調(diào)用都需要由硬盤(pán)讀出來(lái),有沒(méi)有辦法提升 PHP 的執(zhí)行速度啊。如果我們可以將這些在硬盤(pán)里面的函式庫(kù)先讀到高速緩存中( Cache ),由于內(nèi)存的速度可比硬盤(pán)快多了。如此一來(lái)的話,當(dāng)然可以提升不少速度。這里我們介紹一款授權(quán)在 GPL 上面的可以對(duì) PHP 程序代碼進(jìn)行快取并且予以?xún)?yōu)化的軟件,那就是eaccelerator他的官方網(wǎng)站在:http://www.arnot.info/eaccelerator/ 。目前版本:0.9.3 。

2、軟件下載安裝:

wget http://internap.dl.sourceforge.net/sourceforge/eaccelerator/eaccelerator-0.9.3.tar.bz2
tar jxf eaccelerator-0.9.3.tar.bz2

/usr/local/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=/usr/local/bin/php-config
make;make install

修改/etc/php.ini文件,加入以下內(nèi)容:

extension="/PATH/TO/eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

然后建立快存取數(shù)據(jù)目錄:

mkdir /tmp/eAccelerator

chmod 0777 /tmp/eAccelerator

從新啟動(dòng)Apache服務(wù)器:

/etc/rc.d/init.d/httpd restart

通過(guò)lynx瀏覽器打開(kāi)Web頁(yè)面查看通過(guò)phpinfo()已經(jīng)可以看到圖7,就表示安裝成功。

圖7 eAccelerator啟用

從圖中可以看到:eAccelerator啟用了。下面 使用ab命令:Apache HTTP 服務(wù)器性能測(cè)試工具,是一個(gè)測(cè)試你Apache http服務(wù)器的工具,你可以通過(guò)這個(gè)工具指定一個(gè)單位時(shí)間內(nèi)向apache發(fā)出的請(qǐng)求數(shù)量來(lái)看看你的Apache和機(jī)器配合的性能如何。命令如下:

/home/apache/bin/ab -c 20 -n100 –w http://localhost/phpinfo >1.html

-c: 同時(shí)向服務(wù)器端發(fā)送的請(qǐng)求數(shù)目,默認(rèn)狀態(tài)下是一次只執(zhí)行一個(gè)http請(qǐng)求。

-n: 執(zhí)行一次測(cè)試會(huì)話的時(shí)候所發(fā)出的請(qǐng)求數(shù)目。

-w:打印輸出結(jié)果到HTML表中,默認(rèn)的表是兩列n行白底黑框 。

ApacheBench)的測(cè)試數(shù)據(jù)的 requests per second (以下簡(jiǎn)稱(chēng) rps)一項(xiàng)是指每秒服務(wù)器返回的頁(yè)面數(shù),經(jīng)過(guò)比較使用了 eAccelerator 后網(wǎng)頁(yè)速度明顯加快了。圖8 lynx瀏覽器的 HTML格式測(cè)試結(jié)果。

圖8 HTML格式測(cè)試結(jié)果

2.使用Zend Optimizer

Zend Optimizer用優(yōu)化代碼的方法來(lái)提高PHP 4.0應(yīng)用程序的執(zhí)行速度。實(shí)現(xiàn)的原理是對(duì)那些在被最終執(zhí)行之前由運(yùn)行編譯器(Run-Time Compiler)產(chǎn)生的代碼進(jìn)行優(yōu)化。一般情況下,執(zhí)行使用Zend Optimizer的PHP程序比不使用的要快40%到100%。這意味著網(wǎng)站的訪問(wèn)者可以更快的瀏覽網(wǎng)頁(yè),從而完成更多的事務(wù),創(chuàng)造更好的客戶(hù)滿(mǎn)意度。更快的反應(yīng)同時(shí)也意味著可以節(jié)省硬件投資,并增強(qiáng)網(wǎng)站所提供的服務(wù)。所以,使用Zend Optimizer,就等于提高了電子商務(wù)的盈利能力。Zend Optimizer能給PHP用戶(hù)帶來(lái)很多益處,特別是那些運(yùn)營(yíng)網(wǎng)站的人。快速運(yùn)行PHP程序可以顯著降低服務(wù)器的CPU負(fù)載,并可以減少一半的反應(yīng)時(shí)間,也就是從訪問(wèn)者點(diǎn)擊鏈接到服務(wù)器開(kāi)始讀取頁(yè)面之間的時(shí)間。

Zend Optimizer安裝是傻瓜化的,安裝向?qū)?huì)自動(dòng)根據(jù)你的選擇來(lái)修改php.ini幫助你啟動(dòng)這個(gè)引擎。

軟件下載安裝:

wget http://downloads.zend.com/optimizer/3.0.0/ZendOptimizer-3.0.0-linux-glibc21-i386.tar.gz

gunzip ZendOptimizer-3.0.0-linux-glibc21-i386.tar.gz

tar vxf ZendOptimizer-3.0.0-linux-glibc21-i386.tar

cd ZendOptimizer-3.0.0-linux-glibc21-i386

./install

圖 9 Zend Optimizer安裝向?qū)?

從新啟動(dòng)Apache服務(wù)器:

/etc/rc.d/init.d/httpd restart

打開(kāi)Web頁(yè)面查看通過(guò)phpinfo()已經(jīng)可以看到圖,就表示Zend Optimizer安裝成功。

圖 10 Zend Optimizer安裝成功

然后可以使用ab命令進(jìn)行再次測(cè)試。也可以使用Siege(http://www.joedog.org/siege/ )進(jìn)行測(cè)試,它是一個(gè)壓力測(cè)試和評(píng)測(cè)工具,設(shè)計(jì)用于WEB開(kāi)發(fā)這評(píng)估應(yīng)用在壓力下的承受能力:可以根據(jù)配置對(duì)一個(gè)WEB站點(diǎn)進(jìn)行多用戶(hù)的并發(fā)訪問(wèn),記錄每個(gè)用戶(hù)所有請(qǐng)求過(guò)程的相應(yīng)時(shí)間,并在一定數(shù)量的并發(fā)訪問(wèn)下重復(fù)進(jìn)行。

四、Mysql優(yōu)化

對(duì)于程序開(kāi)發(fā)人員而言,目前使用最流行的兩種后臺(tái)數(shù)據(jù)庫(kù)即為MySQL and SQL Server。這兩者最基本的相似之處在于數(shù)據(jù)存儲(chǔ)和屬于查詢(xún)系統(tǒng)。如果你想建立一個(gè).NET服務(wù)器體系,這一體系可以從多個(gè)不同平臺(tái)訪問(wèn)數(shù)據(jù),參與數(shù)據(jù)庫(kù)的管理,那么你可以選用SQL Server服務(wù)器。如果你想建立一個(gè)第三方動(dòng)態(tài)網(wǎng)站,從這一站點(diǎn)可以從一些客戶(hù)端讀取數(shù)據(jù),那么MySQL將是一個(gè)不錯(cuò)的選擇。

1、編譯和安裝MySQL

通過(guò)你的系統(tǒng)挑選可能最好的編譯器,你通常可以獲得10-30%的性能提高。在Linux/Intel平臺(tái)上,用pgcc(gcc的奔騰芯片優(yōu)化版)編譯MySQL。然而,二進(jìn)制代碼將只能運(yùn)行在Intel奔騰CPU上。 對(duì)于一種特定的平臺(tái),使用MySQL參考手冊(cè)上推薦的優(yōu)化選項(xiàng)。用你將使用的字符集編譯MySQL。 靜態(tài)編譯生成mysqld的執(zhí)行文件(用--with-mysqld-ldflags=all-static)并用strip sql/mysqld整理最終的執(zhí)行文件。 注意,既然MySQL不使用C++擴(kuò)展,不帶擴(kuò)展支持編譯MySQL將贏得巨大的性能提高。

2、優(yōu)化表

MySQL擁有一套豐富的類(lèi)型。應(yīng)該對(duì)每一列嘗試使用最有效的類(lèi)型。ANALYSE過(guò)程可以幫助你找到表的最優(yōu)類(lèi)型:SELECT * FROM table_name PROCEDURE ANALYSE()。對(duì)于不保存NULL值的列使用NOT NULL,這對(duì)你想索引的列尤其重要。 將ISAM類(lèi)型的表改為MyISAM。用固定的表格式創(chuàng)建表。

3、正確使用索引

索引用來(lái)快速地尋找那些具有特定值的記錄,所有MySQL索引都以B-樹(shù)的形式保存。如果沒(méi)有索引,執(zhí)行查詢(xún)時(shí)MySQL必須從第一個(gè)記錄開(kāi)始掃描整個(gè)表的所有記錄,直至找到符合要求的記錄。如果表有1000個(gè)記錄,通過(guò)索引查找記錄至少要比順序掃描記錄快100倍。
假設(shè)我們創(chuàng)建了一個(gè)名為people的表:

CREATE TABLE people ( peopleid SMALLINT NOT NULL, name CHAR(50) NOT NULL );

然后,我們完全隨機(jī)把1000個(gè)不同name值插入到people表。

但是索引也是有缺點(diǎn)的,首先,索引要占用磁盤(pán)空間。通常情況下,這個(gè)問(wèn)題不是很突出。但是,如果你創(chuàng)建每一種可能列組合的索引,索引文件體積的增長(zhǎng)速度將遠(yuǎn)遠(yuǎn)超過(guò)數(shù)據(jù)文件。如果你有一個(gè)很大的表,索引文件的大小可能達(dá)到操作系統(tǒng)允許的最大文件限制。如果MySQL能估計(jì)出它將可能比掃描整張表還要快時(shí),則不使用索引。另外,對(duì)于需要寫(xiě)入數(shù)據(jù)的操作,比如DELETE、UPDATE操作,索引會(huì)降低它們的速度。這是因?yàn)镸ySQL不僅要把改動(dòng)數(shù)據(jù)寫(xiě)入數(shù)據(jù)文件,而且它還要把這些改動(dòng)寫(xiě)入索引文件。

4、 減少使用字符集編譯MySQL

MySQL目前提供多達(dá)24種不同的字符集(許多語(yǔ)言版本),為全球用戶(hù)以他們自己的語(yǔ)言插入或查看表中的數(shù)據(jù)。缺省情況下,MySQL安裝所有者這些字符集,所以最好的選擇是安裝一兩種你需要的就可以了(中文、英文)。

總結(jié):本文介紹了如何在現(xiàn)有硬件條件下提高系統(tǒng)性能,網(wǎng)絡(luò)管理員充分了解自己的計(jì)算機(jī)和網(wǎng)絡(luò),從而找到真正的瓶頸所在。在預(yù)算短缺的今天,理解如何優(yōu)化系統(tǒng)性能比以往任何時(shí)候都重要。一味地硬件投資并不是能夠讓人們接受的辦法 — 并且也不一定生效。

[轉(zhuǎn)]LAMP(Linux+Apache+MySQL+PHP)服務(wù)器的性能優(yōu)化


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 国产精品成人在线播放 | 91视频精选 | 精品亚洲一区二区三区 | 欧美日韩中文 | 色久影院 | 白色白色视频免费观看 | 国产成人午夜性a一级毛片 久久久久亚洲 | 农村寡妇偷人高潮A片小说 午夜爱爱爱爱爽爽爽网站免费 | 五月天在线影院 | 91av在线免费 | 久久亚洲欧美日本精品品 | 爱草在线| 欧洲一级毛片 | 亚洲国产日本 | 欧美激情在线精品一区二区 | 亚洲 中文 欧美 日韩 在线 | 日韩激情中文字幕一区二区 | 热久久免费视频 | 84pao视频强力打造免费视频 | 欧美伊人 | 欧美国产在线观看 | 日操| 天天做天天爱天天爽综合区 | 精品亚洲永久免费精品 | 午夜啪视频 | 国产精选一区二区 | 99久在线视频| 国产精品久久久久久52AVAV | 日本高清视频在线播放 | 国产亚洲欧美日韩v在线 | 国产欧美日韩一区二区三区四区 | 日韩一级大片 | 国产免费www | 欧美经典成人在观看线视频 | 浮力影院在线观看 | 欧美日韩国产色综合一二三四 | 在线不卡视频 | 日本jizz| 欧美久操 | 日本一区二区三区视频在线观看 | 三人弄娇妻高潮3p视频 |