У меня есть производственный сервер с 16 ГБ ОЗУ, который поставляется с 32-битной установкой CentOS.
Веб-сайт, размещенный на этом сервере, ежедневно получает все большее количество трафика, что привело к некоторым проблемам с производительностью MySQL. Я побежал mysqltuner.pl
и получил следующие сообщения:
[!!] Switch to 64-bit OS - MySQL cannot currently use all of your RAM
*** MySQL's maximum memory usage is dangerously high ***
*** Add RAM before increasing MySQL buffer variables ***
Могу ли я выжить с 32-битной ОС или мне нужно установить 64-битную версию?
Вы можете прекрасно выжить с 32-битной установкой CentOS. Но, как говорится в предупреждении, использование 32-битной ОС означает, что MySQL не может фактически использовать всю (или даже большую часть) ОЗУ, установленную в системе.
Мне кажется, это пустая трата времени. Если оборудование поддерживает 64-битную версию, я бы обязательно заменил 32-битную ОС на 64-битную, да. Вы, вероятно, захотите сначала провести некоторое тестирование и / или использовать второй сервер, чтобы узнать, что сломается при переключении ОС, потому что что-то всегда происходит.
Строго говоря, вы не необходимость для установки 64-битной ОС, но вам обязательно стоит. И, вероятно, раньше, чем позже, прежде чем ограничения ОЗУ 32-битной ОС начнут вызывать у вас проблемы.
Максимальное виртуальное адресное пространство 32-битного двоичного файла составляет 2 ^ 32 (4 ГБ) - как только вы достигнете этого предела, вы никуда не денетесь.
Стоит ли переходить на 64-битную версию? Абсолютно.
Мало того, что вы больше не столкнетесь с барьером памяти, общий 64-разрядный набор инструкций обычно имеет лучшую производительность, чем общий 32-разрядный (из-за огромного возраста x86), и, таким образом, переход на x64 даст выигрыш с точки зрения как памяти и скорость вычислений.
Очевидно, что если вы сами скомпилировали двоичные файлы x86 с целью арки вашего точного процессора, вы вполне можете обнаружить, что производительность по сравнению с x64 не так уж и отличается, однако, поскольку вы используете предварительно упакованные двоичные файлы CentOS, очевидно, что это не кейс.
Хотя ответ был принят, здесь многое упущено из обсуждения.
Во-первых: Александру не упоминает, какие движки базы данных работают на этой машине, ни выделенный ли это сервер СУБД или он также выполняет другие вещи, ни какой размер данных, ни какую-либо статистику использования физического ввода-вывода / VFS.
Для выделенного сервера на основе MyISAM вы не получите особой выгоды от увеличения адресуемости памяти. VFS так же хорошо справляется с кэшированием ввода-вывода, как и MySQL. OTOH, если это был innodb - тогда, черт возьми, да: буферный пул innodb на выделенном блоке должен составлять около 80% физической памяти на выделенной машине.
Независимо от того, какая СУБД используется, переход на 64-разрядную версию дает значительное преимущество в производительности при выполнении операций сравнения в СУБД - насколько сильно зависит от того, выполняете ли вы много операций поиска на основе хешей или b-дерева.
Если тот же самый ящик используется для веб-обслуживания, тогда большая разница будет в том, если вы используете много SSL на коробке - SSL предназначен для вычисления больших чисел, поэтому даже без ускорения AES в последних чипах Intel есть улучшение. там тоже.