Назад | Перейти на главную страницу

Самый быстрый способ определить размер блочного устройства?

У меня есть удаленный скрипт, который проверяет некоторые параметры из томов lvm. Одна из вещей, которые мне нужно знать, - это размер. В настоящее время я использую это:

lvdisplay / dev / virtuals / имя_тома -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)

время blockdev --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 только один раз для всех интересующих вас томов. Поскольку некоторая информация хранится для каждой группы томов, таким образом будет меньше дублирования усилий при чтении.

есть также lvs но все они полагаются на одну и ту же кодовую базу, я думаю

/proc/partitions также перечисляет тома, управляемые LVM, и должно быть намного быстрее. Самым большим недостатком является то, что он перечисляет их как 'dm-0', 'dm-1' и т. д., вам понадобится отображение номера-имени откуда-то еще. (подсказка, проверьте младшее количество файлов устройства)