Браузер Chromium: превышен ulimit данных

Ответ найден без использования текстового редактора :несколько значений в одних и тех же столбцах будут разделены--

jq -rc '.RoleDetailList | map(select((.AssumeRolePolicyDocument.Statement | length > 0) and (.AssumeRolePolicyDocument.Statement[].Principal.Federated) or (.AttachedManagedPolicies | length >0) or (.RolePolicyList | length > 0)) )[]  | [.RoleName,([.RolePolicyList[].PolicyName,([.AttachedManagedPolicies[].PolicyName] | join("--"))] | join(" ")),(.AssumeRolePolicyDocument.Statement[] |.Principal.Federated)] | @csv' output.json
7
03.06.2020, 23:49
3 ответа
  1. Why does chromium have different limits than all other programs?

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

  1. Where do the "default" limits come from (where does chromium take the limit 4294967296 from?

4294967296 байт (4096 МБ или ограничение 4 ГБ )Хром имеет ограничение в 4 ГБ, это жестко закодировано, дополнительная информация об этом доступна здесь и здесь

  1. How can I change these default limits once and for all, globally, for all processes regardless whether they use pam or not?

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

Для хрома есть некоторые параметры команды , которые можно использовать для настройки/включения/отключения функций, вы можете попробовать использовать некоторые из них, чтобы настроить хром в соответствии с вашими потребностями, вот некоторые интересные переключатели:

Эти переключатели можно использовать с такой командной строкой/usr/bin/chromium --single-process

--single-process
--aggressive-tab-discard
--aggressive-cache-discard
--ui-compositor-memory-limit-when-visible-mb
--disk-cache-dir  # Use a specific disk cache location, rather than one derived from the UserDatadir.
--disk-cache-size  # Forces the maximum disk space to be used by the disk cache, in bytes.
--force-gpu-mem-available-mb  # Sets the total amount of memory that may be allocated for GPU resources
--gpu-program-cache-size-kb  # Sets the maximum size of the in-memory gpu program cache, in kb
--mem-pressure-system-reserved-kb  # Some platforms typically have very little 'free' memory, but plenty is available in buffers+cached. For such platforms, configure this amount as the portion of buffers+cached memory that should be treated as unavailable. If this switch is not used, a simple pressure heuristic based purely on free memory will be used.
--renderer-process-limit  # Overrides the default/calculated limit to the number of renderer processes. Very high values for this setting can lead to high memory/resource usage or instability.

Вы также можете запустить хром со скриптом, который обновит для него ulimit (обратите внимание, что значения ниже 4 ГБ могут привести к сбою браузера...)

ulimit -Sv 4352000000 #4.2GB
/usr/bin/chromium

# or 0.42GB, it works but the browser may crash
#ulimit -Sv 435200000 #0.42GB
#/usr/bin/chromium
11
28.04.2021, 23:26

Я столкнулся с той же проблемой в Chrome, обычно при потоковой передаче телеканалов. Ваше сообщение об ошибке содержит ответ для вас:

Добавьте ignore_rlimit_dataк записи GRUB _CMDLINE _LINUX _DEFAULT в /etc/default/grub. Обновите grub, затем перезагрузитесь.

0
28.04.2021, 23:26

В современной 64-битной системе нет разумной причины ограничивать пространство виртуальной машины.

Пространство виртуальной машины используется для всего отображаемого объема памяти, а не только для физической памяти. Наиболее распространенное использование чрезмерных объемов данных VM в современных вычислениях — это разреженные буферы, где файл или база данных, которые имеют только часть в физической памяти, полностью находятся в виртуальной памяти, с подпрограммой для прозрачной загрузки по мере необходимости..

Вы хотите ограничить использование памяти для ФИЗИЧЕСКИХ данных, и даже в этом случае вы должны использовать настройки в /sys и/или /proc/sys для этого, а не ulimit, так как это правильно сигнализирует программе о том, что ей не хватает памяти, а не просто виноват.

Честно говоря, ulimit — это старый грязный хак, который на самом деле не очень хорош ни для чего, кроме как для предотвращения атак типа «отказ в обслуживании» в многопользовательской системе.

3
28.04.2021, 23:26

Теги

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