自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

LAMP系統(tǒng)優(yōu)化

運(yùn)維 系統(tǒng)運(yùn)維
LAMP(Linux+Apache+Mysql+Perl/PHP/Python)常用來(lái)搭建動(dòng)態(tài)網(wǎng)站或者服務(wù)器的開(kāi)源軟件,本身都是各自獨(dú)立的程序,但是因?yàn)槌1环旁谝黄鹗褂?,擁有了越?lái)越高的兼容度,共同組成了一個(gè)強(qiáng)大的Web應(yīng)用程序平臺(tái)。每個(gè)LAMP系統(tǒng)都需要做好優(yōu)化。

LAMP系統(tǒng)優(yōu)化是非常必要的,一個(gè)好的優(yōu)化能使系統(tǒng)運(yùn)作的越快,從而提高工作效率,下面我將從幾方面給大家詳細(xì)介紹下LAMP系統(tǒng)優(yōu)化的內(nèi)容。

LAMP 

LAMP

  一、硬件優(yōu)化

  1、升級(jí)硬件的一般規(guī)則:對(duì)于 PHP 腳本而言,主要的瓶頸是 CPU ,對(duì)于靜態(tài)頁(yè)面而言,瓶頸是內(nèi)存和網(wǎng)絡(luò)。一臺(tái) 400 Mhz 的普通奔騰機(jī)器所下載的靜態(tài)頁(yè)面就能讓 T3 專(zhuān)線(xiàn)(45Mbps)飽和。

  2、采用 hdparm 來(lái)優(yōu)化磁盤(pán),一般能提升 IDE 磁盤(pán)讀寫(xiě)性能 200%,但是對(duì) SCSI 硬盤(pán)也有效果。(不同類(lèi)型的硬盤(pán)對(duì)比)

  策略?xún)?yōu)化

  3、Apache 處理 PHP 腳本的速度要比靜態(tài)頁(yè)面慢 2-10 倍,因此盡量采用多的靜態(tài)頁(yè)面,少的腳本。

  4、PHP 腳本如果不做緩沖,每次調(diào)用都需要編譯,因此,安裝一個(gè) PHP 緩沖產(chǎn)品能提升 25-100% 的性能。

  5、如果你采用了 Linux 系統(tǒng),建議升級(jí)內(nèi)核到 2.4,因?yàn)殪o態(tài)頁(yè)面由內(nèi)核服務(wù)。

  6、另外一項(xiàng)緩沖技術(shù)是把不常修改的 PHP 頁(yè)面采用 HTML 緩沖輸出。

  7、不要在 Web 服務(wù)器上運(yùn)行 X-Windows ,關(guān)掉沒(méi)有必要運(yùn)行的進(jìn)程。

  8、如果能夠用文本就不要用圖像,盡量減小圖片的尺寸。

  9、分散負(fù)載,把數(shù)據(jù)庫(kù)服務(wù)器放到另外的機(jī)器上去。采用另外低端的機(jī)器服務(wù)圖片和 HTML 頁(yè)面,如果所有的靜態(tài)頁(yè)面在另外一臺(tái)服務(wù)器上處理,可以設(shè)置 httpd.conf 中的 KeepAlives 為 off ,來(lái)減少斷開(kāi)連接的時(shí)間。

  10、以上所有的方法都是針對(duì)單機(jī)而言的,如果你覺(jué)得系統(tǒng)還是不夠快,可以采用集群,負(fù)載均衡,緩沖技術(shù)。采用 Squid 作為緩沖,配置 Squid 的方法。

#p#

  二、編譯優(yōu)化

  11、把基于文件的會(huì)話(huà)切換到基于共享內(nèi)存的會(huì)話(huà)。編譯 PHP 時(shí)采用 --with-mm 選項(xiàng),在 php.ini 中設(shè)置 set session.save_handler=mm 。這個(gè)簡(jiǎn)單的修改能讓會(huì)話(huà)管理時(shí)間縮短一半。

  12、采用最新版本的 Apache ,并把 PHP 編譯其中,或者采用 DSO 模式,不要采用CGI方式。

  13、編譯 PHP 時(shí),建議采用如下的參數(shù):

  --enable-inline-optimization --disable-debug

#p#

  三、配置優(yōu)化

  14、修改 httpd.conf :

  # 關(guān)閉 DNS lookups,PHP 腳本只拿 IP 地址

  HostnameLookups off

  15、如果網(wǎng)絡(luò)擁擠,CPU 資源不夠用,采用 PHP 的 HTML 壓縮功能:

  output_handler = ob_gzhandler

  PHP 4.0.4 的用戶(hù)請(qǐng)不要使用,因?yàn)榇嬖趦?nèi)存泄漏問(wèn)題。

  16、修改 httpd.conf 中的 SendBufferSize 為你最大的頁(yè)面文件的大小。加大內(nèi)核的 TCP/IP 寫(xiě)緩沖大小。

  17、采用數(shù)據(jù)庫(kù)的持久連接時(shí),不要把 MaxRequestsPerChild 設(shè)置得太大。

#p#

  四、第三方軟件優(yōu)化

  18、如果喜歡從修改 Apache 源碼入手,可以安裝 lingerd。在頁(yè)面產(chǎn)生和發(fā)送后,每個(gè) Apache 進(jìn)程都會(huì)浪費(fèi)一段時(shí)光在客戶(hù)連接上,Lingerd 能接管這項(xiàng)工作,讓 Apache 迅速服務(wù)下一個(gè)客戶(hù)請(qǐng)求。

  19、如果你足夠勇敢的話(huà),還可以采用 Silicon Graphics 的 Accelerated Apache 補(bǔ)丁。這個(gè)工程能使 Apache 1.3 快 10 倍,使 Apache 2.0 快 4 倍。

  安裝一個(gè) PHP 緩沖產(chǎn)品能提升 25-100% 的性能。

#p#

  五、Linux系統(tǒng)優(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.local 最後面加上一行: /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中的缺省值??梢允褂脙煞N方法修改:

  (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ù)器尤其重要?,F(xiàn)在大多數(shù)Linux服務(wù)器使用10/100 Mb以太網(wǎng)。如果有較重的網(wǎng)絡(luò)負(fù)載,則可以考慮千兆以太網(wǎng)卡。如果沒(méi)有能力購(gòu)買(mǎi)千兆網(wǎng)卡的話(huà):可以使用多塊網(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芯片。

  然后,重新編譯核心,重新起動(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地址修改為一樣的?;祀s模式就是網(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)程。

通過(guò)文章的介紹,我們清楚的了解了LAMP系統(tǒng)的五大優(yōu)化:硬件優(yōu)化、編譯優(yōu)化、配置優(yōu)化、第三方軟件優(yōu)化、Linux系統(tǒng)優(yōu)化。希望大家都能用到!

【編輯推薦】

 

 

責(zé)任編輯:趙鵬 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-03-09 10:55:33

LAMP優(yōu)化技巧

2011-03-10 10:09:33

LAMP優(yōu)化

2011-03-11 14:47:20

eAccelerato優(yōu)化

2011-03-11 14:48:23

XCache優(yōu)化

2011-03-14 13:51:21

LAMPMySQL

2011-03-14 13:51:16

LAMPMySQL

2011-03-11 15:53:02

LAMP優(yōu)化

2011-03-11 14:47:16

Zend Optimi優(yōu)化

2011-03-11 15:52:57

LAMP優(yōu)化

2011-03-18 11:00:48

LAMPLAMP 架構(gòu)

2011-03-11 15:52:59

LAMP優(yōu)化

2011-03-11 15:53:00

LAMP優(yōu)化

2011-03-14 13:51:21

LAMPMySQL優(yōu)化

2011-03-14 13:51:21

LAMPMySQL

2010-01-11 09:12:15

Fedora LAMP

2011-03-22 16:28:25

lamp

2011-03-23 14:09:38

2011-03-09 16:16:56

CentOSLAMP

2011-03-10 14:40:52

2011-03-23 09:40:34

lampsolutions
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)