Единообразное и эффективное управление параллельной работой сервера

Опубликовано в Технологии > Серверные технологии

16.1. Введение

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

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

16.2. Выбор между последовательным и параллельным проектами

Проекты серверов, описанные ранее, подразделяются на две категории: обрабатывающие запросы последовательно и выполняющие обработку запросов параллельно. Как показано в предыдущих главах, разработчик должен сделать обоснованный выбор между этими двумя основными подходами, прежде чем приступить к созданию сервера.

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

Как узнать, будет ли обеспечиваться параллельная работа? Как выбрать оптимальный проект сервера? А еще важнее то, как оценить предполагаемую нагрузку или время обслуживания? На эти вопросы ответить сложно, поскольку сети быстро развиваются; опыт показывает, что сети растут быстро и непредсказуемо. Как только пользователи узнают о какой-то услуге, интенсивность доступа к ней стремительно увеличивается. По мере увеличения числа пользователей растет потребность в отдельных серверах. Наряду с этим появление новых технологий и программных продуктов способствует непрерывному улучшению связи и повышению скорости обработки. Однако развитие средств передачи и обработки данных не всегда происходит с одинаковой скоростью.

Трудно себе представить, как можно сегодня, когда все так быстро меняется, принять такое важное решение по выбору основного подхода. Это решение обычно основано на опыте и интуиции: разработчик строит наилучший возможный прогноз на основе изучения новейших тенденций. По сути, выбор оптимального проекта осуществляется на основе изучения последних достижений и формирования прогноза на ближайшее будущее. Безусловно, разработчики могут сделать свой выбор только с определенной степенью достоверности; поскольку технологии развиваются, а потребности пользователей изменяются, перед разработчиком может возникнуть необходимость пересмотреть свое решение или даже выбрать другой подход.

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

Похожие статьи