система MemoryMax в процентах не работает?

Эти ограничения исходят не от Debian или Linux, а от аппаратного обеспечения. Различные архитектуры (процессора и шины памяти )имеют разные ограничения.

В современных процессорах x86 -64 PC MMU позволяет 48 бит виртуального адресного пространства . Это означает, что адресное пространство ограничено 256 ТБ. С одним битом, чтобы отличить адреса ядра от адресов пользовательской среды, остается 128 ТБ для адресного пространства процесса.

На текущих процессорах x86 -64 физические адреса могут использовать до 48 бит , что означает, что вы можете иметь до 256 ТБ. Предел постепенно увеличивался с тех пор, как была введена архитектура amd64 (с 40 бит, если я правильно помню ). Каждый бит адресного пространства требует некоторой логики подключения и декодирования (, что делает процессор дороже, медленнее и горячее ), поэтому у производителей оборудования есть стимул уменьшать размер.

Linux позволяет использовать физические адреса только до 2^46 (, поэтому вы можете иметь только до 64 ТБ ), поскольку это позволяет полностью отображать физическую память в пространстве ядра. Помните, что существует 48 бит адресного пространства; один бит для ядра/пользователя оставляет 47 бит для адресного пространства ядра. Половина из них обращается непосредственно к физической памяти, а другая половина позволяет ядру отображать все, что ему нужно. (Linux может работать с физической памятью, которая не может быть отображена полностью одновременно, но это создает дополнительную сложность, поэтому это делается только на тех платформах, где это требуется, таких как x86 -32 с PAE. и armv7 с LPAE.)

Полезно, чтобы виртуальная память была больше физической по нескольким причинам:

  • Это позволяет ядру отображать всю физическую память, оставляя место для дополнительных виртуальных отображений.
  • В дополнение к отображениям физической памяти существуют отображения подкачки, файлов и драйверов устройств.
  • Полезно иметь местами неотображенную память :защитные страницы для обнаружения переполнения буфера , большие неотображенные зоны из-за ASLR и т. д.

0
28.08.2019, 22:31
1 ответ

Да, включения этой опции было достаточно, чтобы MemoryMax работал должным образом.

0
28.01.2020, 03:20

Теги

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