PrestaShop 是一個用 PHP 開發的專業、免費、開源的電子商務平台,旨在為從新創公司到大型企業的企業提供啟動、管理和擴展其線上商店的基礎設施。
PrestaShop 提供豐富的可自訂主題選擇和一整套電子商務功能,支援廣泛的功能,例如產品管理、安全支付、運輸和庫存管理,直接開箱即用。
透過調優提高應用程式效能最好透過解決以下領域的綜合方法來實現:
許多經驗豐富的 PrestaShop 開發人員並不將資料庫效能調優視為提高應用程式效能的機會,因為他們對此領域知之甚少。他們花了大量時間來優化程式碼庫,但已經達到了這樣的地步:不再為投入的時間和精力帶來有價值的結果。我們對 MySQL 調優如何對流行開源 Web 應用程式的效能產生積極影響的研究旨在向用戶展示這一事實。
用於測試的 PrestaShop 版本是 8.1.2,它專門針對 PHP 8.1 進行了最佳化。有關安裝此版本 PrestaShop 的詳細指導可以在官方文件中找到。
我們預設安裝了帶有演示資料的PrestaShop,匯出所有演示產品並多次將其作為新產品導入,然後我們安裝了多種語言用於電子商務。
我們的測試持續時間為 2 天。為了應對更長的測試週期,我們從 BlazeMeter(最長測試持續時間為 20 分鐘)切換到開源負載測試工具 Locust。
我們使用:
GCP 運算引擎實例 c2-standard-4,配備 Debian Bullseye 作為作業系統,Apache 作為 Web 伺服器,預設配置為 MariaDB 10.5,資料庫大小為 1GB。
Prestashop 的調整配置:
[mysqld] innodb_change_buffering=none innodb_change_buffer_max_size=25 innodb_adaptive_flushing_lwm=25.000000 innodb_max_dirty_pages_pct=70.000000 innodb_autoextend_increment=48 thread_stack=299008 transaction_prealloc_size=8192 thread_cache_size=172 max_connections=172 query_cache_type=1 query_cache_size=134217728 query_cache_limit=33554432 query_cache_min_res_unit=4096 key_buffer_size=8388608 max_heap_table_size=16777216 tmp_table_size=16777216 innodb_buffer_pool_size=3355443200 innodb_log_file_size=25165824 innodb_file_per_table=1 sort_buffer_size=2097152 read_rnd_buffer_size=262144 bulk_insert_buffer_size=8388608 myisam_sort_buffer_size=8388608 innodb_buffer_pool_chunk_size=134217728 join_buffer_size=8388608 table_open_cache=2048 table_definition_cache=512 innodb_flush_log_at_trx_commit=1 innodb_log_buffer_size=16777216 innodb_write_io_threads=4 innodb_read_io_threads=4 innodb_flush_method=O_DIRECT innodb_thread_concurrency=0 optimizer_search_depth=0 innodb_purge_threads=4 thread_handling=one-thread-per-connection thread_pool_size=6
PrestaShop 的效能評估顯示優化後顯著增強。
值得注意的是,反應時間經歷了顯著減少,從 610 毫秒降至 370 毫秒,改善了 39%。同樣,網站處理請求的能力激增了 50%,從每秒 8 個請求增加到 12 個請求。
CPU 使用率 有所下降,從 100% 的滿載下降到 90%,負載10% 減少 負載。最令人印象深刻的是,MySQL 的查詢處理能力從每秒 5078 次查詢躍升至 7816 次查詢,大幅提升 53%。
我們錄製了截圖視頻,以顯示應用程式推薦的 MySQL 配置後對響應時間的影響。
測試結果圖表如下:
回應時間(毫秒),Prestashop 調整的 MySQL 配置與預設值
CPU 使用率 (%),PrestaShop 調整的 MySQL 設定與預設值
每秒查詢數,Prestashop 調整的 MySQL 配置與預設值
在設定測試環境時,我們與 Multiservicios Austral 執行長 Giuseppe Pompeo 密切合作。 Giuseppe 的公司處於智利數位服務的前沿,尤其以其 PrestaShop 電子商務的專業知識而聞名。他們的團隊得到了 PrestaShop 的認可和認證,六年多來一直在該領域提供專門和專業的服務。
Giuseppe 的參與對於我們的伺服器準備就緒、啟動我們的網站以及向其填充初始資料至關重要。他在雲端基礎設施方面的豐富經驗以及對優化 PrestaShop 等電子商務平台的熱衷在確保我們的測試順利進行方面發揮了重要作用。我們非常感謝 Giuseppe 為我們的專案帶來的知識和效率。
我們使用PrestaShop 進行的測試過程顯示,配置資料庫伺服器配置後,回應時間(延遲)、CPU 使用率 和每秒查詢數均有所改善.
反應時間(延遲) 下降了 39%,而 CPU 使用率下降了 10%。 每秒查詢數 PrestaShop 增加了 53%。 網站每秒請求數 +50%。
透過這項研究,我們希望展示 MySQL 調優作為提高 PrestaShop 應用程式效能的一種手段的價值,並鼓勵 PrestaShop 用戶在優化其網站效能時考慮這種做法。
使用 Releem 等工具,可以快速輕鬆地配置資料庫以獲得最佳效能,從而減輕軟體開發團隊的負擔。
以上是MySQL 調優如何提升 PrestaShop 效能的詳細內容。更多資訊請關注PHP中文網其他相關文章!