В. Столлингс - Современные компьютерные сети (2-е издание, 2003) (1114681), страница 49
Текст из файла (страница 49)
Основываясь на результатах эксперимента в другом отделе компании, вы мажете оценить нагрузку, создаваемую каждым персональным компьютером, и вычислить требуемые мощности локальной сети и файлового сервера, В каждом случае основной заботой является производительность системы. В интерактивном приложении или в приложении реального времени зто, как правило, означает время отклика. В других случаях главным вопросом является пропускная способность.
Для оценки производительности проектируемой системы требуется определенный механизм предсказаний. Решение сетевых проблем и проблем связи, а также многих других проблем из реального мира часто можно получить с помощью аналитических моделей, основанных на теории очередей. Количество вопросов, которые можно решить путем анализа очередей, бесконечно. Круг этих вопросов охватывает пракгически все темы, обсуждаемые в данной книге.
Таким образом, умение применять анализ крайне важно для разработчиков, занимающихся любой из этих проблем. Хотя математическая часть теории очередей сложна, применение самой теорний' в целях анализа производительности во многих случаях оказывается доволь. 1 простым. Все, что для этого требуется, — это знание элементарных статнстичес«пх понятий (средних значений и дисперсий), а также понимание в общих чертах методов применения теории очередей. Вооружившись этими знаниями, разработчик часто может выполнить расчеты на клочке бумаги, используя несложные таблицы очередей, или с помощью простой компьютерной программы, занимающей всего несколько строк кода, В этой главе предлагается практический курс анализа очередей. 8.1.
Простой пример поведения очередей Пре дечемперей идет ° а нзаочер дей р .Отр и рубыйяр! .р что бы епочувствоватьа тему данной главы. Рассмотрим веб-сервер, способный обслуживать индивидуальные запросы в среднем за 1 мс. Чтобы упростить задачу, предположил1, что сервер обслуживает каждый запрос ровно за 1 мс. Если скорость поступления запросов равна одному запросу в миллисекунду (1000 запросов в секунду), то, как кажется, можно утверждать, что сервер справится с такой нагрузкой. Предположил1, что запросы прибывают с постоянной скоростью с интервалом ровно в 1 мс. Сервер обрабатывает запрос сразу, как только он приходит. Как только сервер завершает обработку текущего запроса, поступает новый запрос, и ссрвер снова принимается эа работу. Теперь рассмотрим более реалистичный вариант, в котором средняя скорость поступления запросов составляет также тысячу запросов в секунду, но эта скоросп не постоянна.
В течение любого заданного миллисекундного интервала может ие поступить нн одного запроса, поступить один запрос нли поступить несколько запросов, но в среднем за каждую миллисекунду приходит один запрос. В этом случае здравый смысл подсказывает, что сервер справится. В периоды высокой нагрузки, когда поступает больше запросов, чем сервер способен обработать, сервер может хранить избыточные запросы в буфере.
Можно сказать, что поступающие запросы ставятся в очередь на обработку. В спокойные периоды сервер может наверстать упущенное и очистить буфер. В данном случае важный вопрос проектирования заключается в том, насколько большим должен быть буфер. Таблицы 8.1-8.3 дают грубое представление о поведении такой системы. В табл.
8.1 мы предполагаем„что в систему поступает в среднем 500 запросов в секунду, что соответствует половине производительности сервера. Записи в таблице показывают количество запросов, прибывающих каждую секунду, количество запросов, обработанных в течение этой секунды, и количество избыточных запросов, поставленных в очередь к концу секундного интервала. В таблице содержатся данные о состоянии очереди на протяжении 50 с. Среднее по 50-секундным интервалам значение числа запросов, стоящих в очереди, равняется 43.
П п1<овос значение числа запросов, стоя1цнх в очереди, составляет 600. В табл.8.2 средняя скорость поступления запросов увеличена до 95 Х от производительности сервера и составляет 950 запросов в секунду, При этом среднее количество запросов, ож яда ющих обработки в буфере, увеличивается до 1859. Это может показаться удивительнымм.
Скорость поступления запросов увеличилась менее чем в два раза, тогда как средняя длина очереди выросла в 40 раз. В табл. 8.3 средняя скорость поступления П!ава 8. Анализ очередей 8.1. Простой пример поведения очередей 221 запросов еще немного увеличена — до 99 % от производительности сервера, — в ре- зультате среднее количество запросов в буфере выросло до 2583. Таким образом совсем незначительное увеличение средней скорости поступлении запросов ири водит к почти 40-процентному расту числа запросов, ожида1ощих в очереди.
Таблица ВЛ. Поведение очереди при нормализованной скорости прибытия, равной 0,5 Вход Выход Очередь Время 0 1 2 3 4 5 б 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2Б 27 28 29 ЗО 3! 32 33 34 35 36 0 88 796 1627 51 34 966 714 1276 494 933 107 241 16 671 643 812 262 218 1378 507 15 820 1253 307 540 190 500 96 943 105 183 447 542 166 165 490 0 88 796 1000 678 34 96Б 714 1000 769 933 !07 241 16 671 643 812 262 218 1000 885 15 820 1000 559 540 190 500 96 943 105 1БЭ 447 542 166 165 490 0 0 0 627 О О 0 О 276 0 0 0 0 0 0 0 0 О 0 378 0 0 0 253 0 0 0 0 0 О 0 0 0 0 0 0 0 Выход Очередь Таблица 8.2.
Поведение очереди при нормализованной скорости прибытия, равной 0,95 Вход Выход 167 1512 3091 97 Б5 1835 1357 2424 939 1773 0 2 3 4 5 б 8 9 10 203 12 13 14 458 ЗО 1275 1222 16 17 18 19 20 1543 498 414 2618 963 29 1558 2381 нродепжениеЮ 37 38 39 40 41 42 43 44 45 46 47 48 49 50 Среднее 510 877 37 163 104 42 29! Б45 363 134 920 1507 598 !72 499 510 877 Э7 163 104 42 291 645 363 134 920 1000 1000 277 499 167 1000 1ООО 1000 1000 1000 1000 1000 1000 1ООО 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 !000 1000 1000 0 0 0 О О 0 О 0 0 О 0 507 105 0 43 0 512 2Б04 1701 765 1601 1957 3382 3320 4093 3269 2754 !784 2059 2281 2824 2322 1736 3354 3317 2346 2904 4285 222 Глава 6.
Анализ очередей 6.1. Простой пример поведения очередей 223 Таблица 6.2 (продолжение) Вход Выход Время Вход Выход Таблица В.З. Поведение очереди при нормализованной скорости прибытия, равной 0,99 Вход Время Выход 0 174 1576 3221 !01 67 1913 14! 4 2526 978 0 174 1000 1000 1000 1000 1000 1000 1000 1000 0 0 576 2798 1899 966 !879 2292 3819 3797 24 25 2Б 27 28 29 30 31 32 ЗЗ 34 35 36 37 38 39 40 41 42 43 44 45 46 4? 48 49 50 Среднее 583 ! 026 361 950 182 1792 200 348 849 1030 315 314 931 969 1БББ 70 310 198 80 553 1226 Б90 255 1748 2863 1136 327 948 1 000 1000 1000 1000 1000 1000 ЧООО 1000 1000 1000 1000 1000 1000 1000 ! ООО 871 310 198 80 553 1000 915 255 1000 ! ООО 1000 1000 907 3868 3694 3255 3205 2387 3179 2378 1726 1575 !605 921 234 165 134 800 0 0 0 О 0 226 0 0 748 2611 2748 2074 1859 1О 11 12 13 14 15 16 17 18 Ч9 20 21 22 23 24 25 26 27 28 29 30 ЗЧ 32 33 34 ЗБ 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 роднее 1847 212 477 32 1329 1 273 1608 519 432 2728 1004 ЗО 1624 2481 608 1069 376 990 190 1667 З)6 362 885 1073 329 327 970 1010 !736 73 323 206 83 57Б 1277 719 265 !822 2984 1184 341 986 1000 1000 1000 1000 1000 1000 1000 ЧООО 1000 1000 1ООО 1000 1000 1000 ЧООО 1000 1000 ! 000 1000 1000 1000 1000 1ООО 1 000 1000 1000 1000 1000 ! 000 1000 1000 994 83 576 1000 996 265 1000 ЧООО 1000 1000 942 4644 3856 3333 2365 2693 2967 35?4 3093 2525 4253 4257 3287 3910 5391 4999 5066 4445 4435 3625 4492 3700 3062 2947 3020 2349 1676 1646 1656 2392 !465 788 0 О 0 277 0 0 822 2805 2990 2330 2583 224 Глава 8.
Анализ очередей 8.2. Мели анализа очередей 225 Этот грубый пример наводит на мысль о том, что поведение системы с очер дью может не согласовываться с нашей интуицией. 8.2. Цели анализа очередей Часто бывает необходимо рассчитать требуемую производительность на основ~ имеющейся информации о нагрузке или на основе оценки нагрузки в новом окру женин.
Для этого могут применяться различные подходы: + Выполнение анализа на уже готовом оборудовании на основе фисгическтос значений. + Выполнение простых прогностических расчетов на основе экстраполяции данных, полученных на существующем оборудовании. + Разработка аналитической модели на основе теории очередей, + Создание и запуск программной модели. Первый вариант вообще не является вариантом. Мы просто собираем систему наугад и смотрим, что получится.
Такой подход приведет лишь к появлению недовольных пользователей и к неразумному расходованию средств. Второй вариант кажется более многообещающим. Аналитик может заявить, что спрогнозировать будущие требования с какой-либо степенью точности невозможно, Поэтому нет смысла заниматься точным моделированием. Вместо этого простой и грубый прогноз позволит получить приближенную оценку. Недостаток такого подхода состоит в том, что поведение большинства систем при изменении нагрузки оказывается довольно неожиданным, как было показано в разделе 8.1. Если имеется окружение, в котором есть коллективно используемый ресурс (например, сеть, линия передачи данных или система разделения времени), тогда производительность такой системы, как правило, отвечает на увеличение нагрузки экспоненциальным увеличением времени отклика.
На рис. 8.1 показан соответствующий пример. Верхняя линия демонстрирует увеличение времени отклика на запрос пользователя к общему ресурсу при увеличении нагрузки на этот ресурс. Нагрузка измеряется в долях от максимальной производительности ресурса Таким образом, если мы имеем дело с маршрутизатором, способным обрабатывать н переправлять 1000 пакетов в секунду, то нагруз ка 0,5 соответствуег средней скорости поступления 500 пакетов в секунду.