Меня недавно спросили: «Вы знаете, когда выбирать между увеличением ОЗУ или большим количеством серверов?» (в контексте масштабирования приложений интеллектуального анализа данных).
Я понятия не имел, так что как можно решить? У меня очень мало знаний об архитектуре и масштабировании (мое понимание компьютерной памяти и того, что делает сервер, ограничено основами высокого уровня), поэтому советы по изучению этих вещей в целом также приветствуются.
Ответы:
Ответ: как только вы дадите мне метрики для рассматриваемого сервера, я скажу вам, какой (или стоит ли вообще добавлять). Этот тип настройки не voodoo (если вы используете приложения без инструментов и серверные ОС без инструментов - тогда да, это voodoo), это наука. Измерьте приложение и сервер. В двух словах, используя метрики мониторинга, определите, где находится узкое место в производительности, и добавьте больше.
источник
Как правило, в улучшении производительности сервера / приложения есть немало недостатков (или, по крайней мере, проб и ошибок).
Общее правило для конкретного задаваемого вопроса - сначала увеличивать объем памяти до тех пор, пока она больше не сможет быть увеличена, ИЛИ до тех пор, пока увеличение объема памяти не улучшит производительность. Поскольку память относительно дешевая, может быть проще просто максимально использовать память. Кроме того, если приложение загружено на диск, обновление на высокоскоростные диски или высокопроизводительные контроллеры может иметь значение.
Тем не менее, очень общий характер вопроса заставляет меня думать, что не было других попыток улучшить производительность. Я согласен, что аппаратное обеспечение дешевое, поэтому даже создание большего количества серверов для решения проблемы достаточно просто. Но я бы также позаботился о том, чтобы были выполнены другие возможности, в частности настройка ОС и базы данных. Иногда небольшие изменения в базе данных, ОС или даже конфигурации приложения могут привести к значительному повышению производительности.
Поиск на этом сайте с вашей конкретной ОС, базой данных и приложением, и вы вполне можете получить золото.
источник
Как корпоративный архитектор я сталкивался с этой проблемой практически ежедневно. Вертикальное или горизонтальное масштабирование?
Каковы ваши потребности?
Вам нужно поддерживать больше пользователей? Вам нужно повысить скорость обслуживания? Вам нужны оба? Вам нужна высокая доступность 99,9999 или ваши пользователи могут сократить время простоя?
Для начала вам нужно получить показатели производительности в текущей системе. Количество активных пользователей, загрузка ОЗУ и ЦП, Disc I / O - узнайте, где ваши узкие места.
Возможные решения, основанные на проблемах: Начните с оптимизации текущих ресурсов. Если ваше приложение управляется базой данных, оптимизируйте базу данных с помощью кэшей запросов и потоков, индексов и т. Д. Если вы делите сервер с другими приложениями, изучите возможность перехода на выделенный сервер. (Посмотрите на виртуализацию для менее активных / критических приложений, чтобы освободить выделенные ресурсы).
современные машины работают на полную мощность, ОЗУ и ЦП сильно загружены, высокая скорость дискового ввода-вывода - рассчитайте стоимость добавления ОЗУ, можете ли вы перейти на более быстрый дисковый ввод-вывод (RAID, SATA вместо ATA)?
Если вам нужна высокая доступность, вам, вероятно, все равно нужно добавить оборудование и балансировку нагрузки.
Дешевле ли добавлять обновления оборудования или новые серверы? Что подходит для долгосрочных целей и роста?
Когда ваш ИТ-отдел лучше всего тратит деньги? Есть ли у вас средства сейчас или вы хотите перенести расходы в другой квартал / год? Если проблема в средствах, оптимизируйте сейчас или изучите возможность освобождения оборудования от других приложений, чтобы добавить решение для временной балансировки нагрузки.
Не бойтесь исследовать многочисленные решения. Поставщики, возможно, захотят, чтобы вы купили решение, ориентированное на нагрузку, ориентированное на хранилище SAN, где новый сервер с iSCSI RAID 10 на борту будет работать за 10 процентов стоимости.
Если ваш процессор все еще сильно загружен после оптимизации, вам нужно добавить / заменить оборудование. Если ваш дисковый ввод-вывод является узким местом, и вы не можете обновить технологию хранения, вам необходимо заменить аппаратное обеспечение или добавить сетевое хранилище / подключенное хранилище.
Захват метрик производительности. Оптимизация, улучшение и сбор метрик снова. Продолжайте документировать увеличение / уменьшение производительности, чтобы вы могли включить в отчет отчет о том, сколько вы потратили и какой прирост производительности. Это тот тип возможных историй успеха, которые превращают администраторов в архитекторов, архитекторов в менеджеров проектов и менеджеров высшего звена в высшее руководство, если все сделано правильно.
источник
Вы пейджинг? Собираетесь ли вы использовать оперативную память для кэширования диска? Вы связаны процессором со свободной оперативной памятью?
Если вы осуществляете пейджинг и / или можете использовать оперативную память для кэширования, тогда получите больше оперативной памяти. Если вы не сталкиваетесь с давлением ОЗУ, то это нечто другое.
источник
ОЗУ дешево. Вы должны всегда поднимать это сначала до точки, где у вас есть самое экономичное количество там (например, 4-гигабайтные модули DIMM непомерно дороги, поэтому я бы не стал их беспокоить).
Затем исследуйте масштабирование в сторону (больше серверов). Рассматривайте дешевое потребительское оборудование по сравнению с дорогими серверными частями, но ожидайте отказов и включите оценки отработки отказа в общую вычислительную мощность.
В основном, сделайте Google .
источник
Какие операционные системы вы используете, сколько оперативной памяти она поддерживает и сколько оперативной памяти у вас есть, также вопросы, чтобы спросить. Если вы находитесь на пределе 32-битной ОС, покупка большего количества ОЗУ не принесет вам пользы. Если вы используете Windows, некоторые SKU ограничены определенным объемом оперативной памяти, который не совсем связан с 32-разрядным ограничением.
источник
Некоторые люди думают, что добавление ОЗУ - это волшебное решение. Помогает только если ОЗУ является узким местом.
источник
Больше оперативной памяти = больше виртуальных машин.
Итак, я полагаю, больше ОЗУ = больше серверов!
источник