新聞中心
在選擇托管計劃時,選擇最符合您的wordpress網(wǎng)站需求的計劃非常重要。

十多年的寧安網(wǎng)站建設經(jīng)驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。成都營銷網(wǎng)站建設的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調整寧安建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“寧安網(wǎng)站設計”,“寧安網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
例如,一個每月有50,000名訪問者的電子商務網(wǎng)站通常比具有相同流量的簡單博客對資源的要求要高得多。
這僅僅是因為電子商務網(wǎng)站本質上通常是動態(tài)的,并且需要更多資源用于php和數(shù)據(jù)庫查詢。
這就是PHP worker發(fā)揮作用的地方。閱讀下文,了解PHP worker是什么以及如何使用它們來加快您網(wǎng)站上請求的處理速度。
什么是PHP worker?
在WordPress的上下文中,PHP worker構建頁面、處理計劃的后臺任務等等。由于PHP worker直接負責生成HTML頁面以提供給您網(wǎng)站的訪問者,因此他們決定了您的網(wǎng)站在任何給定時間可以同時處理多少個未緩存的請求。
例如,假設您的WordPress站點配備了兩個PHP workers,并且沒有設置頁面緩存。如果四個請求同時到達您的站點,則其中兩個請求將立即得到處理,而另外兩個則必須在隊列中等待,直到前兩個請求完成處理。
盡管我們實現(xiàn)了服務器級緩存,但對于繞過或丟失緩存的請求,PHP workers變得非常重要,因為他們必須為每個請求工作。
通常我們會在電子商務和社區(qū)論壇網(wǎng)站上看到很多未緩存的請求。因此,這些站點將需要額外的PHP workers來確保處理每個請求而不會出現(xiàn)延遲或超時。
如果您的網(wǎng)站經(jīng)過高度優(yōu)化或沒有大量PHP代碼(例如復雜的主題或大量WordPress插件),那么處理每個請求應該幾乎立即發(fā)生。即使有2個PHP workers和4個請求,所有4個請求都將很快得到處理。
簡單地說,PHP workers是運行PHP代碼的服務器上的后臺進程。
WordPress如何使用PHP Workers?
在我們討論如何優(yōu)化WordPress的PHP worker使用之前,我們必須首先了解WordPress如何使用PHP worker。
未緩存環(huán)境中的典型請求如下所示:
在上面突出顯示的過程中,第3步是最耗費時間和資源的(CPU和RAM)。具有最少數(shù)據(jù)庫查詢和高效PHP代碼的高度優(yōu)化的站點將相對較快地完成第三步。
相反,一個編寫糟糕的PHP代碼并進行大量不必要的數(shù)據(jù)庫查詢的站點將花費更多的時間來完成第3步,這意味著請求將占用PHP worker更長的時間。
PHP Worker與CPU的關系
當談到WordPress性能時,PHP worker和可用CPU之間的關系是一個需要考慮的重要因素。
如果CPU資源不足是您網(wǎng)站的瓶頸,那么增加PHP worker的數(shù)量不會提高您網(wǎng)站的性能——它只會讓您的網(wǎng)站同時處理更多請求,而每個請求的性能會降低。
讓我解釋。
想象一個帶有一根軟管的消防栓。只需連接一根軟管,消火栓就能提供足夠的水壓?,F(xiàn)在,如果我們將十根軟管連接到消火栓上會發(fā)生什么?
有限的水壓分布在十根軟管上,這意味著每根單獨的軟管完成工作所需的水壓較小。在這個類比中,消火栓是CPU,軟管是PHP worker。
考慮到上述情況,如果您的主機不斷建議您增加PHP worker而沒有提及CPU,您應該小心。
讓我們暫時回到消防栓的比喻。
想象一下,您需要用5根軟管撲滅10場火災。連接所有五根軟管后,您會意識到消火栓仍在提供足夠的水壓。
在這種情況下,連接更多軟管是有意義的,因為消火栓的水壓不是瓶頸。
同樣,如果您的站點在CPU和RAM開銷充足的情況下表現(xiàn)不佳,那么您應該考慮增加PHP worker的數(shù)量作為提高性能的一種選擇。
如何優(yōu)化您網(wǎng)站的PHP Worker使用
我們已經(jīng)解釋過PHP workers是使用PHP代碼生成HTML頁面的后臺進程。現(xiàn)在,減少和優(yōu)化PHP workers使用的最明顯方法是減少滿足對您的站點的請求所需的CPU和PHP資源量。
這是如何做到的。
1. 為您的WordPress網(wǎng)站設置緩存
減少PHP worker使用的第一步是為您的WordPress站點設置緩存層。默認情況下,WordPress是一個動態(tài)CMS,可以按需滿足每個頁面請求。
對于博客、在線雜志和作品集等許多網(wǎng)站,使用PHP為每個請求動態(tài)生成頁面是不必要的。
頁面緩存
您當前正在閱讀的博客文章是不需要動態(tài)生成的頁面的完美示例。與我們的許多其他文章一樣,此文章中的內(nèi)容被設計為靜態(tài)的,因此無需花費CPU資源來連續(xù)生成相同的頁面。
相反,最好讓PHP生成一次頁面然后緩存它。與使用PHP動態(tài)生成頁面相比,頁面緩存具有許多明顯的優(yōu)勢。
例如,想象一下,如果您網(wǎng)站上的博客文章在發(fā)布后的幾個小時內(nèi)傳播開來并獲得100,000次頁面瀏覽量。如果沒有頁面緩存,您的PHP worker可能會不堪重負,您的服務器可能會崩潰。
使用頁面緩存,只會動態(tài)生成首頁視圖。其他99,999個請求將從您的頁面緩存中提供服務,該緩存使用相對較少的CPU資源。
有兩種方法可以為您的WordPress網(wǎng)站設置頁面緩存。
為了獲得最佳性能,我們建議盡可能使用服務器級頁面緩存,比如使用Nginx的FastCGI緩存模塊以獲得超快的性能。
如果您的主機不提供服務器級頁面緩存選項,則下一個最佳選擇是使用WordPress緩存插件在應用程序級別實現(xiàn)頁面緩存。
對象緩存
對于無法有效利用頁面緩存的WooCommerce商店、社區(qū)論壇和其他WordPress站點,在MySQL數(shù)據(jù)庫前添加像Redis這樣的持久對象緩存可以提高性能并減少 PHP worker的負載。
如果沒有持久對象緩存,MySQL數(shù)據(jù)庫查詢將為每個請求執(zhí)行,即使結果與前一個查詢相同。
例如,繞過頁面緩存的社區(qū)論壇站點將對數(shù)據(jù)庫進行單獨的相同查詢以獲取帖子數(shù)據(jù)以構建頁面。
對于高流量和大量數(shù)據(jù)庫的站點,這種查詢數(shù)據(jù)庫的方法效率低下,因為它使用PHP worker為單獨的請求生成相同的查詢結果。這就是Redis的用武之地。
Redis將數(shù)據(jù)庫查詢的結果存儲在RAM中,這允許PHP抓取已經(jīng)執(zhí)行的查詢結果。這種對象緩存方法允許PHP worker節(jié)省CPU資源并花費更少的時間來完成請求,因為它消除了重復數(shù)據(jù)庫查詢的需要。
2. 優(yōu)化你的PHP代碼
除了設置頁面緩存之外,另一個可以幫助您減少PHP worker使用的策略是優(yōu)化您的PHP代碼。在WordPress的上下文中,“優(yōu)化PHP代碼”可能意味著各種不同的東西,所以讓我們更深入地了解一下。
WordPress最受歡迎和最討厭的功能之一(取決于你問誰)是它通過插件和代碼片段的可擴展性。
如果您想向您的WordPress網(wǎng)站添加股票行情小部件,可以使用插件。同樣,如果您想添加自定義字體,也有一個functions.php代碼片段。
使用附加功能擴展WordPress核心變得如此容易,以至于我們經(jīng)常過火而沒有考慮對網(wǎng)站性能的潛在影響。
因此,優(yōu)化PHP代碼的第一種方法是執(zhí)行站點范圍的審核,以確定哪些插件和代碼片段是真正需要的。
選擇優(yōu)質插件
通常情況下,WordPress網(wǎng)站上的插件數(shù)量并不像插件的質量那么重要。如果插件在過去六個月內(nèi)沒有更新,我們建議選擇另一個符合要求的插件。
這樣做的原因是WordPress正在不斷改進。如果一個插件多年沒有更新,很可能它的代碼沒有使用最新的WordPress開發(fā)和安全最佳實踐。
相反,如果插件每隔幾周不斷更新,那么開發(fā)人員很可能會認真對待質量,這使其成為您的WordPress網(wǎng)站的不錯選擇。
僅在需要時使用插件
如果您希望在您的網(wǎng)站上執(zhí)行一項簡單的任務,例如添加JavaScript或CSS,那么您并不總是需要插件。相反,您可以將代碼直接添加到主題的PHP模板或帶有子主題的style.css文件中。
下次當您考慮安裝插件時,請先花一些時間看看它是否100%必要。有時,沒有辦法安裝另一個插件,這沒關系。其他時候,您可以通過不安裝不必要的插件來避免添加額外的代碼膨脹。
選擇輕量級主題
根據(jù)我們監(jiān)控數(shù)千個WordPress網(wǎng)站的經(jīng)驗,我們發(fā)現(xiàn)主題偶爾會導致PHP性能不佳。為了迎合WordPress作為通用CMS的多功能性,一些開發(fā)人員對主題進行編碼以適用于各種用例。
通常,這會導致代碼繁重且臃腫的主題無法有效地使用PHP和數(shù)據(jù)庫查詢。
當建立一個WordPress站點,它是重要的選擇一個主題,這是最高效的,可定制的- GeneratePress,OceanWP和Astra有三個例子。
3. 選擇一個注重性能的WordPress主機
信不信由你,選擇正確的WordPress主機會對您網(wǎng)站的性能產(chǎn)生巨大影響。由于PHP worker的效率與CPU和RAM直接相關,因此將您的網(wǎng)站托管在具有最新硬件的現(xiàn)代服務器上可以幫助您優(yōu)化 PHP 工作者的使用。
以下是兩個示例,說明為什么選擇以性能為中心的主機對您的WordPress網(wǎng)站很重要。
高性能CPU
PHP使用CPU資源來執(zhí)行代碼。更快的CPU意味著更快的代碼執(zhí)行。
快速SSD存儲
磁盤I/O速度會對代碼執(zhí)行和數(shù)據(jù)庫查詢產(chǎn)生直接影響。如果您的數(shù)據(jù)庫存儲在速度較慢的機械磁盤或基于云的SSD上而沒有足夠的IOPS(每秒輸入/輸出操作),您的 PHP 工作人員將被迫花費更多時間來滿足請求。
4. 與績效專家合作(可選)
如果您不確定如何解決網(wǎng)站上的性能問題,我們建議您與合格的性能專家合作來診斷問題。
專家可以通過使用New Relic或WordPress插件Query Monitor等高級監(jiān)控工具來幫助您識別代碼中的特定瓶頸。
通過放大和檢查單個PHP進程和數(shù)據(jù)庫查詢,可以識別給您網(wǎng)站的PHP worker帶來高負荷的特定代碼塊及其相關功能。
總結PHP worker優(yōu)化,請記住以下提示。
PHP Workers不足的結果
為了讓您的WordPress網(wǎng)站獲得快速可靠的性能,確保它有足夠的PHP workers非常重要。當PHP worker已經(jīng)在一個站點上忙碌時,他們開始建立一個隊列。
一旦達到PHP worker的限制,隊列就會開始推出較舊的請求,這可能導致504錯誤或不完整的請求。
由于缺少PHP worker,我們看到的另一個常見錯誤是502 bad gateway errors。這些與504錯誤略有不同,因為錯誤發(fā)生在PHP工作隊列中的60秒超時之后。
這些錯誤不僅會給訪問者帶來糟糕的用戶體驗,還會對您網(wǎng)站的SEO產(chǎn)生負面影響。
502(錯誤網(wǎng)關)錯誤
有許多不同的因素會導致頁面加載緩慢或錯誤。例如,如果未緩存的請求需要來自數(shù)據(jù)庫的大量數(shù)據(jù),則生成的查詢可能需要20-30秒才能完成。
在這種情況下,一個PHP worker至少會被占用半分鐘。如果您的站點只有兩個PHP worker,那么這些長請求中的兩個或三個就足以開始導致錯誤。
為了解決這個問題,優(yōu)化MySQL數(shù)據(jù)庫并在CPU尚未達到極限的情況下增加PHP worker可以提高性能。
估計所需PHP worker的數(shù)量
一般來說,以靜態(tài)內(nèi)容為主的站點——文章、靜態(tài)頁面和作品集——不需要很多PHP worker。
對于具有更多動態(tài)功能(如電子商務或論壇)的大型WordPress網(wǎng)站,我們發(fā)現(xiàn)4個PHP worker是一個很好的起點。但是,這可能因站點而異,因為每個站點都有自己獨特的一組主題、插件、數(shù)據(jù)庫查詢和緩存與未緩存的比率。
在某些情況下,可能需要更多的PHP worker才能獲得快速和可靠的性能。
PHP Worker限制圖表
部分主機服務商會提供PHP worker限制圖表可讓您查看PHP引擎在其錯誤日志中報告達到最大分配worker數(shù)量的次數(shù)。此圖表可以幫助您衡量性能優(yōu)化是否會影響您的PHP worker使用情況。
頂級緩存繞過
例如,如果您將站點的PHP版本從5.6切換到7.4,您可能會看到PHP worker限制下降,因為PHP 7.4比??5.6快得多。
同樣,如果您與性能專家合作修復長數(shù)據(jù)庫查詢并切換到更輕量級的主題,您可以使用PHP worker限制圖表查看優(yōu)化前后的差異。
緩存分析圖
您還可以使用服務器提供商的緩存分析報告(如果有)來確定緩存命中、繞過、未命中和過期的數(shù)量。在優(yōu)化您的網(wǎng)站對PHP worker的使用時,此數(shù)據(jù)可能特別有用。
使用查詢字符串繞過緩存
默認情況下,帶有查詢字符串的URLhttps://kinstalife.com/?query=123會繞過頁面緩存。在某些情況下,查詢字符串可能會導致不必要的PHP和CPU使用率大幅上升。
例如,如果您訪問Facebook的鏈接,您通常會在URL的末尾看到查詢字符串?fbclid=。同樣,單擊電子郵件通訊中的鏈接后,您可能會看到UTM跟蹤參數(shù)。
帶有查詢字符串 (?querystring=123) 的URL
如果您網(wǎng)站上的帖子病毒式傳播,并且不斷通過查詢字符串訪問,您將能夠使用緩存分析報告識別特定URL。
使用該關鍵信息,您可以強制緩存該特定URL,以減少PHP worker的負載。
識別資源密集型插件
在某些情況下,緩存分析圖還可用于識別資源密集型插件和進程。
例如,如果您看到頂部緩存繞過URL指向特定插件目錄中的文件,則該插件很可能是導致PHP worker使用率高的原因。
如果您在緩存繞過列表中看到大量與插件相關的請求,您可以與開發(fā)人員合作解決問題或切換到使用較少資源的插件。
小結
維護快速WordPress網(wǎng)站的目標是最大限度地提高后端的效率。當通過在worker數(shù)量、CPU使用率和代碼優(yōu)化之間找到平衡來正確利用PHP worker時,WordPress可以成為一個非常高性能的CMS。
本文標題:什么是PHPWorker及應該如何使用
標題網(wǎng)址:http://m.fisionsoft.com.cn/article/copgigc.html


咨詢
建站咨詢
