Mysql

cloudflare 背後的產品導入中斷

  • May 8, 2020

我無法解決我的數據庫錯誤以及如何優化它。由於我的伺服器執行緩慢(我相信主要是查詢),我的導入出現了 cloudflare 錯誤程式碼。(我記得,Cloudflare 阻止連接超過 15 秒)

需要建議修復它們。

我在 GCP 上託管我的 wordpress 網站,帶有 1 個 vcpu、4gb ram、20gb ssd。我使用 OpenLiteSpeed 網路伺服器、php 7.4.4、mariadb 15.1。建立一個附屬網路站點。在Google云儲存中託管圖像。導入速度有問題。獲得超過 50 萬種產品。勉強進口20萬左右。現在我什至無法一一導入或通過後端進行任何其他編輯。最大尺寸的 xml 帶有 100k 的產品,這些產品卡在 96k 並且不能繼續移動。

我的數據庫大小現在是 3.5gb,有 200k 個產品。+500k 產品將是它的兩倍。

這是我的 mysql 日誌和慢日誌、my.cnf 設置、mysqltuner 建議和全域變數。

今天早上,我意識到在設置跳過名稱解析後我沒有授予 user@127.0.0.1 的權限,我做到了,我猜我只是收到了 1 個 mysql 錯誤。

因為 mysqltuner 每天都在提供增加已安裝 ram 的數量,所以我將所有 innodb 表轉換為 myisam。

我也在尋找使用 wp_postmeta 和 wp_posts 表的索引的幫助。

Preciate 誰有助於解決這些問題。多謝。

MY.CNF https://gist.github.com/execash/d2add8445e48c26b3e369b18bcf8a18e

MySql 錯誤日誌https://gist.github.com/execash/1870e016c5b4794de3a81bc8635d76f9

超過 2 秒的慢日誌https://gist.github.com/execash/30fbdeb7650a824e140ead3080fa1931

全域變數https://gist.github.com/execash/b6b241b5dc607e6f99b322debd1bb11a

全域狀態https://gist.github.com/execash/604e2b9625f41d31ce9870eda3935ed5

mysqltuner 輸出https://gist.github.com/execash/aa269f91b5b08d1a4609d5c03d75916a

每秒速率 = RPS

為您的 Google Cloud 數據庫標誌考慮的建議,

log_slow_verbosity=query_plan,explain  # from query_plan for a more useful slow log
read_rnd_buffer_size=128K  # from 2M to reduce handler_read_rnd_next RPS of 67,482
read_buffer_size=512K  # from 4M to reduce handler_read_next RPS of 113,642
key_cache_age_threshold=7200  # from 300 (seconds) to minimize age out, only to read again
key_cache_segments=16  # from 0 to reduce mutex contention

這些只是顯著減少 CPU Busy 的幾個方面。如需更多幫助,請聯繫。

觀察結果:每個“產品遷移負載”僅導入 50K 行以避免超時失敗。因為從長遠來看,MyISAM 比 innodb 慢得多,所以遷移完成後,您將需要更多的 RAM 和核心以及對 innodb 數據表的額外調整。除非您正在積極使用慢查詢日誌,否則無需將其打開超過 15 分鐘,在 EXPLAIN 中標識的位置創建表索引以縮短響應時間。使用 mysqldumpslow 將以一種有用的方式總結您的慢日誌。記得在適當的時候使用多列(覆蓋索引)來輔助優化器。

我將嘗試找到 URL 來幫助改進 wp_postmeta 和 wp_posts 表。找到後會發帖。

引用自:https://serverfault.com/questions/1016167