我正在使用 Aurora Mysql 5.7.mysql_aurora.2.07.2,並且在寫入大量工作負載的負載測試中面臨瓶頸。在啟用效能洞察時,我注意到大量會話正在等待事件 wait/synch/cond/sql/MYSQL_BIN_LOG::COND_done。
在瀏覽AWS 文件後,我認為這是由大量提交引起的,這在我的程式碼庫中就是這種情況,但對於所有wait/synch/*/sql/MYSQL_BIN_LOG 來說,解釋本質上是通用的 事件,但在Mysql 或Aurora 的文檔中我找不到觸發特定COND_DONE 事件的確切情況。
P粉6931261152024-03-28 14:24:52
Max的回答是正確的。對於我的用例,我沒有使用 binlog 進行複製,而是使用更改資料捕獲,並且無法在生產中將其關閉。
由於引入了 binlog I/O 緩存,將 Aurora MySQL 升級到 2.10 為我們解決了這個問題。 https://aws.amazon.com/blogs/database/introducing-binlog-i-o-cache-in-amazon-aurora-mysql-to-improve-binlog-performance/
#我在這裡詳細介紹了調試和修復此問題的整個過程。 https://blog.hotstar。 com/de-bottlenecking-aurora-mysql-for-1900萬並髮用戶-ee98d6247cfe
P粉2447306252024-03-28 14:19:15
這是文件中的內容 - 這是一個相對較新的部分,所有內容都是關於等待事件的調整:
https://docs.aws.amazon .com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Reference.Waitevents.html
#“synch/cond/sql/MYSQL_BIN_LOG::COND_done - 您已開啟二進位日誌記錄。可能存在高提交吞吐量、大量交易提交或副本讀取二進位日誌。考慮使用多行語句或將語句捆綁到一個交易中。在 Aurora 中,使用全域資料庫而不是二進位日誌複製,或使用 aurora_binlog_* 參數。 ”