масштабирование
ERDDAP™Тяжелые нагрузки, сети, кластеры, федерации и облачные вычисления
ERDDAP:
ERDDAP™Это веб-приложение и веб-сервис, который объединяет научные данные из различных местных и удаленных источников и предлагает простой, последовательный способ загрузки подмножеств данных в общих форматах файлов и создания графиков и карт. На этой странице обсуждаются вопросы, связанные с тяжелымиERDDAP™Использование загружает и исследует возможности для борьбы с чрезвычайно тяжелыми нагрузками через сети, кластеры, федерации и облачные вычисления.
Оригинальный вариант был написан в июне 2009 года. Существенных изменений не произошло. Последний раз обновлялся 2019-04-15.
Дисклеймер
Содержание этой веб-страницы является личным мнением Боба Саймонса и не обязательно отражает какую-либо позицию правительства или правительства.National Oceanic and Atmospheric Administration. Расчеты упрощены, но я думаю, что выводы верны. Я использовал неверную логику или ошибся в расчетах? Если это так, то виноват только я. Пожалуйста, отправьте электронное письмо с исправлениемerd dot data at noaa dot gov.
Тяжелые грузы / ограничения
При интенсивном использовании, отдельноERDDAP™будет ограничен (от большинства до наименее вероятного) посредством:
Дистанционный источник Bandwidth
- Удаленная пропускная способность источника данных — даже при эффективном соединении (Например, черезOPeNDAP) Если удаленный источник данных не имеет очень высокой пропускной способности интернет-соединения,ERDDAPОтветы будут ограничены тем, насколько быстроERDDAP™Можно получить данные из источника данных. Решение состоит в том, чтобы скопировать набор данных наERDDAPЖесткий диск, возможно, сEDDGridКопияилиEDDTableCopy.
ERDDAPСервер Bandwidth
- Разве чтоERDDAPСервер имеет очень высокую пропускную способность интернет-соединения,ERDDAPОтветы будут ограничены тем, насколько быстроERDDAP™Как получить данные из источников и как быстроERDDAP™Они могут возвращать данные клиентам. Единственным решением является получение более быстрого интернет-соединения.
Память
- Если одновременно поступает много запросов,ERDDAP™Может иссякнуть память и временно отказаться от новых запросов. (ERDDAP™Есть несколько механизмов, чтобы избежать этого и минимизировать последствия, если это произойдет.) Чем больше памяти на сервере, тем лучше. На 32-битном сервере 4+ ГБ действительно хороши, 2 ГБ в порядке, меньше не рекомендуется. На 64-разрядном сервере вы можете почти полностью избежать проблемы, получив много памяти. Видишь?\-Xmx и -Xms настройкидляERDDAPТомкэт. АнERDDAP™Получение интенсивного использования на компьютере с 64-разрядным сервером с 8 ГБ памяти и -Xmx, установленным на 4000M, редко, если вообще когда-либо, ограничивается памятью.
Управлял Bandwidth
- Доступ к данным, хранящимся на жестком диске сервера, значительно быстрее, чем доступ к удаленным данным. Тем не менее, еслиERDDAP™Сервер имеет очень высокую пропускную способность интернет-соединения, возможно, что доступ к данным на жестком диске будет узким местом. Частичное решение — использовать быстрее. (Например, 10000 RPM) Магнитные жесткие диски или SSD диски (Если это имеет смысл с точки зрения затрат) . Другим решением является хранение различных наборов данных на разных дисках, так что совокупная пропускная способность жесткого диска намного выше.
Слишком много кэшированных файлов
- Слишком много файлов вкэшкаталог -ERDDAP™Кэширует все изображения, но только кэширует данные для определенных типов запросов данных. Возможно, что каталог кэша для набора данных временно имеет большое количество файлов. Это замедлит запросы, чтобы увидеть, находится ли файл в кэше. (Правда!) .<кэш Minutes> вНастройка.xmlПозволяет установить, как долго файл может находиться в кэше, прежде чем он будет удален. Установка меньшего числа минимизирует эту проблему.
процессор
- Только две вещи занимают много времени процессора:
- NetCDF4 иHDF5 теперь поддерживает внутреннее сжатие данных. Декомпрессия большого сжатогоNetCDF4/HDF5 файлов данных могут занять 10 и более секунд. (Это не ошибка реализации. Это природа сжатия.) Таким образом, несколько одновременных запросов к наборам данных с данными, хранящимися в сжатых файлах, могут создать серьезную нагрузку на любой сервер. Если это проблема, решение состоит в том, чтобы хранить популярные наборы данных в несжатых файлах или получить сервер с процессором с большим количеством ядер.
- Изготов ление графов (включая карты) : примерно 0,2 - 1 секунда на график. Так что если было много одновременных уникальных запросов на графы (WMSКлиенты часто делают 6 одновременных запросов!) Может быть ограничение CPU. Когда несколько пользователей работаютWMSКлиенты, это становится проблемой.
Несколько идентичныхERDDAPс балансировкой нагрузки?
Часто возникает вопрос: "Чтобы справиться с тяжелыми нагрузками, могу ли я установить несколько идентичныхERDDAPс балансировкой нагрузки? Это интересный вопрос, потому что он быстро доходит до сути.ERDDAPДизайн. Быстрый ответ — «нет». Я знаю, что это неутешительный ответ, но есть несколько прямых причин и несколько более крупных фундаментальных причин, по которым я разработал эту идею.ERDDAP™использовать другой подход (федерациейERDDAPs, описанные в основной части настоящего документа) Я считаю, что это лучшее решение.
Некоторые прямые причины, почему вы не можете / не должны настраивать несколько идентичныхERDDAPs являются:
- данностьERDDAP™считывает каждый файл данных, когда он впервые становится доступным, чтобы найти диапазоны данных в файле. Затем он хранит эту информацию в индексном файле. Когда пользователь запрашивает данные,ERDDAP™использует этот индекс, чтобы выяснить, какие файлы искать запрашиваемые данные. Если бы было несколько одинаковыхERDDAPs, каждый из них будет делать эту индексацию, что является потраченным впустую усилием. С федеративной системой, описанной ниже, индексация выполняется только один раз.ERDDAPС.
- Для некоторых типов запросов пользователей (Например, для.nc.png, .pdf файлы) ERDDAP™Вы должны сделать весь файл, прежде чем ответ будет отправлен. ТакERDDAP™Храните эти файлы в течение короткого времени. Если идентичный запрос (Как это часто бывает, особенно для изображений, где URL встроен в веб-страницу.) ,ERDDAP™Можно повторно использовать кэшированный файл. В системе множественных идентичныхERDDAPs, эти кэшированные файлы не являются общими, поэтому каждыйERDDAP™без необходимости и расточительного воссоздания.nc.png или .pdf файлы. С федеративной системой, описанной ниже, файлы создаются только один раз.ERDDAPs и повторно используется.
- ERDDAPСистема подписки не настроена для совместного использования несколькимиERDDAPС. Например, если балансировщик нагрузки отправляет пользователя наERDDAP™и пользователь подписывается на набор данных, затем другойERDDAPВы не будете знать об этой подписке. Позже, если балансировщик нагрузки отправляет пользователя на другойERDDAP™и просит список его подписок, другойERDDAP™Скажет, что их нет (заставить его / ее сделать дубликат подписки на другой EREDDAP) . С федеративной системой, описанной ниже, система подписки просто обрабатывается основным, общедоступным, составным.ERDDAP.
Для каждой из этих проблем я мог бы (с большим усилием) Инженерное решение (Для обмена информацией междуERDDAPs) Но я думаю, чтофедерацияERDDAPподход (описанных в основной части настоящего документа) Это гораздо лучшее общее решение, отчасти потому, что оно имеет дело с другими проблемами.ERDDAPПодход «s-with-a-load-balancer» даже не начинает рассматриваться, особенно децентрали зованный характер источников данных в мире.
Лучше всего принять тот простой факт, что я не проектировал.ERDDAP™развертывается как множественное идентичноеERDDAPs с балансировщиком нагрузки. Я сознательно разработалERDDAP™Хорошо работать в федерацииERDDAPs, которые, по моему мнению, имеют много преимуществ. В частности, федерацияERDDAPs идеально согласуется с децентрализованной распределенной системой центров обработки данных, которую мы имеем в реальном мире. (Подумайте о разных регионах IOOS, или о разных регионах CoastWatch, или о разных частях NCEI, или о 100 других центрах обработки данных в разных регионах.NOAANASA DAAC или 1000 центров обработки данных по всему миру) . Вместо того, чтобы говорить всем дата-центрам мира, что им нужно отказаться от своих усилий и поместить все свои данные в централизованное «озеро данных». (Даже если бы это было возможно, это ужасная идея по многим причинам - см. различные анализы, показывающие многочисленные преимуществадецентрализованные системы) ,ERDDAPДизайн работает с миром таким, какой он есть. Каждый центр обработки данных, который производит данные, может продолжать поддерживать, курировать и обслуживать свои данные. (Как они должны) И все же, сERDDAP™Данные также могут быть мгновенно доступны из централизованного источника.ERDDAPбез необходимости передачи данных централизованномуERDDAP™или хранение дублированных копий данных. Действительно, данный набор данных может быть одновременно доступен. из одногоERDDAP™в организации, которая производит и фактически хранит данные (Например, GoMOOS) , из одногоERDDAP™в родительской организации (Например, IOOS Central) , от все-NOAA ERDDAP™, Всеамериканское федеральное правительствоERDDAP™, от глобальногоERDDAP™ (ГУС) , и из специализированныхERDDAPs (Например,ERDDAP™Институт, посвященный исследованиям HAB) , по существу мгновенно и эффективно, поскольку только метаданные передаются междуERDDAPs, а не данные. В лучшем случае после первоначальногоERDDAP™В первоначальной организации все остальныеERDDAPможно быстро настроить (Несколько часов работы) с минимальными ресурсами (один сервер, который не нуждается в каких-либо RAID для хранения данных, поскольку он не хранит данные локально) Таким образом, при действительно минимальных затратах. Сравните это со стоимостью создания и обслуживания централизованного центра обработки данных с озером данных и потребностью в действительно массовом, действительно дорогостоящем подключении к Интернету, а также сопутствующей проблемой централизованного центра обработки данных. Для меня,ERDDAPДецентрализованный, федеративный подход намного выше.
В ситуациях, когда дата-центру требуется несколькоERDDAPдля удовлетворения высокого спроса,ERDDAPКонструкция полностью способна соответствовать или превышать производительность многоидентичной системы.ERDDAPs-with-a-load-balancer подход. У вас всегда есть возможность настроитьмногокомпонентныйERDDAPs (как обсуждалось ниже) Каждый из них получает свои данные от других.ERDDAPs, без балансировки нагрузки. В этом случае я рекомендую вам уделить внимание каждому из композитов.ERDDAPs другое имя/идентификацию и, если возможно, размещение их в разных частях мира; (Например, различные регионы AWS.) Например,ERD\US\East,ERDСША, Запад,ERD\IE,ERD\_FR,ERDIT, чтобы пользователи сознательно, неоднократно, работали с конкретнымиERDDAPС дополнительным преимуществом, что вы удалили риск из одной точки отказа.
Сети, кластеры и федерации
При очень интенсивном использовании один отдельныйERDDAP™Войдет в один или несколькоограниченияперечисленных выше, и даже предлагаемых решений будет недостаточно. Для таких ситуаций,ERDDAP™имеет функции, которые позволяют легко создавать масштабируемые сетки (Также называется кластерами или федерациями.) изERDDAPs, которые позволяют системе справляться с очень тяжелым использованием; (Например, для большого центра обработки данных) .
Я используюсетькак общий термин для обозначения типакомпьютерный кластергде все части могут или не могут быть физически расположены в одном объекте и могут или не могут управляться централизованно. Преимущество совместно расположенных, централизованно принадлежащих и управляемых сетей (кластеры) Они выигрывают от экономии на масштабе. (Особенно человеческий труд) Это упрощает работу частей системы вместе. Преимущество нерасположенных сетей, не централизованно принадлежащих и управляемых (федерации) Они распределяют рабочую нагрузку и стоимость человека и могут обеспечить дополнительную отказоустойчивост ь. Решение, которое я предлагаю ниже, хорошо подходит для всех топографий сетки, кластера и федерации.
Основная идея разработки масштабируемой системы состоит в том, чтобы определить потенциальные узкие места, а затем спроектировать систему так, чтобы части системы могли быть воспроизведены по мере необходимости, чтобы облегчить узкие места. В идеале каждая реплицированная часть линейно увеличивает емкость этой части системы. (Эффективность масштабирования) . Система не масштабируема, если нет масштабируемого решения для каждого узкого места.масштабируемостьотличается от эффективности (Как быстро можно выполнить задачу — эффективность деталей) . Масштабируемость позволяет системе расти и справляться с любым уровнем спроса. Эффективность (Скриншоты Scaling and Of The Parts) определяет, сколько серверов и т.д. потребуется для удовлетворения заданного уровня спроса. Эффективность очень важна, но всегда имеет свои пределы. Масштабируемость является единственным практическим решением для создания системы, которая может работать. очень интенсивное использование. В идеале система будет масштабируемой и эффективной.
Цели
Целями этого дизайна являются:
- Чтобы сделать масштабируемую архитектуру (который легко расширяется путем репликации любой части, которая становится перегруженной) . Создать эффективную систему, которая максимизирует доступность и пропускную способность данных с учетом имеющихся вычислительных ресурсов. (Стоимость почти всегда является проблемой.)
- Сбалансировать возможности частей системы так, чтобы одна часть системы не перегружала другую.
- Создать простую архитектуру, чтобы система была легко настроена и администрировалась.
- Чтобы создать архитектуру, которая хорошо работает со всеми топографиями сетки.
- Создать систему, которая будет грациозно и ограниченно терпеть неудачу, если какая-либо часть будет перегружена. (Время, необходимое для копирования больших наборов данных, всегда будет ограничивать способность системы справляться с внезапным увеличением спроса на конкретный набор данных.)
- (Если возможно) Создать архитектуру, которая не привязана к какой-либо конкретнойоблачный сервисУслуги или другие внешние услуги (Потому что они им не нужны) .
Рекомендации
Наши рекомендации являются
- По сути, я предлагаю создать композицию.ERDDAP™ ( D на диаграмме) которая является регулярнойERDDAP™Кроме того, он служит только для данных из других источников.ERDDAPС. Архитектура сетки призвана сместить как можно больше работы. (Использование CPU, использование памяти, использование полосы пропускания) Из композитаERDDAP™к другомуERDDAPС.
- ERDDAP™имеет два специальных типа данных,EDDGridИз ЭрддапаиEDDTable FromErddapкоторый ссылается на наборы данных на другихERDDAPС.
- Когда композитныйERDDAP™получает запрос на данные или изображения из этих на боров данных,ERDDAP™ перенаправлятьЗапрос данных к другомуERDDAP™Сервер. Результатом является:
- Это очень эффективно (CPU, память и пропускная способность) Потому что иначе
- КомпозитныйERDDAP™должен отправить запрос данных другомуERDDAP.
- ДругойERDDAP™должен получить данные, переформатировать их и передать данные в композитныйERDDAP.
- КомпозитныйERDDAP™должен получать данные (Использование дополнительной полосы пропускания) Переформатировать его (Использование дополнительного времени процессора и памяти) и передавать данные пользователю (Использование дополнительной полосы пропускания) . Перенаправляя запрос данных и позволяя другомуERDDAP™Чтобы отправить ответ непосредственно пользователю, композитныйERDDAP™По сути, не тратит время процессора, память или пропускную способность на запросы данных.
- Перенаправление является прозрачным для пользователя независимо от клиентского программного обеспечения. (браузер или любое другое программное обеспечение или инструмент командной строки) .
- Это очень эффективно (CPU, память и пропускная способность) Потому что иначе
Сетчатые части
А. : Для каждого удаленного источника данных с высокой пропускной способностьюOPeNDAPВы можете подключиться непосредственно к удаленному серверу. Если удаленный сервер являетсяERDDAP™использоватьEDDGridEDDTable FromErddap или EDDTable FromERDDAPОбслуживание данных в КомпозитеERDDAP. Если удаленный сервер имеет другой типDAPсервер, например, THREDDS,Hyraxили GrADS, использоватьEDDGridОт Депа.
B Для каждогоERDDAPисточник данных (источник данных, из которогоERDDAPМожет читать данные) Если у вас есть сервер с высокой пропускной способностью, установите другойERDDAP™в сети, которая отвечает за обслуживание данных из этого источника данных.
- Если несколько такихERDDAPs не получает много запросов на данные, вы можете объединить их в одинERDDAP.
- ЕслиERDDAP™Для получения данных из одного удаленного источника требуется слишком много запросов, есть соблазн добавить дополнительные.ERDDAPs для доступа к удаленному источнику данных. В особых случаях это может имет ь смысл, но более вероятно, что это перегрузит удаленный источник данных. (Что саморазрушительно) Предотвращение доступа других пользователей к удаленному источнику данных (Что не очень приятно) . В таком случае рассмотрите возможность создания другогоERDDAP™для обслуживания этого одного набора данных и копирования набора данных на этотERDDAPжесткий диск (смотреть C ) Возможно, сEDDGridКопияи/илиEDDTableCopy.
- B Серверы должны быть общедоступными.
C Для каждогоERDDAP-мобильный источник данных, имеющий сервер с низкой пропускной способностью (медленная работа по другим причинам) Подумайте о создании другогоERDDAP™и хранить копию набора данных об этомERDDAPЖесткие диски, возможно, сEDDGridКопияи/илиEDDTableCopy. Если несколько такихERDDAPs не получает много запросов на данные, вы можете объединить их в одинERDDAP. C Серверы должны быть общедоступными.
композитныйERDDAP
D : КомпозитныйERDDAP™является регулярнойERDDAP™Кроме того, он служит только для данных из других источников.ERDDAPС.
- Потому что композитныйERDDAP™имеет информацию в памяти обо всех наборах данных, может быстро реагировать на запросы о списках наборов данных; (Полный текстовый поиск, поиск по категориям, список всех наборов данных) , а также запросы на индивидуальную форму доступа к данным, сделать графическую форму илиWMSСтраница информации. Все это небольшие, динамически генерируемые HTML-страницы на основе информации, хранящейся в памяти. Поэтому ответы очень быстрые.
- Поскольку запросы на фактические данные быстро перенаправляются на другие.ERDDAPs, составнойERDDAP™Он может быстро реагировать на запросы на фактические данные без использования какого-либо времени процессора, памяти или пропускной способности.
- Перекладывая как можно больше работы (ЦП, память, пропускная способность) Из композитаERDDAP™к другомуERDDAPs, составнойERDDAP™Может показаться, что он обслуживает данные из всех наборов данных и все же не отстает от очень большого количества запросов данных от большого числа пользователей.
- Предварительные испытания показали, что составERDDAP™Он может отвечать на большинство запросов в ~ 1 мс процессорного времени или 1000 запросов в секунду. 8-ядерный процессор должен отвечать на 8000 запросов в секунду. Хотя можно представить всплески более высокой активности, которые вызовут замедление, это большая пропускная способность. Вполне вероятно, что пропускная способность центра обработки данных будет узким местом задолго до композита.ERDDAP™становится узким местом.
Современный max (время) ?
TheEDDGrid/TableFromErddap в составеERDDAP™только изменяет сохраненную информацию о каждом наборе исходных данных, когда набор исходных данных"перезагрузить"и некоторые изменения метаданных (Например, переменная времениactual\_range) , тем самым генерируя уведомление о подписке. Если исходный набор данных содержит данные, которые часто меняются (Новые данные каждую секунду) и использует"обновить"системы, чтобы замечать частые изменения базовых данных,EDDGrid/TableFromErddap не будет уведомлен об этих частых изменениях до следующей «перезагрузки» набора данных.EDDGridТаблица FromErddap не будет полностью обновлена. Вы можете минимизировать эту проблему, изменив исходный набор данных.<ПерезагрузкаEveryNMinutes> в меньшую величину (60? 15?) Чтобы было больше уведомлений о подписке, чтобы сообщитьEDDGrid/TableFromErddap обновляет свою информацию об исходном наборе данных.
Или, если ваша система управления данными знает, когда исходный набор данных имеет новые данные. (Например, через скрипт, который копирует файл данных на место) Если это не очень частое (каждые 5 минут или реже) Есть лучшее решение:
- Не используйте<ОбновлениеEveryNMillis> для обновления набора исходных данных.
- Установите исходный набор данных<ПерезагрузкаEveryNMinutes> в большее число (1440?) .
- Пусть сценарий свяжется с исходным набором данныхфлаг URLСразу после этого он копирует новый файл данных на место. Это приведет к тому, что исходный набор данных будет полностью обновлен и заставит его генерировать уведомление о подписке, которое будет отправлено на веб-сайт.EDDGrid/TableFromErddap набор данных. Это приведет кEDDGrid/TableFromErddap Dataset будет полностью обновлен (В течение 5 секунд будут добавлены новые данные) . И все это будет сделано эффективно (Без ненужных перезагрузок набора данных) .
МногокомпонентныйERDDAPs
- В крайних случаях или при отказоустойчивости вы можете установить более одного композитного устройства.ERDDAP. Вполне вероятно, что другие части системы (В частности, пропускная способность центра обработки данных) Это станет проблемой задолго до появления композитного материала.ERDDAP™становится узким местом. Таким образом, решение, вероятно, заключается в создании дополнительных, географически разнообразных центров обработки данных. (зеркала) Каждый из них с одним составнымERDDAP™и серверов сERDDAPs и (по крайней мере) зеркальные копии наборов данных, которые пользуются большим спросом. Такая установка также обеспечивает отказоустойчивость и резервное копирование данных (С помощью копирования) . В этом случае лучше всего, если композитныйERDDAPУ них разные URL.
Если вы действительно хотите все композитыERDDAPs, чтобы иметь тот же URL, используйте систему переднего конца, которая присваивает данному пользователю только один из составных элементов.ERDDAPs (на основе IP-адреса) , так что все запросы пользователя идут только на один из составныхERDDAPС. Есть две причины:
- При перезагрузке базового набора данных и изменении метаданных (Например, новый файл данных в сетчатом наборе данных вызывает временную переменнуюactual\_rangeменяться) Композитный составERDDAPs будет временно немного не синхронизирован, но сПоследующая согласованность. Обычно они будут синхронизироваться в течение 5 секунд, но иногда это будет дольше. Если пользователь создает автоматизированную систему, которая опирается наERDDAP™подпискаЭто приводит к тому, что краткосрочные проблемы синхронности становятся значительными.
- Композит 2+ERDDAPКаждый имеет свой собственный набор подписок. (из-за описанной выше проблемы синхронизации) .
Таким образом, данный пользоват ель должен быть направлен только на один из составных элементов.ERDDAPчтобы избежать этих проблем. Если один из составныхERDDAPs идет вниз, система переднего конца может перенаправитьERDDAPПользователи для другогоERDDAP™Вот так. Однако, если это проблема емкости, которая вызывает первый состав.ERDDAP™провалиться (Чрезмерный пользователь? аатака типа "отказ в обслуживании"?) Это делает очень вероятным, что перенаправляет своих пользователей на другие составные устройства.ERDDAPЭто приведет ккаскадный отказ. Таким образом, наиболее надежной установкой является композитнаяERDDAPС разными URL.
Или, возможно, лучше создать несколько композитов.ERDDAPs без балансировки нагрузки. В этом случае вы должны указать на то, что каждый изERDDAPs другое имя/идентификацию и, если возможно, размещение их в разных частях мира; (Например, различные регионы AWS.) Например,ERD\US\East,ERDСША, Запад,ERD\IE,ERD\_FR,ERDIT, чтобы пользователи осознанно, неоднократно работали с конкретнымиERDDAP.
- \[Для увлекательного дизайна высокопроизводительной системы, работающей на одном сервере, см.Подробное описание Mailinator.\]
Наборы данных в очень высоком спросе
В очень необычном случае один из А. , B или C ERDDAPs не может идти в ногу с запросами из-за ограничений пропускной способности или жесткого диска, имеет смысл копировать данные (снова) На другом сервере + Hard Drive+ERDDAPВозможно, сEDDGridКопияи/илиEDDTableCopy. Хотя может показаться идеальным иметь исходный набор данных, а скопированный набор данных отображается как один набор данных в составе.ERDDAP™Это сложно, потому что два набора данных будут в разных состояниях в разное время. (В частности, после того, как оригинал получает новые данные, но до того, как скопированный набор данных получает свою копию.) . Поэтому я рекомендую, чтобы наборам данных давали несколько разные названия. (Например, "... (Копия #1) "и"... (Копия #2) "или, возможно," (Зеркало # n ) "или" (Сервер # n ) ") и отображаются как отдельные наборы данных в составеERDDAP. Пользователи привыкли видеть спискизеркальные сайтына популярных сайтах загрузки файлов, поэтому это не должно удивлять или разочаровывать их. Из-за ограничений пропускной способности на данном сайте может иметь смысл разместить зеркало на другом сайте. Если зеркальная копия находится в другом центре обработки данных, доступ только к композитной копии этого центра обработки данныхERDDAP™Различные названия (Например, "зеркало #1) В этом нет необходимости.
Рейды против обычных жестких дисков
Если большой набор данных или группа наборов данных не используются в значительной степени, может иметь смысл хранить данные на RAID, поскольку он обеспечивает отказоустойчивость и вам не нужна вычислительная мощность или пропускная способность другого сервера. Но если набор данных широко используется, может иметь смысл копировать данные на другом сервере.ERDDAP™+ жесткий диск (аналогичныйЧто делает Google) Вместо того, чтобы использовать один сервер и RAID для хранения нескольких наборов данных, вы можете использовать оба сервера + жесткий диск +ERDDAPs в сетке до тех пор, пока один из них не выйдет из строя.
неудачи
Что произойдет, если...
- Существует множество запросов на один набор данных (Например, все учащиеся одновременно запрашивают аналогичные данные.) ? ТолькоERDDAP™Обслуживание этого набора данных будет перегружено и замедлять или отклонять запросы. КомпозитныйERDDAP™и другиеERDDAPЭто не повлияет. Поскольку ограничивающим фактором для данного набора данных в системе является жесткий диск с данными. (неERDDAP) Единственное решение (Немедленно) сделать копию набора данных на другом сервере+hardDrive+ERDDAP.
- Ан А. , B или C ERDDAP™провал (Например, отказ жесткого диска) ? Только набор данных (s) обслуживаемых этимERDDAP™затронуты. Если набор данных (s) Отражается на другом сервере +hardDrive +ERDDAPЭффект минимальный. Если проблема заключается в отказе жесткого диска на уровне 5 или 6 RAID, вы просто замените диск и попросите RAID восстановить данные на диске.
- КомпозитныйERDDAP™провал? Если вы хотите создать систему с оченьвысокая доступностьВы можете установитьмногокомпонентныйERDDAPs (Как обсуждалось выше) Используя что-то вродеNGINXилиТраефикДля балансировки нагрузки. Обратите внимание, что данный составERDDAP™Они могут обрабатывать большое количество запросов от большого количества пользователей. запросы на метаданные малы и обрабатываются информацией, которая находится в памяти; Запросы данных (который может быть большим) перенаправляется ребенкуERDDAPС.
Простой, масштабируемый
Эта система проста в настройке и администрировании и легко расширяется, когда любая ее часть становится перегруженной. Единственными реальными ограничениями для данного центра обработки данных являются пропускная способность центра обработки данных и стоимость системы.
Пропускная способность
Обратите внимание на примерную пропускную способность часто используемых компонентов системы:
компонент | Приблизительная пропускная способность (GBytes/s) |
---|---|
Память DDR | 2,5 |
Диск SSD | 1 1 |
Жесткий диск SATA | 0,3 |
Гигабитный Ethernet | 0,1 |
ОК-12 | 0,06 |
ОК-3 | 0,015 |
T1 | 0,0002 |
Один жесткий диск SATA (0,3 ГБ/с) На одном сервере с однимERDDAP™Может насытить Gigabit Ethernet LAN (0,1 ГБ/с) . Один Gigabit Ethernet LAN (0,1 ГБ/с) Вероятно, может насытить подключение к Интернету OC-12. (0,06 ГБ/с) . И по крайней мере один источник перечисляет линии OC-12 стоимостью около 100 000 долларов в месяц. (Да, эти расчеты основаны на том, чтобы довести систему до предела, что нехорошо, потому что приводит к очень вялым реакциям. Но эти расчеты полезны для планирования и балансировки частей системы.) Очевидно, что подходящее быстрое подключение к Интернету для вашего центра обработки данных является самой дорогой частью системы. Вы можете легко и относительно дешево построить сеть с десятком серверов, работающих на десятке.ERDDAPs, который способен быстро выкачивать много данных, но достаточно быстрое подключение к Интернету будет очень и очень дорогим. Частичные решения:
- Поощряйте клиентов запрашивать подмножества данных, если это все, что необходимо. Если клиенту нужны данные только для небольшого региона или с меньшим разрешением, то он должен запросить их. Поднастройка является центральным направлением протоколовERDDAP™Поддержка для запроса данных.
- Поощрять передачу сжатых данных.ERDDAP™ компресспередача данных, если она находит «принятое кодирование» вHTTP GETЗапросить заголовок. Все веб-браузеры используют «принять-кодирование» и автоматически декомпрессируют ответ. Другие клиенты (Например, компьютерные программы) должны использовать его явно.
- Сосредоточьте свои серверы на интернет-провайдере или другом сайте, который предлагает относительно менее дорогие расходы на пропускную способность.
- Рассредоточьте серверы вместе сERDDAPs различным учреждениям, с тем чтобы расходы распределялись. Вы можете связать свой композитERDDAP™к ихERDDAPС.
Обратите внимание, чтоОблачные вычисленияУслуги веб-хостинга предлагают всю необходимую вам пропускную способность Интернета, но не решают проблему с ценой.
Для получения общей информации о проектировании масштабируемых, высокопроизводительных, отказоустойчивых систем см. книгу Майкла Т. Нигарда.Освободить.