Назад | Перейти на главную страницу

Больше ОЗУ против большего количества серверов

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

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

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

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

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

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

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

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

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

Что вам нужно?

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

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

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

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

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

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

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

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

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

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

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

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

Оперативная память стоит дешево. Вы всегда должны повышать это в первую очередь до того момента, когда у вас будет наиболее экономичное количество (например, модули DIMM 4 ГБ слишком дороги, поэтому я бы не стал возиться с ними).

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

В принципе, сделать гугл.

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

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

Больше ОЗУ = больше виртуальных машин.

Так что я полагаю, что больше RAM = больше серверов !!