Эффективность одновременных соединений
Эффективность одновременных соединений
Каков выигрыш в эффективности при установлении множества одновременных соединений? В табл. 16.1 показано время, необходимое для выполнения определенной задачи, которая состоит в том, чтобы получить от веб-сервера домашнюю страницу и девять картинок. Время обращения RTT для данного соединения с сервером равно приблизительно 150 мс. Размер домашней страницы — 4017 байт, а средний размер девяти файлов с изображениями составил 1621 байт. Размер сегмента TCP равен 512 байт. Для сравнения мы также представляем в этой таблице значения для многопоточной версии данной программы, которую мы создаем в разделе 26.9.
Таблица 16.1. Время выполнения задания для разного количества одновременных соединений в разных версиях программы
Количество одновременных соединений Затраченное время (в секундах), отсутствие блокирования Затраченное время (в секундах), использование потоков 1 6,0 6,3 2 4,1 4,2 3 3,0 3,1 4 2,8 3,0 5 2,5 2,7 6 2,4 2,5 7 2,3 2,3 8 2,2 2,3 9 2,0 2,3ПРИМЕЧАНИЕ
Мы показали пример использования одновременных соединений, поскольку он служит хорошей иллюстрацией применения неблокируемого ввода-вывода, а также потому, что в данном случае эффективность применения одновременных соединений может быть измерена. Это свойство также используется в популярном приложении — веб-браузере Netscape. В этой технологии могут появиться некоторые «подводные камни», если сеть перегружена. В главе 21 [111] подробно описываются алгоритмы TCP, называемые алгоритмами медленного старта (slow start) и предотвращения перегрузки сети (congestion avoidance). Когда от клиента к серверу устанавливается множество соединений, то взаимодействие между соединениями на уровне TCP отсутствует. То есть если на одном из соединений происходит потеря пакета, другие соединения с тем же сервером не получают соответствующего уведомления, и вполне возможно, что другие соединения вскоре также столкнутся с потерей пакетов, пока не замедлятся. По этим дополнительным соединениям будет продолжаться отправка слишком большого количества пакетов в уже перегруженную сеть. Эта технология также увеличивает нагрузку на сервер.
Максимальное увеличение эффективности происходит при трех одновременных соединениях (время уменьшается вдвое), а при четырех и более одновременных соединениях прирост производительности значительно меньше.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
17.3.2. Установка соединений
17.3.2. Установка соединений После создания потокового сокета его необходимо присоединить к чему-то часто используемому. Установка соединений сокетов является в большой степени несимметричной задачей, поскольку каждая сторона проводит соединение по-разному. Одна сторона
17.3.4. Ожидание соединений
17.3.4. Ожидание соединений После создания сокета сервер привязывает к нему адрес с помощью функции bind(). Далее процесс сообщает системе путем вызова функции listen(), что он готов разрешить другим процессам соединение с данным сокетом (по указанному адресу). Если сокет привязан
17.5.7. Ожидание TCP-соединений
17.5.7. Ожидание TCP-соединений Ожидание соединений TCP происходит почти идентично ожиданию соединений домена Unix. Единственные различия заключаются в семействах протоколов и адресов. Ниже показан вариант примера сервера домена Unix, который работает через сокеты TCP. 1: /* tserver.с
Использование PPP-соединений
Использование PPP-соединений При рассмотрении вопросов сетевого взаимодействия предполагается, что компьютер под управлением Linux подключен к обычной локальной сети, узлы которой соединены посредством сетевых кабелей (например, к сети Ethernet). В такой среде можно
Туннелирование X-соединений через SSH
Туннелирование X-соединений через SSH Из материала, рассмотренного ранее в данной главе, следует, что для инициализации Х-соединения используются два отдельных, независимых друг от друга протокола. Во-первых, работая на компьютере, выполняющем роль X-сервера, вы
2.2.1 Коммуникации с созданием соединений (TCP)
2.2.1 Коммуникации с созданием соединений (TCP) Протокол TCP (Transmission Control Protocol) отвечает в TCP/IP за надежные коммуникации с созданием соединения по принципу "равный с равным". Сеанс регистрации с терминала и пересылка файлов выполняются с помощью
2.2.2 Коммуникации без создания соединений (UDP)
2.2.2 Коммуникации без создания соединений (UDP) Некоторые операции обмена данными не требуют постоянного взаимодействия систем. Например, база данных на сетевом сервере может содержать таблицы имен сотрудников компании и их телефонные номера. Узнать номер телефона
5.2. Использование безопасных соединений
5.2. Использование безопасных соединений Выберите сервер, поддерживающий безопасные соединения. Помня о "плохом админе", не стоит выбирать локальный корпоративный сервер или почтовик провайдера. Лично я использую cервис Mail.ru, и мне его вполне достаточно (алгоритм
Курсоры для реентерабельных соединений
Курсоры для реентерабельных соединений Для выполнения реентерабельного соединения сервер поддерживает один внутренний курсор для каждого потока в пределах образа одной таблицы. Концептуально он трактует контексты двух курсоров, как если бы они были отдельными
8.1. Причина популярности DSL-соединений
8.1. Причина популярности DSL-соединений DSL (Digital Subscriber Line) — цифровая абонентская линия, позволяющая производить двунаправленный обмен данными по телефонной линии. Существуют несколько вариантов DSL-линий: ADSL, VDSL, SDSL, RADSL. Наиболее распространены ADSL-линии (Asymmetric DSL) —
8.7 Эффективность
8.7 Эффективность Можно было бы ожидать, что раз ввод/вывод «stream.h» определен с помощью общедоступных средств языка, он будет мнее эффективен, чем встроенное средство. На самом деле это не так. Для действий вроде «поместить символ в поток» использются inline-функции,
8.5. Эффективность
8.5. Эффективность Существует несколько аспектов эффективности программ, включая такие наиболее общие, как время выполнения и требования по объему памяти. Другим аспектом является время, необходимое программисту для разработки программы.Традиционная архитектура
3.3.4 Эффективность
3.3.4 Эффективность Ничего не требуется. Однако в описании продукта должны присутствовать соответствующие формулировки
6.2. Изображение резьбовых соединений
6.2. Изображение резьбовых соединений Резьбовые соединения можно разделить на две группы:? соединения, осуществляемые непосредственным свинчиванием соединяемых деталей, без применения специальных соединительных частей;? соединения, осуществляемые с помощью
Эффективность (Efficiency)
Эффективность (Efficiency) Определение: эффективностьЭффективность - это способность ПО как можно меньше зависеть от ресурсов оборудования: процессорного времени, пространства, занимаемого во внутренней и внешней памяти, пропускной способности, используемой в устройствах
Протокол установления соединений
Протокол установления соединений Протокол установления соединений Handshake Protocol состоит как бы из трех подпротоколов, которые позволяют выполнить аутентификацию сторон, согласовать алгоритмы и параметры безопасности для протокола передачи записей [19].Handshake Protocol