Mysql
優化 mysqldump 大約。8GB RAM 的 20GB 數據庫
MySQL 伺服器具有以下規格:
8GB 記憶體
數據和索引大小 49.64GB
轉儲文件大小為 17.24GB(18512936320 字節)
中央處理器:
處理器:Intel(R) Core(TM) i5-3330 CPU @ 3.00GHz
架構:x86_64
供應商:英特爾公司
尺寸:2400MHz
容量:2400MHz
寬度:64 位
你:
經銷商編號:Ubuntu
說明:Ubuntu 14.04.5 LTS
發布:14.04
代號:靠譜
可用記憶體(RAM):這可能會在特定時間發生變化
total used free shared buffers cached
記憶體:7.7G 5.2G 2.5G 15M 44M 4.6G -/+ 緩衝區/記憶體:597M 7.1G 交換:7.9G 61M 7.8G
數據庫 98% 的表是InnoDB,其餘的是MyISAM。
我使用了以下查詢:
mysqldump -u root -p --single-transaction --routines --events --triggers --all-databases | gzip > all_databases_backup.sql.gz
我嘗試了以下全域變數:
key_buffer_size = 512M Innodb_buffer_pool_size = 1024M innodb_io_capacity = 2000 innodb_read_io_threads = 64 innodb_write_io_threads = 64 innodb_thread_concurrency = 0
優化備份總時間,但不僅能減少時間甚至 1 分鐘。
- 使用預設設置需要最少:27 分鐘
- 使用上面顯示的設置需要:26分鐘
還有什麼我必須配置的東西來優化
mysqldump
嗎?
我不確定總時間是否會得到顯著改善,但有以下一些建議:
- 我建議你 - 將所有表轉換為 InnoDB 格式,並為 InnoDB 調整記憶體:
Innodb_buffer_pool_size = 4096M
主要原因 - 單引擎優化更容易調整,MyISAM 不受 –single-transaction 影響
- 拆分轉儲和 GZIP
我不知道,你在 MyISAM 中有哪一部分錶,但它總是更好 - 盡可能快地完成數據庫的所有工作,而不是繼續其他步驟
GZIP 可能是您的腳本中最慢的部分,並且確實沒有優化。它使用單核而不取決於你有多少。