LINUX.ORG.RU

Используемая память в Linux 32bit и Linux 64bit


0

1

Заметил одну странность. На компе 32гб памяти. Поставил на него 32битный дебиан. По понятным причинам памяти он увидел около 4гб. С помощью top я замерил объям занятой памяти в чистой базовой инсталляции - примерно 30мб.

Далее сношу 32битный дебиан и ставлю 64битный. Отличий в конфигурации нет, всё та-же базовая инсталляция. После установки top показывает что доступно все 32гб памяти. Однако занято уже не 30 а около 140 мегабайт. При этом 32битный udevd хавал 3мб vsz а 64битный аш 20.

Но после первого и второго варианта инсталляции я не устанавливал никакого дополнительного софта да и вообще ничего не менял.

В чём отличия? Почему 64битный линукс жрёт в разы больше памяти чем 32битный? Единственное объяснение которое приходит в голову - процессы видят что памяти чуть больше чем дохрена и не стесняются требовать у системы больший объём.

vsz

res

Почему 64битный линукс жрёт в разы больше памяти чем 32битный?

Это не так.

Единственное объяснение которое приходит в голову - процессы видят что памяти чуть больше чем дохрена и не стесняются требовать у системы больший объём.

Не совсем так. Ядро резервирует больше памяти. Для процессов в пользовательском пространстве разница обычно объясняется принципиальными особенностями архитектуры amd64 (длиной указателя, например).

Gotf ★★★
()

Почему 64битный линукс жрёт в разы больше памяти чем 32битный?

Обычно 64-разрядный занимает памяти лишь немногим больше, на несколько %, а почему у тебя в разы - ХЗ.

mbivanyuk ★★★★★
()

vsz

v - virtual

жрёт в разы

Потому, что ядро и программы видят больше памяти и стремятся её использовать. Многие размеры буферов и пр задаются в %. Проверяется загрузкой с параметром ядра mem=64m.

anonymous
()

Проведи ещё один эксперимент. Выдерни часть памяти, оставив 4ГБ, и поставь 64-битный Дебиан.

greenman ★★★★★
()

1) VSZ — это не занятая память.
2) Free memory — wasted memory. Многие программы в линуксе действительно используют больше памяти при увеличении доступной памяти.

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

Выдерни часть памяти, оставив 4ГБ

Из 15-и слотов выдернуть, в 16-м оставить?
Там скорее всего 32+32 или 16+16+16+16.

Lavos ★★★★★
()

Но ведь 64 бита ставят для использования > 4gb озу. Стоит ли размениваться на какие-то десятки мегабайт при таких обьемах памяти?

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

Немного больше подробностей о моих экспериментах. Я поставил 64битный дебиан на виртуалку (virtualbox). На виртуалке было 1гб памяти. Далее сделал копию hdd и tar'ом запаковал всё содержимое корневой директории в архив. Этот архив залил в отформатированную файловую систему на мощном компе (с 32гб памяти). Т.е. что на компе, что на виртуалке файловая система была идентична.

А теперь самое интересное. Только что запустил виртуалку, на ней занято 49мб памяти. А на компе по прежнему 147.

В общем думаю моя догадка подтверждается экспериментально. Процессы берут больше памяти когда её много. Как сказал анонимус, в процентах.

Однако: udevd как на виртуалке, так и на компе занимают одинаково 20мб памяти.

Про PAE - спс что напомнил. Буду экспериментировать с 32битным линуксом.

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

Он вообще считает vsz, игнорируя что ему писали :3

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

Мамка наверное дофига стоит. Кинь сюда модель

YLoS ★★★
()

Заметил одну странность. На компе 32гб памяти. Поставил на него 32битный дебиан. По понятным причинам памяти он увидел около 4гб.

Поставь ядро с PAE.

rezedent12 ☆☆☆
()
Ответ на: комментарий от YLoS

А зачем тебе 32 гига? Да еще и в линуксе, ну ладно бы там на виндовые супер игры

На самом деле это не декстопный комп а сервак :) будет разбит на несколько виртуальных тачек посредством xen. С линуксом раньше работал мало, в основном юзаю фрибсд.

http://www.linuxatemyram.com

Ггг, сайт порадовал) но буферы+кэш хавают мало, особенно когда система пустая и только запустилась. Как советуют на сайте, сделал free -m. На серваке used-cache-buffers = 105, на виртуалке 25.

Он вообще считает vsz, игнорируя что ему писали :3

Не игнорирую, просто на самом деле в подсчёте памяти занятой одним процессом чёрт ногу сломит, например из-за шаред-либ которые юзаются одновременно несколькими процессами. Меня в основном интересуют суммарные показатели.

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

Поставил Debian32+PAE на сервер. Занято 58мб памяти в базовой инсталляции. В общем решил, что пока есть возможность юзать 32битную ось - её нужно юзать.

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

Теоретически, 64-битная система будет немного быстрее 32-битной там, где 64-битный софт оптимизирован.

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

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

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

Меня в основном интересуют суммарные показатели.

free -m — вторая строчка, первая цифра

redgremlin ★★★★★
()

На компе 32гб памяти.

Н-да.

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