Запуск 64-битного Linux с 750 МБ оперативной памяти: стоит?


13

У меня есть VPS-сервер Debian, и провайдер установил 64-битный Debian 5. Должен ли я запросить 32-битную установку, учитывая, что у меня всего 750 МБ ОЗУ и я слышал, что переменные занимают больше ОЗУ в 64-битных системах?


2
Зависит от того, что вы собираетесь запустить, на самом деле. Попробуйте некоторые из ваших загрузок и убедитесь, что вашей оперативной памяти будет достаточно.
Ренан

Плохо работаю: Postgres, Apache и Tomcat.
Jhonnytunes

1
Примечание: если вы решите обновить до большего объема ОЗУ позже, 32-битная версия может стать проблематичной (есть PAE для прыжков с шестом сверх предела 4 ГБ, но у него есть свои собственные издержки).
Писквор покинул здание

На обоих VPS-хостах я использовал установленные ядра для своих гипервизоров, поэтому скорее всего вам придется придерживаться их версий ОС - если они не предлагают 32-битную версию, я сомневаюсь, что вы можете просто установить свою собственную.
Руп

Ответы:


16

Краткий ответ :

Переменные не занимают вдвое больше места в 64-битном и 32-битном программном обеспечении. Потенциальный выигрыш памяти при переходе на 32-битную ОС не будет стоить усилий.

Длинный ответ :

Числа могут быть больше, да, но это не значит, что они будут. Это также относится к числам, а не к строкам, и строки (как правило) занимают больше всего памяти в приложении.

Кроме того, многие приложения явно указывают размер числа, с которым они хотят работать, так как в таких языках, как C, intможет быть любой размер, в том числе меньше 32-разрядного. И даже дальше, на моем 64-битном Linux-компьютере, в C int32-битный. Так что вам придется явно запросить, long longчтобы получить 64-битное число.

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

РЕДАКТИРОВАТЬ :
В ответ на утверждение Жиля о том, что 64-битный Firefox использует вдвое больше памяти, я пошел и провел сравнение между 32-битным и 64-битным Firefox в моей системе.
Я протестировал, запустив 5 вкладок, открытых по адресу http://acid3.acidtests.org/, и выполнил тест 3 раза (один раз в 32-битной, один раз в 64-битной, а затем повторил дважды). Я выбрал этот сайт, потому что он интенсивно использует JavaScript и использует статический контент (при каждом отображении страницы будут предоставляться одни и те же данные).

На финальном заезде:

  • 32-разрядный: 173 244 КБ rss / 918 348 КБ Virt

  • 64-разрядный: 184 588 КБ rss / 966 624 КБ вирт

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


1
Это сильно преувеличено. Некоторые программы занимают почти вдвое больше памяти в 64-битном режиме, это зависит от того, какими данными они манипулируют. Я заметил, что Firefox и Chrome занимают даже более чем вдвое больше памяти (я никогда не исследовал почему: размер кода?). Для Apache дополнительное потребление памяти, вероятно, будет небольшим (но я не измерял).
Жиль "ТАК - перестань быть злым"

@ Джайлс вряд ли. Я только что запустил 32-битный и 64-битный Firefox. 32-битный использует 133,340kb после запуска. 64-битный использует 133,412kb после запуска.
Патрик

Возможно, в последнее время ситуация улучшилась, я думаю, что в последний раз проверял с помощью Firefox 4. Я измерил, взяв бездействующую систему (на которой запускались почти только 64-битные программы, что должно отдавать предпочтение 64-битному исполняемому файлу, так как некоторые из его общих библиотек уже были загружены) и сравнивая количество свободной памяти после загрузки нескольких вкладок (некоторые JS, без Flash): я обнаружил, что (free_memory_with_ff_64 - free_memory_without_ff)> 2 * (free_memory_with_ff_32 - free_memory_without_ff).
Жиль "ТАК - перестань быть злым"

4
@ Жиль: Я думаю, что в тесте был какой-то недостаток. Даже если бы Firefox хранил каждый последний маленький бит данных как целое число (без строк, что не изменило бы размер), а каждое отдельное целое число изменилось с 32-разрядного на 64-разрядное, размер увеличился бы не более чем в два раза. Нет объяснения этому более чем вдвое.
Патрик

2
«Числа могут быть больше, да, но это не значит, что они будут». - но все указатели теперь будут определенно 64-битными, где они были 32.
Rup

5

Я предпочитаю 32-разрядные установки по сравнению с 64-разрядными для систем с объемом памяти менее 4 ГБ.

64-битная система использует больше памяти, из-за природы указателей она составляет от 10 до 50 мегабайт дополнительно для установки ванильного LAMP.

В системе с ограниченным ОЗУ, например, 256 мг, это может быть значительный кусок.

Технически, с PAE то же самое применимо до 64 гигабайт, однако адресное пространство для приложений все равно ограничено 4 гигабайтами в любом случае. Поэтому при производительности свыше 4 гигабайт рекомендуется использовать 64-битный прирост производительности, не в последнюю очередь связанный с издержками PAE.

В двух словах: <4gig = 32bit | > 4 гигабайт = 64 бит.


3

Если провайдер установил 64-битный Debian 5, я рекомендую вам остаться с этой версией.

Разница между 64-битной и 32-битной не только в диспетчере памяти.


2

За исключением нескольких ускоряющих число приложений, которые работают быстрее, единственным преимуществом 64-разрядной системы является то, что вы можете использовать более 4 ГБ памяти. Поскольку часть адресного пространства зарезервирована для ядра, процесс получает только около 2 ГБ или 3 ГБ адресного пространства (или больше или меньше, в зависимости от конфигурации ядра). В случае использования базы данных и веб-сервера вы не планируете много менять местами и не будете сильно сокращать число. Таким образом, имея только 750 МБ ОЗУ, вы не увидите никаких преимуществ от использования 64-разрядной системы.

Размер кода примерно одинаков между i386 (32-разрядным) и amd64 (64-разрядным) кодом. Память данных, используемая 64-битной программой, несколько больше; насколько больше зависит от приложения. Я ожидаю увидеть заметную, но не большую разницу для вашего варианта использования.

Учитывая, что использование 64-битной системы сопряжено с небольшими затратами и не приносит никакой пользы, я рекомендую использовать 32-битную систему, если ее не сложно получить.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.