Ubuntu

備份期間如何限制磁碟 i/o?

  • June 5, 2013

我有一個 cron,它基本上在晚上做一個簡單的“tar zcf”。

伺服器有:

  • 8 核 - Intel(R) Xeon(R) CPU E5606 @ 2.13GHz
  • 25GB 記憶體
  • Ubuntu 12.04.2 LTS
  • 帶有兩個 2.728TB 硬碟的硬體 RAID 1(LSI Logic / Symbios Logic MegaRAID SAS SMC2108)

正如您在監控螢幕主機上看到的:

http://clip2net.com/s/57YRKP

在 tar 的幾乎所有時間裡,磁碟 I/O 達到 >90%,並使所有其他應用程序(mysql、apache)變慢很多。

2個問題:

  • 備份時磁碟 I/O 這麼高是否正常?
  • 有沒有辦法限制磁碟 I/O 以便其他應用程序可以繼續正常工作?

謝謝!

除了相當通用的方法之外,ionice還有一個很好的設備映射器目標(ioband),它允許精確控制(DM)塊設備的頻寬。不幸的是,它不是標準核心的一部分。

此外,您可能可以通過以下方式加速 tar

  1. 將文件名讀入磁碟記憶體:find /source/path -printf ""
  2. 將 inode 讀入磁碟記憶體:find /source/path -perm 777 -printf ""
  3. 通過例如使用帶有 mbuffer 或緩衝區的管道(至少 100 MiB 的 RAM)使 tar 從磁碟讀取和寫入更大的塊:tar ... | mbuffer -m 256M -P 100 -p 1 ...

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