2013-04-03 2 views
0

Использует ли Meteor многоядерные процессоры? Есть ли параметр конфигурации, который необходимо настроить?Использует ли Meteor многоядерные системы?

+0

Скорее всего, это вещь узла и волокно, но это не похоже на то, что несколько ядер будут преимуществом http://bjouhier.wordpress.com/2012/03/11/fibers-and-threads-in -node-js-what-for/для получения дополнительной информации – Akshat

ответ

2

Короткий ответ - нет, Meteor не использует многоядерные процессоры.

Причина проста: Meteor основан на node.js, и по определению node.js не будет автоматически масштабироваться для нескольких процессоров или ядер процессора.

Вы можете задаться вопросом, возможно ли как-то «заставить» его использовать несколько ядер. Ну, я думаю, что ответ на этот вопрос «возможно, но не так легко». Недавно node.js включил кластерный модуль http://nodejs.org/docs/latest/api/cluster.html, который позволяет запускать дочерние процессы, которые в конечном итоге возвращаются. Это может быть хорошим вариантом для вас, скажем, если вы делаете манипуляции с изображениями в больших масштабах или что-то подобное. Но я не знаю, какой способ использовать этот метод для Meteor.

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

Возможно, вам больше повезло, когда Meteor отправляется на V1 - см. Примечание Trello в дорожной карте о связи между сервером: https://trello.com/c/RKEYpJ4P/46-multitier-server-architecture-support-very-large-numbers-of-simultaneous-clients.

Наконец, имейте в виду, что Meteor все еще находится в разработке, и что Galaxy может (я размышляю здесь) поддерживать многоядерную обработку. Галактика - это метеорная платформа, в которой в настоящее время работает команда ЦРТ. Вы можете узнать больше об этом проекте на http://www.meteor.com/blog/2012/07/25/meteors-new-112-million-development-budget

Надеюсь, это поможет.

+0

Небольшая коррекция, несколько серверов Meteor могут разговаривать друг с другом, используя либо интеллектуальный пакет метеоритного кластера (работает над redit), либо его преемники, интеллектуальные коллекции (в которых используется монго oplog). Итак, если у вас есть другой процесс mongo на каждом ядре, с балансиром нагрузки перед ним и с одним из этих смарт-пакетов, вы можете легко масштабировать ... хотя, если ваше приложение не является сумасшедшим ресурсоемким, м в сомнении, что для одного приложения требуется более 1 ядра. http://www.meteorpedia.com/read/Scaling_your_Meteor_App – gadicc

+0

Извините, я убираю комментарий «не нужно больше 1 ядра» ... конечно, в конечном счете, для действительно больших приложений, которые вы хотите масштабировать должным образом. и, как указано выше, вы можете.рассмотрите также использование провайдера PaaS, который делает это намного проще (они будут обрабатывать все эти вещи для вас, если у вас есть один из вышеперечисленных смарт-пакетов, а у провайдера PaaS установлен балансировщик нагрузки с учетом близости сеанса). – gadicc

+0

Редактировать: с моего поста много работы было сделано вокруг масштабирования Метеор до релиза Galaxy (в настоящее время ходят слухи о сдаче в аренду Q1 2014). Я особенно рекомендую эту статью от Аруноды: http://meteorhacks.com/how-to-scale-meteor.html –

2

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

Первый пакет добавить кластер:

meteor add meteorhacks:kadira 

Затем выставить этот окр. Переменная при запуске вашего приложения:

export CLUSTER_WORKERS_COUNT=auto 

Для получения дополнительной информации по этой article.

Смежные вопросы