大家有沒(méi)有發(fā)現(xiàn),隨著網(wǎng)站流量的增長(zhǎng),高并發(fā)大流量的網(wǎng)站會(huì)出現(xiàn)加載緩慢,卡頓,甚至還會(huì)出現(xiàn)“該頁(yè)面無(wú)法顯示”的尷尬狀況,經(jīng)濟(jì)實(shí)力強(qiáng)的可以選擇升級(jí)高配置的服務(wù)器,無(wú)法超高的服務(wù)器成本的可以看過(guò)來(lái)。
1、為 Linux 系統(tǒng)設(shè)置 SWAP 虛擬內(nèi)存。
swap 是 Linux 系統(tǒng)的虛擬內(nèi)存,客戶(hù)訪問(wèn)網(wǎng)站實(shí)際是通過(guò)內(nèi)存執(zhí)行,云服務(wù)器內(nèi)存有限,大流量訪問(wèn)會(huì)導(dǎo)致內(nèi)存不足。為解決該問(wèn)題,當(dāng)物理內(nèi)存不足時(shí),系統(tǒng)就會(huì)自動(dòng)調(diào)用硬盤(pán)來(lái)充當(dāng)內(nèi)存,以彌補(bǔ)內(nèi)存的緊缺,這就是虛擬內(nèi)存的作用。現(xiàn)在的云服務(wù)器大多都是 kvm 虛擬架構(gòu)的,開(kāi)啟虛擬內(nèi)存就更有必要( OVZ虛擬架構(gòu)機(jī)器不可用此功能 )。當(dāng)然口袋有足夠的錢(qián),內(nèi)存32G以上就不用考慮開(kāi)啟 swap 了。
開(kāi)啟方法:在寶塔面板左側(cè)導(dǎo)航點(diǎn)擊【 軟件管理 】,然后點(diǎn)擊頂部的系統(tǒng)工具中,在系統(tǒng)工具列表中找到 Linux 工具箱 1.5版本,點(diǎn)擊最右側(cè)的【 設(shè)置 】,然后在 Linux 工具箱窗口點(diǎn)擊左側(cè)的【 Swap/虛擬內(nèi)存 】,填寫(xiě) Swap 虛擬內(nèi)存 大小,然后點(diǎn)擊【確定】。寶塔官方建議 swap 容量在真實(shí)內(nèi)存容量的1.5倍左右,若您的服務(wù)器內(nèi)存大于4GB,可設(shè) 1-2GB 的固定值。
2、添加計(jì)劃任務(wù)釋放內(nèi)存。
釋放內(nèi)存就是將駐留在內(nèi)存中的數(shù)據(jù)從內(nèi)存中釋放出來(lái),提高內(nèi)存資源的利用率,提升云服務(wù)器性能。寶塔面板已經(jīng)考慮到了內(nèi)存釋放的問(wèn)題,可以添加內(nèi)存釋放計(jì)劃任務(wù),讓服務(wù)器每天或每周釋放一次,釋放php、mysql、PURE-FTPD、apache、nginx的內(nèi)存占用,建議在每天半夜執(zhí)行,間隔時(shí)間根據(jù)自己網(wǎng)站的用戶(hù)量及內(nèi)存占用百分比來(lái)定。
釋放方法:登陸寶塔面板點(diǎn)擊左側(cè)導(dǎo)航的【 計(jì)劃任務(wù) 】,選擇任務(wù)類(lèi)型為釋放內(nèi)存,根據(jù)自己需要設(shè)置執(zhí)行周期和執(zhí)行時(shí)間,然后點(diǎn)擊確定即可。
寶塔面板集成了 php 5.3 到 php7.3 版本,php 7.0 及以上版本進(jìn)行了很多優(yōu)化,處理速度更快,更高效穩(wěn)定。常用的 hph 緩存插件有 Opcache 腳本緩存、memcached 緩存和 redis 內(nèi)容緩存。我們可以通過(guò)安裝緩存插件來(lái)提升服務(wù)器的運(yùn)行效率。緩存插件安裝完成后,對(duì)對(duì)應(yīng)網(wǎng)站進(jìn)行緩存配置,一般在站點(diǎn)文件的 confing 文件中進(jìn)行配置,即可提升網(wǎng)站訪問(wèn)速度。
opcache、xcache、apc 等腳本緩存擴(kuò)展,請(qǐng)只安裝其中1個(gè),否則可能導(dǎo)致您的站點(diǎn)程序異常。但是 memcached 和 redis 這兩個(gè)內(nèi)容緩存我們可以同時(shí)安裝。我們也要切記,緩存擴(kuò)展也并不是越多越好,凡事都得有一個(gè)度,超過(guò)這個(gè)度了,反而會(huì)拖慢 php 的執(zhí)行效率。
安裝方法:登錄寶塔面板,在左側(cè)導(dǎo)航菜單點(diǎn)擊【 軟件管理 】,找到您正在使用的 php 版本,點(diǎn)擊右側(cè)的 【 設(shè)置 】 ,進(jìn)入php 管理界面,在php管理界面點(diǎn)擊左側(cè)的【 安裝擴(kuò)展 】,選擇您需要的緩存進(jìn)行安裝。
4、php 配置優(yōu)化。
部分網(wǎng)站或者系統(tǒng)在運(yùn)行的時(shí)候本身比較耗費(fèi)內(nèi)存,memory_limit 用來(lái)設(shè)置腳本內(nèi)存的臨界點(diǎn),如果運(yùn)行過(guò)程中腳本內(nèi)存達(dá)到了臨界點(diǎn)就會(huì)出現(xiàn)報(bào)錯(cuò),但也不是說(shuō)設(shè)置的越大越好,原則上腳本內(nèi)存的設(shè)置不要超過(guò)云服務(wù)器的物理內(nèi)存, 否則可能會(huì)導(dǎo)致啟用磁盤(pán) swap,服務(wù)器資源耗盡,最后死機(jī)。以用戶(hù)量全球第一的 wordpress 為例,要跑的流暢的話把 memory_limit 腳本內(nèi)存限制修改成 256M,這樣 wordpress 會(huì)如魚(yú)得水。
配置方法:登錄寶塔面板,在左側(cè)導(dǎo)航菜單點(diǎn)擊【 軟件管理 】,找到您正在使用的 php 版本,點(diǎn)擊右側(cè)的 【設(shè)置】 ,進(jìn)入php 管理界面,在php管理界面點(diǎn)擊左側(cè)的【 配置修改 】,把 memory_limit 腳本內(nèi)存限制修改成 256M,然后保存即可。
并發(fā)量和日訪問(wèn)量是兩個(gè)概念,所謂并發(fā)可以簡(jiǎn)單理解為同一秒訪問(wèn)網(wǎng)站的客戶(hù)數(shù)量,假設(shè)并發(fā)設(shè)置為50,那您 1 分鐘就可以有 3000 的訪問(wèn)量,日訪問(wèn)量也十分的牛X了,但也不是說(shuō)并發(fā)設(shè)置的越大就越好,如果并發(fā)數(shù)設(shè)置過(guò)大,被 CC 攻擊時(shí)服務(wù)器宕機(jī)掛掉的可能性也十分高了,君哥建議并發(fā)數(shù)設(shè)置不要超過(guò) 300 。php的并發(fā)調(diào)整是優(yōu)化中至關(guān)重要的環(huán)節(jié),寶塔面板里面自帶了幾個(gè)并發(fā)優(yōu)化方案,一般 1 核 1G 內(nèi)存的云服務(wù)器,設(shè)置 30 并發(fā)或 50 并發(fā)都可以。
設(shè)置方法:登錄寶塔面板,在左側(cè)導(dǎo)航菜單點(diǎn)擊【 軟件管理 】,找到您正在使用的 php 版本,點(diǎn)擊右側(cè)的【設(shè)置 】,進(jìn)入php 管理界面,在php管理界面點(diǎn)擊左側(cè)的 【性能調(diào)整】,選擇并發(fā)方案,然后保存即可。
服務(wù)器性能開(kāi)銷(xiāo)最大的是數(shù)據(jù)庫(kù)開(kāi)銷(xiāo),通過(guò)上述各項(xiàng)優(yōu)化后,還遠(yuǎn)遠(yuǎn)不能承受高并發(fā)大流量的站點(diǎn)訪問(wèn),我們需要對(duì) mysql 進(jìn)行性能優(yōu)化。寶塔面板非常人性化,內(nèi)置了數(shù)據(jù)庫(kù)性能優(yōu)化方案,我們只需要鼠標(biāo)輕點(diǎn)即可完成。進(jìn)行性能一鍵優(yōu)化后,保存并重啟數(shù)據(jù)庫(kù),然后在當(dāng)前狀態(tài)進(jìn)行觀察,根據(jù)建議做適當(dāng)?shù)恼{(diào)整。
設(shè)置方法:登錄寶塔面板,在左側(cè)導(dǎo)航菜單點(diǎn)擊【軟件管理】,找到您正在使用的 mysql 版本,點(diǎn)擊右側(cè)的 【設(shè)置 】,進(jìn)入 mysql 管理界面,在 mysql 管理界面點(diǎn)擊左側(cè)的 【 性能調(diào)整 】,根據(jù)您的服務(wù)器配置選擇優(yōu)化方案,然后先保存再重啟數(shù)據(jù)庫(kù)即可。
7、SESSION 存儲(chǔ)設(shè)置。
Session 稱(chēng)為會(huì)話信息,位于web服務(wù)器上,主要負(fù)責(zé)訪問(wèn)者與網(wǎng)站之間的交互,當(dāng)訪問(wèn)瀏覽器請(qǐng)求 http 地址時(shí),將傳遞到web服務(wù)器上并與訪問(wèn)信息進(jìn)行匹配,寶塔默認(rèn) Session 保存在指定的文件夾中,當(dāng)用戶(hù)訪問(wèn)時(shí)要從文件中檢索 Session ID ,效率不高,寶塔面板可以把 Session 存儲(chǔ)位置修改到 redis ,提高會(huì)話信息檢索效率,減少響應(yīng)時(shí)間。
設(shè)置方法:
先在第三步安裝 redis 擴(kuò)展,然后點(diǎn)擊寶塔面板左側(cè)導(dǎo)航【軟件管理】,再點(diǎn)擊頂部的【運(yùn)行環(huán)境】,找到 redis 版本,點(diǎn)擊右側(cè)的【設(shè)置】,打開(kāi) redis 設(shè)置窗口,再點(diǎn)擊 redis 窗口的左側(cè)【性能調(diào)整】,在 requirepass 一欄輸入密碼,這個(gè)密碼自己設(shè)置,越復(fù)雜越好,設(shè)置完成后復(fù)制你設(shè)置的密碼,然后點(diǎn)擊【保存】。
然后點(diǎn)擊寶塔面板左側(cè)導(dǎo)航【軟件管理】,再點(diǎn)擊頂部的【運(yùn)行環(huán)境】,找到對(duì)應(yīng)的 php 版本,點(diǎn)擊右側(cè)的【設(shè)置】,打開(kāi) php 管理窗口,在 php 管理窗口點(diǎn)擊左側(cè)的 【 Session設(shè)置 】,然后在密碼位置粘貼上一步復(fù)制的密碼,然后點(diǎn)擊保存。