Для php веб-сервера, что быстрее: 1x 24-ядерный сервер или 3x 8-ядерный сервер?
Цены на Dell, кажется, я могу получить один R430 или 3x R220. R220 будет иметь процессоры 4C/8T, что даст 24 потока. R430 будет иметь 2 процессора 6C/12T, что даст 24 потока.
Для веб-сервера Apache CentOS 6, выполняющего в основном динамическое содержимое с помощью Php (поэтому требуется некоторое вычисление php для внутреннего интерфейса), что было бы лучшим выбором, учитывая, что стоимость одинакова.
Может выполнять либо установку с нуля, либо виртуализацию (openstack). Очевидно, что один R430 займет меньше места в стойке, будет проще в управлении и потребляет меньше энергии. Но при условии равной нагрузки ядру Linux на R430, вероятно, придется обрабатывать в 3 раза больше процессов по сравнению с 3x R220.
Кстати, это не повторяющийся вопрос, так как ответ требует понимания того, как ядро и планировщик Linux масштабируются в зависимости от количества процессов.
2 ответа
Как и в случае с планировщиком ядра Linux, не беспокойтесь, Linux из стабильной серии ядра 2.6 использует планировщик O1: https://en.wikipedia.org/wiki/O%281%29_scheduler
Короче говоря, это означает, что вы даже не заметите снижения производительности планировщика ядра перед громоздким числом процессов, сначала вы начнете менять местами (PHP немного жаден до памяти).
В этот раз вы получаете максимальную отдачу от своего ЦП, избегая промахов в кеше, поэтому проверьте размер кеша для ядра, но, поскольку вы развертываете веб-приложение, я не думаю, что это имеет большое значение, так как оно полностью находится вне вашего контроля, и вы попадете другие ограничения производительности ранее, например, алгоритмы, используемые вашим приложением, возможная база данных, ограничения памяти и так далее.
Если у вас есть балансировщик нагрузки, подход с несколькими серверами будет быстрее - несколько сетевых карт подключены к (предположительно) большей восходящей линии связи.
Если у вас нет балансировщика нагрузки, то подход с одним сервером будет быстрее... потому что у вас нет возможности направить некоторый трафик на два других сервера в сценарии с несколькими серверами.