Каково самое быстрое Решение для виртуализации для Linux?

покажите последний раз измененный файл

Часто, я хочу посмотреть на новый файл. например, я мог бы быть в каталоге журналов и хотеть видеть, какой файл нов, потому что это - первое место, чтобы надеяться видеть, почему что-то не работает.

ls -lt | head a, но громоздкий для ввода, таким образом, вот альтернатива:

# show the most recently changed file
latest()
{
    if test $# -ne 0
    then
        /bin/ls -t -1 -d "$@" | head -n 1
    else
        /bin/ls -t -1 -d * | head -n 1
    fi
}

Это также берет подстановочный знак или список файлов, например.

$ latest mail* syslog*
syslog

который особенно удобен, если все Ваши файлы журнала имеют метку времени на свое имя. Можно найти последний журнал для той программы, не волнуя, в каком формате метка времени находится.

$ touch -d 'Feb 1' mylog.20110201
$ touch -d 'Feb 2' mylog.20110202
$ touch -d 'Feb 3' mylog.20110203
$ latest mylog*
mylog.20110203

И вот расширенная версия, которая поддерживает a -<number> опция распечатать <number> строки вместо одной.

# show the most recently changed file
latest()
{
    local count=1               # how many files to print
    local promptlines=5         # how many lines to leave for the prompt
                                # when printing a screenful with -s
    local usage="Usage: latest [-n <number>] [-s] [--] [pattern]"
    while test $# -gt 0
    do
        case $1 in
        # -- = stop processing options
        --)
            shift
            break
            ;;
        # -n <number> = <number> files
        -n)
            if test -n "$2"
            then
                count=$2
                shift 2
            else
                echo "$usage" 1>&2
                return 1
            fi
            ;;
        # -s = one screenful
        -s)
            count=$((LINES - promptlines))
            shift
            ;;
        # -<number> = <number> files
        -[0-9]*)
            count=${1#-}
            shift
            ;;
        # anything else starting with a minus is a usage error
        -*)
            echo "$usage" 1>&2
            return 1
            ;;
        *)
            break
            ;;
        esac
    done

    if test $# -ne 0
    then
        /bin/ls -t -1 -d "$@" | head -n $count
    else
        /bin/ls -t -1 -d * | head -n $count
    fi
}
6
28.05.2011, 14:27
4 ответа

Быстрое решение обычно является тем, которые представляют менее служебное по сравнению с невиртуализированной средой. Если бы можно справиться его "не ограничение" разнообразия ОС, которое было бы внедрением виртуализации уровня ОС. С Linux, который переводит в OpenVZ/Virtuozzo, контейнеры Linux (lxc) и VServer.

6
27.01.2020, 20:22
  • 1
    На основе какой информации Вы приходите к заключению, что OpenVZ/Virtuozzo и VServer являются самыми быстрыми в соответствии с Linux? –  Matt H 13.02.2012, 20:36
  • 2
    Никакая определенная информация, но здравый смысл. Для разъяснения я не пишу, что виртуализация уровня ОС является обязательно лучшим решением и не имеет никаких недостатков, но просто это может едва быть разбито, что касается чистой производительности. –  jlliagre 13.02.2012, 22:23

Самый быстрый, при каких условиях? С аппаратной виртуализацией скорость должна быть идентичной на всех платформах виртуализации.

Поэтому единственной вещью, что необходимо рассмотреть поиск, является аппаратная поддержка виртуализации в программном обеспечении.

Насколько я знаю, Virtualbox еще не поддерживает аппаратную виртуализацию IOMMU. KVM, VMware и Xen должны. Xen и VMware должны быть единственными, поддерживающими IOMMU на видеокартах (с отличающимися уровнями успеха).

9
27.01.2020, 20:22
  • 1
    конечно не идентична между всеми платформами виртуализации; гипервизор намного больше, чем обертка вокруг инструкций, уже предоставленных ЦП. Это должно эмулировать виртуальный (или паравиртуальный) аппаратные средства, справиться с выделениями памяти и подкачкой страниц, центральные процессоры расписания (к моему знанию, только реализации VMware ослабленное co-планирование) и т.д. Существует много сравнительных тестов там для большого количества различных рабочих нагрузок на большом количестве различных гипервизоров. –  jgoldschrafe 26.10.2011, 04:38
  • 2
    @jgoldschrafe Нет. Когда дело доходит до аппаратной виртуализации производительность должна быть идентична =, ревут порог погрешности измерения. И эмуляция аппаратных средств точно, что не сделает гипервизор, когда у Вас будет аппаратная виртуализация. –  Let_Me_Be 26.10.2011, 14:38
  • 3
    Если Вы говорите, что вещи как виртуальный e1000 сетевой адаптер VMware или Логика LSI, контроллер SCSI, которые представлены гостю, является не чем иным как контейнерами к расширениям ЦП, я должен подвергнуть сомнению, использовали ли Вы даже продукт виртуализации прежде. –  jgoldschrafe 26.10.2011, 23:01
  • 4
    @jgoldschrafe нет, я говорю об аппаратной виртуализации. При использовании para-virtualzation и виртуального аппаратного обеспечения затем да, имеет смысл сравнивать производительность (в моем поле, которое это не делает, так как производительность никогда не может соответствовать реальным аппаратным средствам). –  Let_Me_Be 27.10.2011, 11:17

Я все еще полагаю, что это - XEN. Я когда-то имел разговор с RH-предпродажным парнем и спросил, почему они выгнали XEN в пользу KVM. Он сказал, что KVM, по крайней мере, с такой скоростью, как XEN. Я попросил, чтобы он отправил мне доказательство - ничто не возвратилось...

Я также не соглашаюсь с уровнем ОС. Виртуализация основанная на гипервизоре без операционной системы имеет, по моему скромному мнению, меньше служебное, чем это. Таким образом, PV XEN DomU почти так же хорош как чистый металл.

0
27.01.2020, 20:22
  • 1
    или нет, гипервизоры являются дополнительным слоем между гостем ОС и аппаратными средствами. Для решений для виртуализации уровня ОС не нужен тот слой, также - намного меньше служебный (если таковые имеются). –  jlliagre 26.10.2011, 01:57
  • 2
    Различие в производительности между слоем ОС и полной аппаратной виртуализацией (с аппаратными таблицами теневых страниц) незначительно; большинство платформ виртуализации в эти дни будет иметь менее чем 5% хита производительности для большинства рабочих нагрузок. Виртуализация слоя ОС может возможно получить Вас лучшие отношения консолидации, но обычно за счет QoS и время работы. Существует много причин выбрать один по другому, но производительность не является главной среди них. –  jgoldschrafe 26.10.2011, 04:39
  • 3
    @jiliagre: С виртуализацией уровня ОС у Вас также есть дополнительный слой - может это быть chroot или некоторым другим методом "сокрытия". –  Nils 26.10.2011, 22:33
  • 4
    Извините за поздний ответ, но Вы ввели мой псевдоним с опечаткой. Не должно быть никакого дополнительного слоя с виртуализацией уровня ОС. Я соглашаюсь, что существует некоторый дополнительный код для выполнения для небольшого подмножества системных вызовов, но это должно все еще быть незначительно по сравнению с тем, чего гипервизоры должны достигнуть (т.е. контекст/переключатели режимов). Не то, чтобы последние не улучшаются, хотя... –  jlliagre 13.02.2012, 23:13
  • 5
    @jlliagre эксперта Linux, жаль об опечатке. Переключатель, по моему скромному мнению, выполняется центральными процессорами - таким образом, гипервизор имеет в значительной степени то же задание как с "легкой" виртуализацией: планирование процессов и потоков. RAM непосредственно отображается в XEN, также. –  Nils 17.02.2012, 00:08

Позвольте мне привести очень конкретный пример для основного вопроса: виртуализировать другую ОС поверх Linux, где работает решение по виртуализации.

Только представьте себе этот сценарий:

  • Мне нужно запустить (то, что я больше всего ненавижу )Гость Windows
  • Мне нужно его загрузить
  • Мне нужно ввести некоторые данные в гостевую систему
  • Мне нужно выполнить кое-какую задачу, которую нельзя выполнить вне Windows (одна маленькая причина, по которой я ненавижу Windows)
  • Мне нужно извлечь (сохранить вне этой Windows )проделанную работу
  • Мне нужно отключить этого гостя

При таком сценарии я думаю, какое решение по виртуализации позволит мне сделать все за меньшее время.

Предположим, что время, которое мне нужно сделать в гостевой системе, не учитывается, так как это ручная задача и т. д.; что отдыхает? Всего три вещи:

  1. Загрузите виртуализированную ОС
  2. Передача данных на хост/гость и обратно
  3. Завершение работы виртуальной ОС

Теперь предположим, что вы такой же параноик, как и я, и что Гость находится в «неизменяемом» состоянии, поэтому при каждой загрузке все, что вы сделали при предыдущей загрузке, теряется. Всегда загружайтесь одинаково, если Windows UpDates вошли, они ничего не делают (при загрузке состояния дисков возвращаются обратно в «неизменяемое» состояние )и т. д. Что остается? Только две вещи:

  • Время загрузки гостя
  • Время переключения с горячего на гостевой и наоборот

Итак, снова главный вопрос: какое решение для виртуализации сделает это быстрее?

Чтобы привести пример того, что я знаю и использовал (QEMU и VirtualBox):

  • QEMU в конфигурации, которая «эмулирует» все аппаратное обеспечение, процессор, материнскую плату и т. д., все «эмулируется», так что это не решение «виртуализации», но этот образец служит мне примером очень, очень медленный способ запуска гостя
  • VirtualBOX виртуализирует аппаратное обеспечение и работает намного быстрее, чем QEMU, потому что QEMU эмулирует все аппаратное обеспечение (только для использования сравнения типа черепахи с формулой 1)

Итак, еще раз, когда два решения виртуализации могут запускать один и тот же гостевой компьютер и позволяют вам выполнять одну и ту же задачу на гостевом компьютере... какое из них быстрее? или лучший вопрос, с каким из них мне нужно меньше времени для загрузки того же гостя и т. д.?

Для ясности, типичный пример для разработчика:

  • Необходимость протестировать исполняемый файл нового приложения на всех версиях Windows

Представьте себе версии Windows от Win95, 98, ME, 2000, XP, Vista, 7, 8, 8.1, 10 и все подверсии 10 (1507, 1511, 1604, 1608, 1709... и так далее, а также со всеми уровнями обновлений Windows и т. д. и для каждого на Home, Pro, Enterprise и т. д. ).

Это усложняет задачу тестирования нового EXE-файла в более чем нескольких десятках тысяч виртуальных гостевых версий Windows.

Представьте себе реальную задачу (тестирование нового EXE-файла )занимает чуть меньше минуты (просто запустите и протестируйте новые дополнительные функции EXE-файла ), но это должно быть выполнено в течение почти миллиона комбинаций версий Windows, обновлений и т. д.

Для каждой комбинации необходимо выполнить ЗАГРУЗКУ определенного уровня исправления версии Windows и т. д., эта ЗАГРУЗКА подразумевает время, которое может составлять от менее одной минуты до более десяти минут... да, я знаю миллион *1 минута = миллиону минут (около 694,4 дней )...это всего лишь простой пример, показывающий соотношение времени BOOT и времени TEST.

Теперь, если решение виртуализации заставляет этот GUEST загружаться в 99,8 % случаев, чем другое решение виртуализации (, на самом деле почти то же время ), что вы выигрываете 1,5 дня... и это всего лишь 0,2 %.... представьте, что это 5% (не представьте, вы выиграете больше месяца времени 34,27 дня ).

Итак, вопрос в том, какое решение виртуализации позволяет быстрее запускать гостевую систему? НЕТ, это следует понимать как то, с каким решением для виртуализации гость справится с задачей за меньшее время.

Просто пример, который я знаю:

  • Загрузка Windows 10 Home 64Bits версии 1809.17763.404 в гостевой системе через VirtualBox (конфигурация по умолчанию )занимает около восьми полных минут, прежде чем вы сможете запустить Блокнот и ввести его.
  • Загрузка той же версии Windows в гостевой системе через QEMU (в режиме виртуализации, а не в режиме эмуляции и с настройкой конфигурации )занимает всего три минуты.

Это увеличение на 37,5%, что следует учитывать. Вернемся к примеру тестирования EXE на миллионе виртуальных машин... что сэкономит вам 260 дней работы.

Я думаю, тот, кто спросит (, а также меня ), что нужно знать, будет быстрее. Поскольку некоторые из них являются «платными», а некоторые очень дорогими (>1000€ ), каждый человек в мире не может провести тесты, необходимые для сравнения их всех.

А теперь личное мнение... VirtualBOX - это черепаха... Та же самая Windows 10 (чистая установка с USB -ISO )на реальном оборудовании по сравнению с VirtualBOX загружает Windows 10 за несколько секунд по сравнению с три-четыре минуты... но опять же, это не сравнение реального оборудования с виртуализированным, это сравнение виртуализированного с «A» и виртуализированного vesus с «B».

Я много искал в Интернете и не нашел никакого сравнения времени загрузки гостевой ОС Windows по сравнению с решениями виртуализации.

Другое дело — запуск в виртуализированной среде базы данных и т. д. Поскольку у меня нет опыта в этом, я не могу об этом говорить.

О чем я могу говорить (, так как мне нужно тестировать новые EXE-файлы на всех возможных Winodws )о времени ЗАГРУЗКИ на VirtualBOX... это очень, очень медленно... но так как мне нужно передать гостю несколько USB (ключей )и карт PCIe, ключей параллельного порта ()и т. д. и в бесплатном -платном... я застрял на VirtualBOX.

Надеюсь, это сосредоточит внимание на реальном тексте вопроса... какое решение виртуализации позволяет гостю выполнять работу за меньшее время.

0
27.01.2020, 20:22

Теги

Похожие вопросы