Самый быстрый способ определить размер блочного устройства?
У меня есть удаленный скрипт, который проверяет некоторые параметры из томов 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)
time blockdev --getsize64 / dev / system / home
4 ответа
Использовать 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
только один раз для всех томов, которые вас интересуют. Поскольку некоторая информация хранится в каждой группе томов, таким образом будет меньше дублирования усилий при чтении.
/proc/partitions
также перечисляет управляемые LVM тома и должен быть намного быстрее. самый большой недостаток в том, что он перечисляет их как 'dm-0', 'dm-1' и т. д. Вам понадобится сопоставление имени и номера откуда-то еще. (подсказка, проверьте второстепенное количество файлов устройств)
Есть также lvs
но они все полагаются на одну и ту же кодовую базу, я думаю,