Больше ядер против более быстрых на веб-сервере

Обсуждение Dual и Quadcore так же старо, как и сами Quadcores, и ответ обычно «это зависит от вашего сценария». Итак, здесь сценарий - веб-сервер (Windows 2003 (не уверен, x32 или x64), 4 ГБ ОЗУ, IIS, ASP.net 3.0).

У меня сложилось впечатление, что ЦП на веб-сервере не обязательно должен быть ТАК быстрым, потому что запросы обычно довольно легкие, поэтому наличие большего количества (более медленных) ядер должно быть лучшим выбором, поскольку мы получили много мелких запросов.

Но поскольку у меня нет большого опыта с балансировкой нагрузки IIS, и поскольку я не хочу тратить много денег только на то, чтобы узнать, что я сделал неправильный выбор, может ли кто-нибудь, у кого есть немного больше опыта, прокомментировать, стоит ли Больше медленнее или меньше Более быстрые ядра лучше?

Ответов (4)

Решение

Для чего-то вроде веб-сервера разделение задач по обработке каждого соединения (относительно) легко. Я говорю, что можно с уверенностью сказать, что веб-серверы - одно из наиболее распространенных (и упорядоченных) способов использования параллельного кода. А поскольку вы можете разделить большую часть обработки на несколько дискретных потоков, большее количество ядер действительно принесет вам пользу. Это одна из главных причин, по которой виртуальный хостинг вообще возможен. Если серверное программное обеспечение, такое как IIS и Apache, не могло запускать запросы параллельно, это означало бы, что каждый запрос страницы должен был бы отправляться в очередь ... вероятно, делая время загрузки невыносимо медленным.

Это также объясняет, почему серверные операционные системы высокого уровня, такие как Windows 2008 Server Enterprise, поддерживают что-то вроде 64 ядер и 2 ТБ ОЗУ. Это приложения, которые действительно могут использовать такое количество ядер.

Also, since each request is likely has low CPU load, you can probably (for some applications) get away with more slower cores. But obviously having each core faster can mean being able to get each task done quicker and, in theory, handle more tasks and more server requests.

Чем больше, тем лучше. По мере того, как языки программирования становятся более сложными и абстрактными, потребуется больше вычислительной мощности.

Атлет Джефф считает, что Quadcore лучше .

Мы используем apache в Linux, который разветвляет процесс для обработки запросов. Мы обнаружили, что большее количество ядер увеличивает нашу пропускную способность, поскольку они сокращают задержку процессов, ожидающих помещения в очередь выполнения. У меня нет большого опыта работы с IIS, но я полагаю, что тот же сценарий применим к его пулу потоков.

Марк Харрисон сказал:

У меня нет большого опыта работы с IIS, но я полагаю, что тот же сценарий применим к его пулу потоков.

Действительно - больше ядер = больше потоков, работающих одновременно. IIS по своей сути является многопоточным и легко использует это преимущество.