Linux

確定塊設備大小的最快方法?

  • May 24, 2018

我有一個遠端腳本,用於檢查 lvm 卷中的一些參數。我需要知道的一件事是尺寸。我目前正在使用這個:

lvdisplay /dev/virtuals/volume_name -C -o lv_size

但是最後一個命令可能需要大約一秒鐘才能在我的伺服器上執行,並且我有多個要檢查的捲。我也嘗試過使用 lvs 而不是 lvdisplay,但速度沒有太大改善。

time lvs -o lv_size /dev/virtuals/volume_name -C -o lv_size
real 0m0.809s
time lvdisplay /dev/virtuals/volume_name
real 0m0.982s

有人知道獲取該資訊的更快方法嗎,只是體積大小,我對職業不感興趣。

更新: 使用 blockdev 帶來了巨大的改進。我真的推薦使用它而不是 lvdisplay(記得使用 getsize64)

時間塊開發–getsize64 /dev/system/home

使用blockdev命令:

字節:

> time blockdev --getsize64 /dev/system/home
32212254720

real   0m0.004s
user   0m0.001s
sys    0m0.002s

部門:

> time blockdev --getsize /dev/system/home
62914560

real   0m0.006s
user   0m0.001s
sys    0m0.003s

這裡有一些你可以嘗試的事情。我不知道 lvm 內部結構,所以我不知道它們是否會有所作為。

  • 嘗試lvs代替lvdisplay. 也許它更快,因為它尋找的資訊更少。
  • 嘗試對您感興趣的所有捲執行一次lvdisplay或僅執行一次。由於每個卷組都儲存了一些資訊,因此這樣重複讀取工作的次數會更少。lvs

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