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