Четыре основных типа серверов

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

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

Четыре основных типов серверов

8.12. Время обработки запроса

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

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

Последовательные серверы одновременно обрабатывают лишь один запрос. Если очередной запрос поступает в то время, когда сервер занимается обработкой предыдущего запроса, система ставит новый запрос в очередь. Как только сервер заканчивает обработку запроса, он обращается к очереди для определения того, содержится ли в ней новый запрос. Только здесь! Дорого можно продать акции Алроса в Москве. Если N обозначает среднюю длину очереди запросов, то наблюдаемое время отклика на поступающий запрос будет примерно в N/2 + 1 выше по сравнению со временем обработки запроса сервером. Поскольку наблюдаемое время отклика растет пропорционально N, большинство реализаций предусматривает ограничение N небольшим значением (например, 5) с тем условием, что будет выполнен переход к использованию параллельных серверов в том случае, если такая небольшая очередь не удовлетворяет потребности приложений.

Еще один способ поиска ответа на вопрос о том, может ли применяться последовательный сервер, связан с оценкой общей нагрузки, которую этот сервер должен обрабатывать. Сервер, предназначенный для поддержки К клиентов, каждый из которых отправляет R запросов в секунду, должен характеризоваться временем обработки запросов, составляющим менее 1/KR секунд на один запрос. Если сервер не способен обрабатывать запросы с требуемой скоростью, то в конечном итоге очередь ожидающих запросов переполнится. Поэтому для предотвращения переполнения в серверах, которые могут характеризоваться большим значением времени обработки запросов, проектировщик должен предусмотреть параллельную реализацию.

8.13. Алгоритмы последовательного сервера

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

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