У меня есть VPS-сервер Debian, и провайдер установил 64-битный Debian 5. Должен ли я запросить 32-битную установку, учитывая, что у меня всего 750 МБ ОЗУ и я слышал, что переменные занимают больше ОЗУ в 64-битных системах?
У меня есть VPS-сервер Debian, и провайдер установил 64-битный Debian 5. Должен ли я запросить 32-битную установку, учитывая, что у меня всего 750 МБ ОЗУ и я слышал, что переменные занимают больше ОЗУ в 64-битных системах?
Ответы:
Краткий ответ :
Переменные не занимают вдвое больше места в 64-битном и 32-битном программном обеспечении. Потенциальный выигрыш памяти при переходе на 32-битную ОС не будет стоить усилий.
Длинный ответ :
Числа могут быть больше, да, но это не значит, что они будут. Это также относится к числам, а не к строкам, и строки (как правило) занимают больше всего памяти в приложении.
Кроме того, многие приложения явно указывают размер числа, с которым они хотят работать, так как в таких языках, как C, int
может быть любой размер, в том числе меньше 32-разрядного. И даже дальше, на моем 64-битном Linux-компьютере, в C int
32-битный. Так что вам придется явно запросить, 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 КБ вирт
Да, я мог бы провести более обширное тестирование, но я думаю, что это достаточно хорошо демонстрирует, что разница в размерах между ними незначительна.
Я предпочитаю 32-разрядные установки по сравнению с 64-разрядными для систем с объемом памяти менее 4 ГБ.
64-битная система использует больше памяти, из-за природы указателей она составляет от 10 до 50 мегабайт дополнительно для установки ванильного LAMP.
В системе с ограниченным ОЗУ, например, 256 мг, это может быть значительный кусок.
Технически, с PAE то же самое применимо до 64 гигабайт, однако адресное пространство для приложений все равно ограничено 4 гигабайтами в любом случае. Поэтому при производительности свыше 4 гигабайт рекомендуется использовать 64-битный прирост производительности, не в последнюю очередь связанный с издержками PAE.
В двух словах: <4gig = 32bit | > 4 гигабайт = 64 бит.
Если провайдер установил 64-битный Debian 5, я рекомендую вам остаться с этой версией.
Разница между 64-битной и 32-битной не только в диспетчере памяти.
За исключением нескольких ускоряющих число приложений, которые работают быстрее, единственным преимуществом 64-разрядной системы является то, что вы можете использовать более 4 ГБ памяти. Поскольку часть адресного пространства зарезервирована для ядра, процесс получает только около 2 ГБ или 3 ГБ адресного пространства (или больше или меньше, в зависимости от конфигурации ядра). В случае использования базы данных и веб-сервера вы не планируете много менять местами и не будете сильно сокращать число. Таким образом, имея только 750 МБ ОЗУ, вы не увидите никаких преимуществ от использования 64-разрядной системы.
Размер кода примерно одинаков между i386 (32-разрядным) и amd64 (64-разрядным) кодом. Память данных, используемая 64-битной программой, несколько больше; насколько больше зависит от приложения. Я ожидаю увидеть заметную, но не большую разницу для вашего варианта использования.
Учитывая, что использование 64-битной системы сопряжено с небольшими затратами и не приносит никакой пользы, я рекомендую использовать 32-битную систему, если ее не сложно получить.