Система Linux на 32 бита или на 64 бита?

Что относительно того, чтобы иметь одно поле, которое не имеет ограничений IP или освобождает ограничения, где Вы можете SSH в и оттуда в другие серверы? Даже маленький компьютер (даже Мини-Mac) работал бы, и это поле может находиться в дата-центре только для этой цели. Компьютер, который не стоит дополнительной мощности и мог бы быть полезен для других вещей (таких как осуществление навигацию в Интернете, в то время как в дата-центре - если другие поля не имеют gui). Шансы этой потери работоспособности поля являются небольшими, потому что она не делает, что-либо еще (удостоверьтесь, что сон выключен :) и если она делает, это, вероятно, означает, что дата-центр имеет... хорошо, имел огонь.

3
задан 20 June 2009 в 00:22
9 ответов

Самые современные 32-разрядные центральные процессоры поддерживают PAE, который позволяет им обращаться больше чем к 4 ГБ физической памяти, хотя единственный процесс может только видеть 4 ГБ за один раз. Ядро возьмет часть этого адресного пространства. Это сообщение Stackoverflow обсуждает, как PAE работает.

Много операционных систем (включая Linux и MS Windows) предлагают API, который позволяет Вам управлять MMU, и страница накладывает в и из виртуального адресного пространства процесса. Это средство позволяет Вам использовать дополнительную память для дисковых буферов. Однако насколько я знаю, что единственная платформа DBMS с прямой поддержкой этого является SQL Server MS.

Дополнительная память улучшит Вашу производительность чтения базы данных (который, вероятно, улучшит Вашу полную пропускную способность), но производительность записи будет ограничена вводом-выводом. Если у Вас будет низкий уровень удачного обращения в кэш DB (скажите, что меньше чем 95%), то затем дополнительная память, вероятно, улучшит Вашу полную пропускную способность. Иначе Вы, возможно, должны посмотреть на свою дисковую подсистему (см. 1 ниже).

Принятие Вас нуждается или может извлечь выгоду из большей памяти, лучший подход должен переместиться в платформу на 64 бита. Современный сервер Xeon или Opteron позволит Вам установить до 32-144GB в зависимости от модели. Это, вероятно, будет Вашим наилучшим вариантом.

  1. SAN хороши для транзакционных приложений. Для крупномасштабного приложения у Вас должна быть запись - посредством кэширования на журналах DB, но Вы можете сходить с рук обратную запись, кэширующуюся на объемах данных. Это получит Вас хорошая производительность читателя журнала, поскольку случайные записи данных могут быть поглощены кэшем контроллера с аварийным батарейным питанием, и контроллер может оптимизировать записи на диск для улучшения пропускной способности.

    Однако это расположение имеет виды отказа, которые могут оставить объемы данных непоследовательными (поврежденный). Используя запись - через на объемах журнала смягчает это (поскольку журналы не уязвимы для этих видов отказа). Practicaly это ограничивает Вас моделью восстановления восстановления/отката вперед, таким образом, он будет только работать, если можно терпеть то, (чтобы говорить) 4-часовое окно восстановления.
6
ответ дан 3 December 2019 в 04:37
  • 1
    Спасибо за подробный ответ. Запишите, что производительность не важна здесь. Базы данных главным образом читаются - из, и самый большой размер базы данных составляет 3 ГБ и growning. Способность кэшировать его (полностью, если возможный) в RAM является одной из главных причин увеличить память потому что он значительно производительность эффектов. –  Milan Babuškov 16 June 2009 в 12:43
  • 2
    Милан, если Вы самый большой DB - 3 ГиБ и рост, Вы совершенно определенно, должен пойти для 64-разрядной ОС, таким образом, процесс DB может вырасти вне 3 ГиБ в памяти. –  wzzrd 16 June 2009 в 16:05
  • 3
    Я don' t думают that' s строго необходимый, но имеющий достаточно RAM для кэширования весь рабочий набор базы данных будет определенная победа. –  ConcernedOfTunbridgeWells 22 February 2010 в 17:05

Память для каждого процесса в 32-разрядных системах составляет 4 ГБ (который разделен на 3 ГБ для процесса и 1 ГБ для ядра, по умолчанию). Если Вы хотите, чтобы Ваша база данных смогла получить доступ к большей памяти / на процесс/, у Вас есть мало выбора, но устанавливать 64-разрядную операционную систему. Если предел 3 ГБ для каждого процесса не беспокоит Вас, Вы могли бы также остаться с текущей установкой. Существуют другие опции к 3GiB/1GiB подразделению, btw, но они не помогут Вам в Вашей определенной ситуации.

Дальнейшие пределы на использование памяти для каждого процесса существуют в форме того, что называют 'ЗОНОЙ, НОРМАЛЬНОЙ', который никогда не превышает немного ниже 1 ГиБ (896 МиБ, чтобы быть точным). При использовании памяти выше 1 ГиБ (ЗОНАЛЬНЫЙ HIGHMEM), ядро должно отобразить ту память в НОРМАЛЬНУЮ ЗОНУ, создав еще больше возможные узкие места. ЗОНАЛЬНЫЙ HIGHMEM не существует в 64-разрядной системе, в которой все - НОРМАЛЬНАЯ ЗОНА. Это может быть серьезным основанием пойти с 64-разрядным также.

Что касается 'наличия в производственной '-части: Я даже не знаю, какую базу данных Вы используете. Мои установки Oracle почти всегда работают 64-разрядный по точной причине, которую я имею вышеизложенный. Я не выполняю Slackware в производстве, хотя и не знают никого, кто делает.

Мои 0,02€: пойдите для 64-разрядного. Переустанавливание тривиально по сравнению с возможными преимуществами.

8
ответ дан 3 December 2019 в 04:37

Я нахожусь почти в том же сценарии как Вы (Там какая-либо причина использовать MySQL на 64 бита (и ОС) на маленьких базах данных?), и от того, что я мог узнать: MySQL на 32 битах не может использовать больше чем 2 ГБ RAM на экземпляр независимо от того, что Вы делаете со своим ядром.

Если Вы не выполняете MySQL, ситуация могла бы отличаться.

3
ответ дан 3 December 2019 в 04:37
  • 1
    В целом, если какой-либо процесс испытывает необходимость больше в этом 4 ГБ затем you' ll нужны 64 бита. –  Andrew Williams 15 June 2009 в 15:09
  • 2
    На самом деле при необходимости больше чем в 3 ГиБ в пространстве пользователя для программы Вам нужно 64-разрядный. Или перефразировать это: если у Вас нет неопровержимых доводов для пребывания с 32-разрядным в такой ситуации, Вы, вероятно, более обеспечены с 64-разрядной системой. Otoh, я могу думать о сценариях, где предел на 3 ГиБ является на самом деле благословением. –  wzzrd 15 June 2009 в 16:04

Я думаю, что было бы лучше задать вопрос, "Почему я останусь с 32-разрядным ядром?"

Я пошел все 64-разрядные на каждой части аппаратных средств, которые поддерживают ее, как только я мог и я не иметь никаких извинений. На работе мы выполняем серверы PostgreSQL на 64-разрядном CentOS 5 с 32 ГБ RAM, и это является довольно большим (За исключением определенных ограничений с самим PostgreSQL, но ничем, чтобы сделать с 32 или 64 битами.)

3
ответ дан 3 December 2019 в 04:37

Основная опасность работать на системе на 32 бита с большим количеством highmem (больше чем 8 ГБ) состоит в том, что ядро могло закончить тем, что должно было выделить больше данных, чем, что помещается в ZONE_NORMAL. Это означает, что машина может эффективно исчерпать память, даже если было все еще много свободной верхней памяти.

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

Третий выпуск - то, что в системе на 32 бита никакой процесс не сможет эффективно использовать больше чем 3 ГБ памяти. Это означает, что покупка больше чем 4 ГБ памяти только полезна, если ни для одного из процессов в Вашей системе не нужна вся память.

По этим причинам рекомендуется при покупке системы больше чем с 4 ГБ памяти рассмотреть получение ЦП на 64 бита и установку операционной системы на 64 бита. Разница в цене между системами на 32 и 64 бита является практически несуществующей, таким образом, нет никакой реальной потребности испытывать боли highmem больше...

Подробнее...

2
ответ дан 3 December 2019 в 04:37

Если Вы хотите увеличить свою память, у Вас нет выбора, но выполнять ядро на 64 бита. Можно сохранить пространство пользователя на 32 бита, если Вы хотите, но каждый процесс будет ограничен максимумом 2 ГБ (возможно, 3 ГБ). Вы не должны должны быть переустанавливать все, просто новое ядро.

0
ответ дан 3 December 2019 в 04:37
  • 1
    Почти каждый x86 ЦП произвел поддержки PAE, который допускает > 4G физической RAM с 32-разрядной ОС. –  James Cape 15 June 2009 в 15:03
  • 2
    но мы don' t знают, PAE-знает ли его DB уже –  Chopper3 15 June 2009 в 15:07
  • 3
    Да, можно использовать PAE, но поддержка больше чем 1 ГБ в 32 битах является взломом. Поддержка больше чем 4 ГБ является крупным взломом. Используя ядро на 64 бита с существующим пространством пользователя на 32 бита дает Вам диапазон адресов дополнительной памяти без разрушения переустановки. –  David Pashley 15 June 2009 в 15:22
  • 4
    @Chopper3: процессы пространства пользователя являются not' t " PAE-aware" или нет. 32-разрядные процессы могут получить доступ к 4 ГБ каждый (2/2 или 3/1); it' s ядро, которое может управлять больше чем 4 ГБ, если оно обрабатывает PAE или всего 4 ГБ всего если нет. –  Javier 15 June 2009 в 19:50

64-разрядный единственный путь. На 32-разрядном это - изобретательный взлом для получения до> 1 ГБ, и еще больший взлом для> 4 ГБ. [1] Вы говорите, что это - в большой степени загруженная система, итак, почему ненужные циклы в bodge для получения до памяти, когда это может быть отображено непосредственно?

Единственная причина необходимо использовать 32 бита, для поддержки поставщика. Поскольку Вы находитесь на Slackware, я сомневаюсь, что это было бы причиной.

[1] Посмотрите, например, "Предел Выделения памяти Linux на 32-разрядную Платформу", из Инструкции по установке UGS NX Nastran 5.0 и Руководства по работе, которое кратко упоминает барьер на 1 ГБ.

2
ответ дан 3 December 2019 в 04:37

64 бита + больше поршня при использовании innodb затем, устанавливают inndb_buffer_pool_size приблизительно на 70-75% общего системного поршня. Размеры кэша мелодии. Если Вы используете последние версии MySQL, устанавливает Ваш/tmp каталог для использования tmpfs (память), которая позволит MySQL составлять временные таблицы в памяти, а не на физическом диске. Удостоверьтесь, что MySQL затем настроен для использования/tmp для временных таблиц.

1
ответ дан 3 December 2019 в 04:37
  • 1
    I' m на самом деле с помощью Firebird, не MySQL, и я действительно выделяю 2.5 ГБ или RAM для пространства кэша/вида. –  Milan Babuškov 22 June 2009 в 20:34

Большинство людей отвечают на вопрос №1, но позвольте мне вмешаться в вопрос №2.

Если вы решите запустить 64-битную Slackware, у вас будет только один выбор. : Slackware64. Slamd64 был неофициальным портом Slackware, который больше не нужен теперь, когда у Slackware есть официальный 64-битный порт. Что касается версий, у вас есть выбор из 13.0, 13.1, 13.37 и текущих выпусков Slackware64. Также обратите внимание, что 14.0, скорее всего, выйдет в ближайшее время, так что вы можете дождаться этого.

13.37 и текущие выпуски Slackware64. Также обратите внимание, что 14.0, скорее всего, выйдет в ближайшее время, так что вы можете дождаться этого.

13.37 и текущие выпуски Slackware64. Также обратите внимание, что 14.0, скорее всего, выйдет в ближайшее время, так что вы можете дождаться этого.

0
ответ дан 3 December 2019 в 04:37

Теги

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