Выполнение нескольких копий сценария - использование ядер или просто замедление сервер?

Я предлагаю, чтобы Вы присвоили дополнительный IP-адрес каждому из Ваших серверов (в дополнение к статическому IP, для которого Вы используете, скажем, ssh), и Вы берете это в пул DNS. И затем Вы используете некоторое программное обеспечение для передвижения этих IP-адресов в случае, если сервер перестал работать. Heartbeat или CARP могут сделать это, например, но там существуют другие решения.

Это имеет преимущество, которое для клиентов Вашего сервиса, ничто не должно изменять в установке, и Вы не должны волноваться о кэшировании DNS или TTL, но можно все еще использовать в своих интересах циклический алгоритм DNS "выравнивание нагрузки".

1
задан 30 August 2014 в 10:51
2 ответа

Если это работает на апаче, с помощью mpm_prefork (потому что это - php), затем ядро Linux сбалансирует дочерние процессы между несколькими ядрами.

Если Вы выполняете тех, которые на командной строке, то они не обязательно работают на различных ядрах и делают, затем работает на различных ядрах, требует использования taskset или cpuset определить привязку процессора каждого экземпляра к различному ядру.

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

0
ответ дан 4 December 2019 в 10:27

Мое понимание таким образом: существует очередь сообщений. Сценарий PHP использует сообщения от этой очереди. Принятые меры варьируются через доступ к диску, сетевую активность и ЦП интенсивные задачи.

(что coredump, сказанный относительно того, чтобы уметь использовать несколько процессов вообще.)

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

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

0
ответ дан 4 December 2019 в 10:27

Теги

Похожие вопросы