Systemd Journald использует слишком много памяти и не уважает SystemMaxUse и RuntimeMaxUse?

remote_code=$(cat << 'EOF'
echo Hello
for i in "${!target_array[@]}"; do
  echo "$i -> ${target_array[i]}"
done
EOF
)

ssh server bash << EOF
$(declare -p target_array)
$remote_code
EOF

Удаленный shell увидит на stdin что-то вроде:

declare -a target_array='([0]="item1 -p12345 -r" [1]="item2 -p65677 -e")'
echo Hello
for i in "${!target_array[@]}"; do
  echo "$i -> ${target_array[i]}"
done

Чтобы не засорять stdin удаленного shell, и если ваш ssh и удаленный sshd позволяют передавать LC_* переменные окружения, вы также можете сделать:

LC_CODE="$(declare -p target_array)
$remote_code" ssh server 'bash -c '\''eval "$LC_CODE"'\'

Если вы знаете, что login shell удаленного пользователя - bash, вы можете просто сделать:

ssh server "$(declare -p target_array)
$remote_code"
3
25.01.2019, 01:19
1 ответ

И SystemMaxUse, и RuntimeMaxUseконтролируют использование дискового пространства, а не памяти. RuntimeMaxUseдействительно применяется к журналам в энергозависимой файловой системе (/run), но это не фиксируется procstat.memory_rss. Кроме того, ни один из этих вариантов не ограничивает активные файлы журналов только архивными.

Если journald действительно использует ГБ, я бы серьезно посмотрел, что создает все эти журналы.

1
27.01.2020, 21:29

Теги

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