今天,我們將深入探討如何除錯WordPress效能問題,以及幫助大家解決問題的工具和策略。雖然像這樣的每個案例都相當獨特,但故障排除的工作流程通常保持不變。希望下次您發現自己遇到WordPress效能問題超出您的理解或控制範圍時,您可以使用它。
WordPress效能清單(當事情發生時)
這個效能檢查表有點不同。這不是分享如何加快WordPress網站的速度,而是重點介紹下一次您發現自己陷入困境時該怎麼做。並且會有下一次,你可以指望它。也許您的主機已經伸出手說您的站點使伺服器過載。或者您可能已經注意到某些東西正在拖累您的網站,例如非常流行的admin-ajax.php請求。
在舉起雙手並宣佈退出之前,請遵循以下建議。一切都有答案,但有時很難找到答案。
1. 實施正常執行時間和效能監控
當涉及到這些型別的問題時,您永遠不會做好充分的準備。要確保在訪問者之前瞭解站點故障,您可以做的最好的事情之一是實施正常執行時間和效能監控。
正常執行時間監控
事實上,多虧了New Relic Synthetics和APM,我們還可以在需要時監控有關WordPress站點的多個不同資料點:
- 終端使用者載入時間
- 應用伺服器載入時間
- 錯誤率
- 吞吐量
- 成功率(正常執行時間)
- Apdex分數
Apdex分數
這與正常執行時間和效能監控有關。
有時,這可能涉及牽扯第三方開發人員,尤其是在錯誤程式碼是根源的情況下。或者這可能意味著需要增加PHP worker。最後,它可能是很容易修復的東西。
我們希望您取得成功,為您的訪問者提供一個快速的網站始終是我們的首要任務之一。如果我們可以查明外掛 A 導致您的網站關閉,我們希望您知道。通常情況下,我們往往會看到許多效能問題源於糟糕的外掛更新、拙劣的程式碼或不支援最新版本的PHP等。
正常執行時間和效能監控工具
您還可以使用許多第三方工具來提醒您正常執行時間和效能。以下是您可能想要檢視的一些內容:
- updown.io (正常執行時間監控)
- Pingdom (正常執行時間和效能監控)
- Uptime Robot (正常執行時間監控)
- StatusCake(正常執行時間和效能監控)
- ManageWP(正常執行時間和效能監控)
2.利用New Relic之類的工具(它們是無價的)
像New Relic這樣的工具不僅非常適合監控正常執行時間和效能,而且在解決效能問題源自。或者您可以嘗試使用像Query Monitor這樣的免費外掛。
New Relic中有幾個地方可以幫助快速縮小效能問題。第一個是“WordPress → 外掛和主題”選項卡。在我今天用作案例研究的woorkup網站上,我可以立即看到我遇到的問題很可能來自我執行的“gp-premium”外掛。但為什麼?好吧,我們會做到這一點。
New Relic外掛和主題
注意:New Relic中的上述部分並不總是100%準確。在這種情況下,它是。但總是建議至少先檢查那裡。
因此,在看到之後我有一種很好的感覺或預感,它是我的“gp-premium”外掛(這是我的GeneratePress WordPress主題的擴充套件)中的東西。知道這一點後,我轉到了“事務Transactions”選項卡。我們可以立即看到admin-ajax.php事務的數量排在了第一位!
New Relic監控admin-ajax.php問題
對於那些沒有New Relic的人,請務必檢視我們關於如何診斷WordPress站點上admin-ajax使用率高的教學。您還可以在WordPress日誌中看到持續的admin-ajax請求。
下一步是深入研究admin-ajax.php事務並檢視消耗最多時間的資料庫查詢。您可以單擊“Trace Details”或 “Database queries” 選項卡。
資料庫查詢跟蹤
有時查詢本身將指示問題所在,但在這種情況下,它不是。別的東西,但立即有些東西脫穎而出,那就是/gp-premium/
資料夾。請記住,從上面我們看到“gp-premium”應該是導致問題的外掛。通常,如果您在外掛/主題部分以及跟蹤部分中都看到它,則表明這是一個很好的起點。
...s/gp-premium/library/image-processing-queue/includes/wp-background-process.php
堆疊跟蹤
下一步是前往谷歌!是的,在這種情況下,谷歌實際上可以提供很大幫助。
所以我搜尋了“Image Processing Queue”。返回的第一個結果是Delicious Brain的Image Processing Queue外掛。閱讀說明後,我可以看到這是用於WordPress主題的影象處理。本質上,影象大小是使用WP Queue在後臺悄悄生成的。
Image Processing Queue
快速搜尋同一個術語以及“GeneratePress”導致他們最近的更新日誌出現。是的,最近在GeneratePress中將影象調整器從Aqua Resizer更改為Image Processing Queue。就在我更新主題的時候,我的網站上沒有任何其他變化。這就是變更日誌如此重要的原因! 它們可以像用於故障排除的麵包屑一樣。
GP更新
令人費解的是,我有其他執行GeneratePress的站點沒有這個問題。因此,雖然我可能對正在發生的事情有很好的瞭解,但我仍然不能100%確定。因此,下一步是打造我的臨時環境以開始除錯WordPress。
3. 在不涉及生產的情況下利用測試站點
您可以使用WP Staging之類的外掛來搭建測試環境。
在開發站點啟動並執行後,做的第一件事就是批量禁用我的所有外掛。我注意到很多人傾向於忽略這個簡單的步驟。這幾乎就像認為重新啟動計算機不會解決問題一樣。
重要的是始終首先禁用所有外掛。這是迄今為止縮小問題範圍的最簡單方法之一。只需轉到外掛,選擇所有外掛,然後從批量選項中選擇“停用”。
禁用所有WordPress外掛
在New Relic執行此操作後,我的站點上的響應時間立即恢復正常。所以我知道這是一個導致問題的外掛。而且由於我已經在上面做了一些故障排除,我有一種預感,它仍然是“gp-premium”外掛。
正常響應時間
所以我重新啟用了“gp-premium”外掛來驗證我可以複製這個問題。是的,載入時間(網路事務時間)立即回升。
再次響應時間長
所以我可以確認100%是外掛。但是現在呢?這無助於解決我的問題。好吧,由於它似乎來自影象處理佇列,因此下一個提示是檢查CRON作業和瞬態。每當您有任何型別的佇列時,請務必檢查這些區域。事實上,我總是建議檢查它們。自動載入的資料也是另一個常見的罪魁禍首。
建議閱讀:如何修復WordPress Missed Schedule錯誤(2 種方法)。
瞬態是WordPress快取的一種簡單形式,附加了到期時間。為了快速檢視我的瞬變,我安裝了來自皮平威廉姆森的免費Transients Manager外掛。再次發射時,有什麼東西立刻引起了我的注意,那就是一個叫做wp_image_processing_queue_process_lock
的瞬態專案。” 此外,它被設定為1分鐘後到期,新的不斷彈出。
瞬態
雖然外掛本身確實有刪除瞬態的方法,但它不起作用。所以是時候檢視資料庫了。所以我登入到phpmyadmin。瞬態儲存在wp_options
表中,因此我從“Search”選項卡進行了快速查詢,以查詢包含該選項名稱的任何行。
SELECT * FROM wp_options WHERE option_name LIKE '%wp_image_processing%'
事實證明,有695846行用 %wp_image_processing%
。
wp_image_processing
這是測試環境派上用場的地方。由於破壞或測試東西沒有害處,我繼續手動刪除包含它的所有行。我從“SQL”選項卡執行以下查詢以刪除包含此選項名稱的所有行:
DELETE FROM wp_options WHERE option_name LIKE '%wp_image_processing%'
刪除行
就像魔術一樣,刪除行後,我網站的響應時間立即恢復正常。
注:如果你在生產環境操作,則需要先對資料庫進行備份,以免出現問題。
修復了WordPress效能問題
正如我之前所說,這在我使用GeneratePress的其他網站上沒有發生。他們在資料庫中也沒有那些額外的臨時行。也許在升級某些東西時並沒有像預期的那樣被刪除。所以看起來這不是開發人員的錯,而可能只是臨時快取的損壞。
任何外掛或主題都可能發生這種情況。 事實上,GeneratePress是我有史以來最喜歡的WordPress產品之一。害怕了嗎?好吧,這些是WordPress帶來的一些樂趣!
如果您不理解上述任何內容,那麼在解決此類問題時,我強烈建議您檢視以下其餘步驟。
4. 投資更高階的主機
與某些人可能會讓您相信的不同,不存在可以神奇地修復錯誤程式碼的架構或主機。 諸如糟糕的外掛更新之類的小事,或者在這種情況下,損壞的瞬變,都會使WordPress屈服!優秀的主機應該擁有自動備份、暫存環境和New Relic整合等。這些功能和工具有助於保護您的站點並快速解決問題。
WordPress支援
建議您選擇使用任何主機,確保他們的支援團隊能夠提供及時和專業的服務!
當然,在效能方面,基礎設施確實很重要,而不是在負載下屈曲。
5. WordPress維護服務
在過去五年左右的時間裡,業界出現了一種新型公司:WordPress維護服務提供商。這些公司在某些情況下可以接管您所有繁瑣的WordPress任務。這裡僅舉幾個例子:
- 谷歌搜尋控制檯設定
- 谷歌分析整合
- 每週關鍵詞排名報告 + 分析報告
- 社交媒體分析應用
- 手機+平板優化
- 外掛開發
- 無限編輯(沒錯,有些甚至會做一些小任務,例如更新您的徽標、新增WooCommerce產品等)
是的,其中很多都提供每日或每週的正常執行時間和效能監控。以下是您應該檢視的一些WordPress維護公司。
SkyrocketWP
SkyrocketWP提供WordPress維護服務、支援和託管解決方案,旨在為希望發展業務的人們處理WordPress。
SkyrocketWP
WP-Tonic
WP-Tonic為忙碌的企業主提供真正精品的禮賓支援和維護服務。沒有時間解決您的WordPress問題?讓WP-Tonic為您處理。他們還執行一個流行的播客,在其中採訪WordPress企業主和開發人員,以瞭解行業內正在發生的事情。
WP-Tonic
WP Buffs
WP Buffs為嚴肅的網站所有者和白標代理合作夥伴提供WordPress護理計劃。
WP Buffs
6. 不要害怕向開發者提出問題
在確定可能導致WordPress效能問題的原因之後,不要害怕向開發人員提出問題!很多時候,開發人員非常樂於提供幫助,事實上,他們希望在發生故障時瞭解情況,以便他們可以為每個人推出修復程式。
我聯絡了GeneratePress的開發人員Tom,他像往常一樣立即做出了迴應。我們將這個問題拋到了破壞瞬態的問題上,但正如你所看到的,他實際上將切換他們的影象排隊方法(部分原因是這個)。因此,您作為使用者的反饋絕對可以幫助開發人員做出更高階的決策,以決定在他們的外掛或主題中實施或更改什麼是最好的。
來自WordPress開發者的迴應
我們也有計劃推出專門針對WordPress的問題解答專區,敬請期待!
7. 您可以隨時聘請WordPress開發人員
如果最壞的情況發生,您可以隨時聘請WordPress開發人員來解決您的問題。也許您發現您使用的外掛確實有一些糟糕的程式碼,而建立者無法或不會修復它。
聘用開發人員的難點在於如何找到聲譽良好且擅長其工作的人?
強烈推薦Codeable,他們的開發人員在被允許加入服務之前都經過了預先篩選,Codeable員工會親自審查技術人員簡歷。他們有超過25,000名客戶,但只有300名WordPress專家。僅接受2%的申請者。他們只想要最好的,作為客戶,這反過來可以為您節省大量時間和挫折。
Codeable的WordPress開發人員職位
他們致力於提供WordPress外包服務,並完全專注於將有才華的開發人員與客戶相匹配。
其他資源
編寫了一些額外的資源來幫助您解決一些WordPress除錯效能問題:
- 使用New Relic尋找WordPress效能瓶頸
- 如何使用查詢監視器
- 如何消除阻塞渲染的JavaScript和CSS
- 如何修復瀏覽器快取警告
- 如何修復500內部伺服器錯誤
- 如何修復 504 閘道器超時錯誤
- 如何修復 502 錯誤閘道器錯誤
小結
無論您是否精通技術,在解決WordPress效能問題時,總有可用的解決方案。第一個明顯的建議是通過選擇不僅擁有堅如磐石的基礎設施而且擁有世界一流的支援團隊來支援它的託管服務提供商,為自己取得成功做好準備。您最不希望發生的事情是您的WordPress網站宕機或龜速執行,因為您不知道接下來要採取哪些步驟。
利用New Relic等工具,它可以在除錯問題時為您節省時間。歸根結底,通過社羣中求助大量才華橫溢的WordPress開發人員也是個好辦法,甚至直接僱用一個(有條件的情況下)。
評論留言