Изменить стиль страницы

- manager exchange: 8312 ~4024 {48%}

# nice -n-19 cli -b4000 -m1000

SRR client: vers 1.03

server path: /dev/srr, block size = 4000 bytes, repeat = 1000

CPU speed [c.p.s.] client = 534639500, server = 534639500

- message exchange: 5393  ~518 {10%}

- manager exchange: 10666 ~770 {7%}

# nice -n-19 cli -b6000 -m1000

SRR client vers 1.03

server path /dev/srr, block size = 6000 bytes, repeat = 1000

CPU speed [c.p.s.]: client = 534639500, server = 534639500

- message exchange: 7373  ~612 {8%}

- manager exchange: 12423 ~995 {8%}

# nice -n-19 cli -b1000 -m1000

SRR client: vers. 1.03

server path /dev/srr, block size = 10000 bytes, repeat = 1000

CPU speed [c.p.s.]: client = 534639500, server = 534639500

- message exchange: 14365 ~953  {7%}

- manager exchange: 16018 ~5399 {34%}

Это дает нам следующую информацию:

• Обмен с сервером, работающим на локальном хосте, происходит синхронно: клиент, переслав запрос серверу, блокируется в ожидании ответа от него. В этих условиях мы загружаем процессор на 100% совместной активностью клиента и сервера.

• Обмен в эквивалентныхусловиях с сервером, работающим как менеджер ресурса, требует (в сравнении с прямым обменом сообщениями) в 1,12–2,44 раз большее количество процессорных циклов на свое обслуживание, или, в относительных единицах, максимально достижимая производительность менеджера меньше на 12–144% .

• Самые неблагоприятные (144%) значения относятся к случаю обмена короткими сообщениями (1–10 байт); достаточно ощутимое (~2) значение этого соотношения сохраняется до размеров передаваемых блоков данных, равных 8–10 Кбайт.

• Накладные расходы на передачу единичного байта информации недопустимо велики (2693 циклов на байт при обмене сообщениями и 6579 циклов на байт — для менеджера) при организации обмена короткими сообщениями. С ростом объема данных, передаваемых за один цикл обмена, этот показатель очень резко падает (на блоках по 100 байт уже 33,5 и 70 соответственно, т.е. 2 порядка). Для систем с интенсивными потоками обмена необходимо стремиться максимально блокировать передаваемые данные и минимизировать число актов обмена.

Теперь выполним то же самое, но при обмене с сервером, локализованным на удаленном хосте сети (мы используем низкоскоростную сеть 10 Мбит/сек, на которой все эффекты более наглядны):

# nice -n-19 cli -nrtp -b1 -m500

SRR client: vers. 1.03

server path: /net/rtp/dev/srr, block size = 1 bytes, repeat = 500

CPU speed [c.p.s.]: client = 534639500, server = 451163200

- message exchange: 671017 ~391587 {58%}

- manager exchange: 712181 ~394844 {55%}

# nice -n-19 cli -nrtp -b10 -m500

SRR client: vers. 1.03

server path: /net/rtp/dev/srr, block size = 10 bytes, repeat = 500

CPU speed [c.p.s.]: client = 534639500, server = 451163200

- message exchange: 642456 ~380313 {59%}

- manager exchange: 743094 ~423717 {57%}

# nice -n-19 cli -nrtp -b100 -m500

SRR client: vers. 1.03

server path: /net/rtp/dev/srr, block size = 100 bytes, repeat = 500

CPU speed [c.p.s.]: client = 534639500, server = 451163200

- message exchange: 878686 ~432230 {49%}

- manager exchange: 907474 ~420140 {46%}

# nice -n-19 cli -nrtp -b1000 -m500

SRR client: vers. 1.03

server path: /net/rtp/dev/srr, block size = 1000 bytes, repeat = 500

CPU speed [c.p.s.]: client = 534639500, server = 451163200

- message exchange: 2064542 ~358333 {17%}

- manager exchange: 2113638 ~372487 {18%}

# nice -n-19 cli -nrtp -b3000 -m200

SRR client: vers. 1.03

server path: /net/rtp/dev/srr, block size = 3000 bytes, repeat = 200

CPU speed [c.p.s.]: client = 534639500, server = 451163200

- message exchange: 4134249 ~418168 {10%}

- manager exchange: 4181481 ~418139 {10%}

# nice -n-19 cli -nrtp -b5000 -m200

SRR client: vers. 1.03

server path: /net/rtp/dev/srr, block size = 5000 bytes, repeat = 200

CPU speed [c.p.s.]: client = 534639500, server = 451163200

- message exchange: 5805056 ~252663 {4%}

- manager exchange: 5825837 ~229120 {4%}

# nice -n-19 cli -nrtp -b8000 -m200

SRR client: vers. 1.03

server path /net/rtp/dev/srr, block size = 8000 bytes, repeat = 200

CPU speed [c.p.s.]: client = 534639500, server = 451163200

- message exchange: 8741090 ~446299 {5%}

- manager exchange: 8788642 ~427459 {5%}

# nice -n-19 cli -nrtp -b10000 -m200

SRR client: vers. 1.03

server path: /net/rtp/dev/srr, block size = 10000 bytes, repeat = 200

CPU speed [c.p.s.]: client = 534639500, server = 451163200

- message exchange: 8971296 ~451857 {5%}

- manager exchange: 9731224 ~301409 {3%}

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

Наш второй клиент ( файл clr.cc), неизменно работающий с тем же сервером, весьма похож на предыдущий, но он массированно «гонит» поток данных на сервер, пользуясь только одним из механизмов (ключ

-d
) до прекращения его выполнения пользователем по
^C
. Результат его работы — средняя плотность потока информации за весь интервал работы.