Больше оперативной памяти и больше серверов


9

Меня недавно спросили: «Вы знаете, когда выбирать между увеличением ОЗУ или большим количеством серверов?» (в контексте масштабирования приложений интеллектуального анализа данных).

Я понятия не имел, так что как можно решить? У меня очень мало знаний об архитектуре и масштабировании (мое понимание компьютерной памяти и того, что делает сервер, ограничено основами высокого уровня), поэтому советы по изучению этих вещей в целом также приветствуются.


3
Могу ли я иметь оба, пожалуйста?
Дирк Эддельбюттель

1
Больше оперативной памяти в каждом случае, о котором я могу думать ... (за исключением того, что сервер
максимально загружен

3
Как и у большинства сисадминов. Наилучшим ответом, если это возможно, является сбор данных о разработчике или производственной системе, а затем принятие решения на основе собранных вами данных.
Зоредаче

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

Большая часть программного обеспечения для интеллектуального анализа данных рассчитана на один компьютер. следовательно больше оперативной памяти. Если вы используете Mahout или Parallel-R или что у вас есть, то больше серверов. Я бы арендовал серверы Amazon AWS для экспериментов, чтобы найти лучшую комбинацию серверов и оперативной памяти.
Нил Макгиган

Ответы:


8

"Знаете ли вы, когда нужно выбирать между большим количеством оперативной памяти или большим количеством серверов?" (в контексте масштабирования приложений интеллектуального анализа данных).

Ответ: как только вы дадите мне метрики для рассматриваемого сервера, я скажу вам, какой (или стоит ли вообще добавлять). Этот тип настройки не voodoo (если вы используете приложения без инструментов и серверные ОС без инструментов - тогда да, это voodoo), это наука. Измерьте приложение и сервер. В двух словах, используя метрики мониторинга, определите, где находится узкое место в производительности, и добавьте больше.


Нет, это все еще вуду, но ты ведьмак! Более конкретно ... как неофит использует этот ответ для решения своей проблемы? Какие основные метрики он должен посмотреть изучить, и как он узнает, какие числа значат? Получить мою точку зрения ...
Tomjedrz

Этот вид напоминает мне старую воздушную шутку. officediversions.com/discover/modules/wfsection/...
tomjedrz

Ответ о том, какие основные показатели зависят от системы. Вопрос настолько общий, что невозможно дать более конкретный ответ, кроме базовых (процессор, память, диск и т. Д. И мониторы приложений). Учитывая гипотетического неофита, они просто не могут получить ответ на эту проблему, потому что сначала вам нужно знать, как контролировать сервер (ы) в вопросе - и это был бы совершенно отдельный вопрос
Джим Б

5

Как правило, в улучшении производительности сервера / приложения есть немало недостатков (или, по крайней мере, проб и ошибок).

Общее правило для конкретного задаваемого вопроса - сначала увеличивать объем памяти до тех пор, пока она больше не сможет быть увеличена, ИЛИ до тех пор, пока увеличение объема памяти не улучшит производительность. Поскольку память относительно дешевая, может быть проще просто максимально использовать память. Кроме того, если приложение загружено на диск, обновление на высокоскоростные диски или высокопроизводительные контроллеры может иметь значение.

Тем не менее, очень общий характер вопроса заставляет меня думать, что не было других попыток улучшить производительность. Я согласен, что аппаратное обеспечение дешевое, поэтому даже создание большего количества серверов для решения проблемы достаточно просто. Но я бы также позаботился о том, чтобы были выполнены другие возможности, в частности настройка ОС и базы данных. Иногда небольшие изменения в базе данных, ОС или даже конфигурации приложения могут привести к значительному повышению производительности.

Поиск на этом сайте с вашей конкретной ОС, базой данных и приложением, и вы вполне можете получить золото.


5

Как корпоративный архитектор я сталкивался с этой проблемой практически ежедневно. Вертикальное или горизонтальное масштабирование?

Каковы ваши потребности?

Вам нужно поддерживать больше пользователей? Вам нужно повысить скорость обслуживания? Вам нужны оба? Вам нужна высокая доступность 99,9999 или ваши пользователи могут сократить время простоя?

Для начала вам нужно получить показатели производительности в текущей системе. Количество активных пользователей, загрузка ОЗУ и ЦП, Disc I / O - узнайте, где ваши узкие места.

Возможные решения, основанные на проблемах: Начните с оптимизации текущих ресурсов. Если ваше приложение управляется базой данных, оптимизируйте базу данных с помощью кэшей запросов и потоков, индексов и т. Д. Если вы делите сервер с другими приложениями, изучите возможность перехода на выделенный сервер. (Посмотрите на виртуализацию для менее активных / критических приложений, чтобы освободить выделенные ресурсы).

современные машины работают на полную мощность, ОЗУ и ЦП сильно загружены, высокая скорость дискового ввода-вывода - рассчитайте стоимость добавления ОЗУ, можете ли вы перейти на более быстрый дисковый ввод-вывод (RAID, SATA вместо ATA)?

Если вам нужна высокая доступность, вам, вероятно, все равно нужно добавить оборудование и балансировку нагрузки.

Дешевле ли добавлять обновления оборудования или новые серверы? Что подходит для долгосрочных целей и роста?

Когда ваш ИТ-отдел лучше всего тратит деньги? Есть ли у вас средства сейчас или вы хотите перенести расходы в другой квартал / год? Если проблема в средствах, оптимизируйте сейчас или изучите возможность освобождения оборудования от других приложений, чтобы добавить решение для временной балансировки нагрузки.

Не бойтесь исследовать многочисленные решения. Поставщики, возможно, захотят, чтобы вы купили решение, ориентированное на нагрузку, ориентированное на хранилище SAN, где новый сервер с iSCSI RAID 10 на борту будет работать за 10 процентов стоимости.

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

Захват метрик производительности. Оптимизация, улучшение и сбор метрик снова. Продолжайте документировать увеличение / уменьшение производительности, чтобы вы могли включить в отчет отчет о том, сколько вы потратили и какой прирост производительности. Это тот тип возможных историй успеха, которые превращают администраторов в архитекторов, архитекторов в менеджеров проектов и менеджеров высшего звена в высшее руководство, если все сделано правильно.


2

Вы пейджинг? Собираетесь ли вы использовать оперативную память для кэширования диска? Вы связаны процессором со свободной оперативной памятью?

Если вы осуществляете пейджинг и / или можете использовать оперативную память для кэширования, тогда получите больше оперативной памяти. Если вы не сталкиваетесь с давлением ОЗУ, то это нечто другое.


2

ОЗУ дешево. Вы должны всегда поднимать это сначала до точки, где у вас есть самое экономичное количество там (например, 4-гигабайтные модули DIMM непомерно дороги, поэтому я бы не стал их беспокоить).

Затем исследуйте масштабирование в сторону (больше серверов). Рассматривайте дешевое потребительское оборудование по сравнению с дорогими серверными частями, но ожидайте отказов и включите оценки отработки отказа в общую вычислительную мощность.

В основном, сделайте Google .


1

Какие операционные системы вы используете, сколько оперативной памяти она поддерживает и сколько оперативной памяти у вас есть, также вопросы, чтобы спросить. Если вы находитесь на пределе 32-битной ОС, покупка большего количества ОЗУ не принесет вам пользы. Если вы используете Windows, некоторые SKU ограничены определенным объемом оперативной памяти, который не совсем связан с 32-разрядным ограничением.


1

Некоторые люди думают, что добавление ОЗУ - это волшебное решение. Помогает только если ОЗУ является узким местом.


Это не «магия», но это относительно дешево и хорошая первая попытка в большинстве случаев.
Tomjedrz

1
@ tomjedrz: Хорошая первая попытка, за исключением случаев, когда это не так. Это действительно очень просто - делаем ли мы «системное администрирование как науку» и добавляем ОЗУ к машине после того, как мы выполнили тесты и мониторинг ресурсов, которые показывают, что это необходимо, или мы выполняем «системное администрирование как религиозный культ» и добавляем ОЗУ для машины, потому что религиозные свитки говорят нам, что это правильная молитва за сервер, который немного медленный? Лично я предпочитаю научный подход.
Роб Мойр

0

Больше оперативной памяти = больше виртуальных машин.

Итак, я полагаю, больше ОЗУ = больше серверов!


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