Требования к памяти при размещении R в облаке

Какой минимальный размер сервера нам нужен для запуска opencpu, если мы ожидаем 100 000 обращений в месяц?

Я думаю, что opencpu — захватывающий проект, но нужно знать об использовании памяти при развертывании opencpu, поскольку служба облачного хостинга, такая как стоечное пространство, взимает около 40 долларов в месяц за 1 ГБ ОЗУ.

Я знаю, что если я загружаю R без каких-либо действий или без загрузки каких-либо данных или пакетов в ОЗУ, он использует почти 700 м ОЗУ (виртуальный) и 50 мегабайт ОЗУ (по месту жительства).

Я знаю, что opencpu использует rApache, а rApache использует предварительное разветвление, но хочу знать, как это будет масштабироваться по мере увеличения числа одновременных пользователей. Спасибо.

Спасибо за ответы

Я разговаривал с Jeroen Ooms во время посещения Лос-Анджелеса и частично убежден, что opencpu будет работать в средах с высокой степенью параллелизма, если его правильно использовать, и что он готов исправить проблемы, если они возникнут. В конце концов, Opencpu связан с его диссертацией! В частности, что я считаю полезным в opencpu, так это его интеграцию с AppArmor Ubuntu, которая может ограничить процессы от использования слишком большого количества ОЗУ и ЦП. Я думаю, что apache тоже может это сделать, но RAppArmor может это и многое другое. Великолепно! Если бы AppArmor был единственным преимуществом, я бы просто использовал его и json в качестве бэкенда, но похоже, что opencpu также может упростить установку всего этого и предоставляет встроенную систему API.

Учитывая стоимость веб-хостинга, я предполагаю, что работающая система аналитики в реальном времени выглядит следующим образом:

  • создавать статистические модели R по запросу на специализированном аналитическом сервере так часто, как это необходимо (например, каждый день или час с помощью cron)
  • передавать результаты моделей в каталог на серверах opencpu с использованием ftp, как нативные объекты R
  • на сервере opencpu перейдите в каталог и возьмите объекты R, представляющие статистические модели, а затем сделайте прогнозы или проведите имитации, используя их. Например, используйте функцию «прогнозировать», чтобы получить оценки на основе переменных, введенных пользователем.

Кто-нибудь еще видит в этом жизнеспособный способ сделать R серверной частью для аналитики в реальном времени?


person Sasha Goodman    schedule 10.11.2012    source источник
comment
Но, Саша, это также зависит от каких запросов — если вы просто возвращаете константу 42, это сильно отличается от запуска перекрестной проверки начальной загрузки по иерархической модели с миллионами наблюдений. Я думаю, что полиция SO закроет это, если вы не добавите больше «говядины».   -  person Dirk Eddelbuettel    schedule 11.11.2012
comment
Кто-нибудь еще видит в этом жизнеспособный способ сделать R серверной частью для аналитики в реальном времени? – Вы рассматривали возможность покупки собственной машины и самостоятельной настройки сервера? Учитывая цену в 40 долларов за 1 ГБ в месяц, создание собственной машины кажется гораздо более разумной инвестицией. Цена смешная.   -  person Eli Korvigo    schedule 27.09.2018


Ответы (1)


Дирк прав, все зависит от функций R, которые вы вызываете; накладные расходы архитектуры OpenCPU должны быть минимальными. Сам OpenCPU будет работать на небольшом сервере, но, как мы все знаем, некоторые функции в R требуют гораздо больше памяти/процессора, чем другие.

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

Также есть некоторые другие вещи, которые вы можете настроить; например предварительная загрузка часто используемых пакетов.

person Jeroen    schedule 11.11.2012