Memory-Usage

dd 使用所有記憶體和交換

  • November 29, 2017

我有一個專用的 Centos 6.9 linux 伺服器,該公司因硬體故障而崩潰,並已使用 USB 盒上的舊硬碟恢復。我正在嘗試將 lvm 分區移動到新的內部硬碟上。我創建了一個新的捲組和相同大小的邏輯卷。kvm 虛擬機目前正在使用這些分區。我已經拍攝了lv的快照。然後我使用類似下面的東西來複製分區。

dd if=/dev/OldVolGroup/lv__snap of=/dev/NewVolGroup/lv bs=1M

這似乎適用於以下速度:

8192+0 records in
8192+0 records out
8589934592 bytes (8.6 GB) copied, 264.61 s, 32.5 MB/s

但是,ram 然後交換慢慢開始被吞沒。當我開始時,這個盒子有 24GB 的 RAM 和大約 4GB 的備用空間。它有一個 2GB lv 用於交換。

我能夠關閉一些 kvm 機器以釋放更多記憶體,大約 7-8GB,它只是在不使用所有資源的情況下完成了 8GB 的​​傳輸。

誰能告訴我為什麼它會佔用這麼多記憶體然後交換?這是正常的嗎?

這是因為 dd 在寫入之前先讀入記憶體。如果您top正在執行,您會看到它的記憶體在記憶體之前被用完。您真正能做的就是嘗試更大的塊大小。在正在執行的伺服器上做這件事不是一件好事,但顯然這是你正在使用的。

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