Linux
確定塊設備大小的最快方法?
我有一個遠端腳本,用於檢查 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