ksh SET -Ошибка чтения массива

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

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

В одном случаеили другое, что для вас важно, так это то, что гипервизор наверняка не запрашивает всю оперативную память / не имеет ее для использования вашей виртуальной машиной.

Боюсь, вам действительно придется встретиться и/или поговорить с администраторами, ответственными за этот хост VMWare.

Дополнительные сведения см. в техническом журнале vmware -Избыточное выделение памяти на сервере ESX .

ESX allows users to power on virtual machines (VMs) with a total configured memory that exceeds the memory available on the physical machine. This is called memory overcommitment.

Overcommitment is the ability to allocate more virtual resources than available physical resources. ESX Server offers users the ability to overcommit memory and CPU resources on a physical machine.

Similar to traditional OSes, ESX allows VMs to power on with a total configured memory size that may exceed the memory available to ESX. For the purpose of discussion in this article, the memory installed in an ESX Server is called ESX memory. If VMs consume all the ESX memory, then ESX will reclaim memory from VMs.

Memory overcommitment does not necessarily lead to performance loss in a guest OS or its applications. Experimental results presented in this paper with two real-life workloads show gradual performance degradation when ESX is progressively overcommitted.

0
09.06.2021, 23:04
1 ответ

Проблемы:

  1. Сценарий неполный (Отсутствует готово, отсутствует фи и т. д. ).
  2. Переменные всегда должны заключаться в кавычки (, по умолчанию ).

Но ваша главная проблема заключается в выражении фигурной скобки {2,}, которое будет повторять строку до и заканчивать ее в 2и nothingпри расширении в set -A star $line.

$lineбез кавычек будет подвергаться нескольким расширениям, одно из которых — расширение скобок {,}.

Чтобы разделить строку, не раскрывая ее без кавычек, используя ~в качестве разделителя и поместив значения в массив, это может сработать:

while IFS= read -r onestar; do star+=("$onestar"); done <<<"${line//~/$'\n'}"

При условии, что lineодна строка (не содержит новых строк ), что должно быть, не так ли?

0
28.07.2021, 11:26

Теги

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