Что делает “<<(…)” среднее перенаправление?

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

Но это не похоже на это. Ядро уже должно иметь отображение (или несколько слоев отображения на самом деле), который соединяет высокоуровневые операции как "запись это в файл" к драйверам устройств, которые в свою очередь соединяются с фактическими блоками на диске.

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

Существуют случаи, где LVM может вызвать проблемы производительности. Вы хотите удостовериться, что блоки LVM выровненные правильно базовой системы, которая должна произойти автоматически с современными дистрибутивами. И удостоверьтесь, что Вы не используете старые ядра, подвергающиеся ошибкам как этот. О, и использование снимки LVM ухудшает производительность (и все больше так с каждым активным снимком). Но главным образом, влияние должно быть очень маленьким.

Что касается последнего: как можно протестировать? Инструмент сравнительного тестирования стандартного диска является bonnie ++. Сделайте раздел с LVM, протестируйте его, вытрите, это и (в том же месте, для хранения других факторов идентичными) создает простую файловую систему и сравнительный тест снова. Они должны быть близко к идентичному.

32
14.09.2012, 00:53
2 ответа

Нет, < < и << не то же самое.

Первое состоит из общего < символ перенаправления, объединенный с первым символом <(command) синтаксис. Это - a ksh создайте (также найденный в bash и zsh) известный как замена процесса, которая берет вывод command и обеспечивает его в файле, имя которого относится к другому концу канала command пишет в.

В другом слове можно думать < <(command) как < file, где файл содержит вывод command.

40
27.01.2020, 19:37
  • 1
    , который я узнал об этой команде несколько дней назад, это - очень полезная команда. Вещи, которые можно сделать с этим, только ограничены воображением: например, эта команда дает Вам список только скрытых файлов: diff <(ls) <(ls -a) –  Khaja Minhajuddin 18.10.2011, 06:06
  • 2
    , Этот синтаксис мог бы действительно быть довольно полезным, но в конкретном случае Stonerain, это, кажется, не обеспечивает добавленной стоимости по сравнению с простым каналом. –  jlliagre 27.11.2011, 11:57
  • 3
    В вышеупомянутом синтаксисе это не помогает. Но если Вы изменяете его немного, это намного лучше: bash <(curl ...) вместо bash < <(curl ...) не крадет STDIN, таким образом, Вы свободны ответить на подсказки и обеспечить вход в сценарии. –  tylerl 21.12.2011, 21:23
  • 4
    Используя <(), кажется, большая альтернатива для отправки нескольких $variables к командам непосредственно, вместо того, чтобы иметь необходимость напрасно записать $variables в файлы сначала. разность <(повторяют "$text1") <(повторяют "$text2") stackoverflow.com/questions/13437104 / Очень подлый –  Sepero 06.12.2012, 18:52

Это - замысловатый способ сделать более простое:

curl -s https://raw.github.com/... | bash
18
27.01.2020, 19:37

Теги

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