LINUX.ORG.RU

максимальный объем выделенной памяти


0

0

А сколько максимально можно выделить памяти через malloc, если установлено 4гига оперативной памяти и размер свопа можем считать неограниченым(настолько большим, что хватит всем процессам)? 3 гига? 4?

★★

а попробывать слабо?

anonymous
()

один раз проверял. выделил практически объем оперативки-занятую ядром. на размер свопа malloc наплевал.

Vinill ★★
()
Ответ на: комментарий от Vinill

уточнение - озу было 128 метров. скорее всего, есть гдето ограничение на максимально возможный кусок памяти..

Vinill ★★
()

а почитать документацию к ядру никак?

обычно пользовательской задаче 3 гигабайта виртуального пространства.

anonymous
()
Ответ на: комментарий от anonymous

>а почитать документацию к ядру никак? Да как-то не подумал...

А почему только 3? ведь насколько я знаю, в 32-битном режиме можно адресовать до 4 гигабайт адресного пространства. куда еще 1 гб пропадает?

Vinick ★★
() автор топика

>А сколько максимально можно выделить памяти через malloc, если установлено 4гига оперативной памяти и размер свопа можем считать неограниченым(настолько большим, что хватит всем процессам)? 3 гига?

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

cvv ★★★★★
()
Ответ на: комментарий от cvv

>чуть меньше двух гиг. гиг резервируется для ядра и гиг для кода

Опытным путем была достигнута отметка в 2,8 гига. т.к что видимо максимум = 3 гига.

А неужели нельзя увеличить этот предел? хотя бы до 4 гиг.

Vinick ★★
() автор топика
Ответ на: комментарий от Vinick

>>чуть меньше двух гиг. гиг резервируется для ядра и гиг для кода

>Опытным путем была достигнута отметка в 2,8 гига. т.к что видимо максимум = 3 гига.

странно, по видимому мы говорим о разных ядрах

>А неужели нельзя увеличить этот предел? хотя бы до 4 гиг.

на i386 никак.

ЗЫ:может на amd64 или alpha и возможно

cvv ★★★★★
()
Ответ на: комментарий от Vinick

> Опытным путем была достигнута отметка в 2,8 гига.
> т.к что видимо максимум = 3 гига.

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

ядро забирает 1Гб себе, вы можете увеличить PAGE_OFFSET, но
делать этого не стоит - вы уменьшите количество direct
mapped memory.

из оставшихся 3Гб теряются еще 128Мб адресного прстранства,
т.к. приложение линкуется таким образом, чтобы загружаться
по виртуальному адресу 0x8000000, это можно изменить. ну и
еще немного теряется "по мелочи"

> А неужели нельзя увеличить этот предел? хотя бы до 4 гиг.

есть patch от Ingo Molnar, 4G/4G split. либо 64 битная
архитектура.

см также http://www.linux.org.ru//view-message.jsp?msgid=831740

idle ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.