[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]

Руководство по настройке производительности


Настройка высокоскоростных асинхронных соединений

Асинхронные порты позволяют подключать к компьютеру дополнительные устройства, такие как терминалы, принтеры, факсимильные аппараты и модемы. Асинхронными портами управляют адаптеры, такие как 8-, 16- или 64-портовые адаптеры IBM или 128-портовый адаптер Digiboard, которые подключаются к шине MCA и обеспечивают параллельные асинхронные соединения, обычно RS232 или RS422. Многие адаптеры, например, три упоминавшихся выше адаптера фирме IBM, были изначально разработаны для обслуживания терминалов и принтеров, и поэтому оптимизированы для вывода (передачи) данных. В свою очередь ввод (прием) данных не был оптимизирован, так как разработчики исходили из предположения, что пользователи не могут вводить информацию достаточно быстро. Это не вызывает никаких проблем при периодической передаче данных на небольших скоростях, например, при вводе с клавиатуры. Однако при работе приложений, принимающих большие объемы данных от других компьютеров и таких устройств, как факсы, могут возникнуть сложности. При работе с неформатированными данными информация рассматривается как непрерывный поток, в котором байты не разделяются на строки и удаление данных невозможно.

Способы настройки асинхронных портов

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

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

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

Сценарий fastport.sh для быстрой передачи файлов

Сценарий fastport.sh предназначен для настройки порта терминала на быструю передачу файлов без дополнительной обработки, например, на подключенный факсимильный аппарат. Этот сценарий позволяет сократить нагрузку на CPU в три раза на скорости 38400 бод. Сценарий fastport.sh не предназначен для стандартной обработки, выполняемой при асинхронном взаимодействии с пользователем, поскольку задача буферизации стандартной обработки достаточно сложна. Скорость передачи данных при работе с терминалом слишком мала для того, чтобы сценарий мог использоваться эффективно.

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

  1. Создайте терминал для порта с помощью команды smitty -> Устройства -> Терминал -> Добавить терминал с опциями Enable LOGIN=disable and BAUD rate=38400.
  2. Создайте сценарий оболочки Korn fastport.sh, как показано ниже:
         #****************************************************************
         #
         # Настройка быстродействующего порта для прямого асинхронного ввода-вывода
         #
         #****************************************************************
         set -x
         sync;sync
         i=$1
         if [ $i -le 100 ]
         then
         # для стандартных асинхронных портов и 8-, 16- и 64-портовых адаптеров
         # задайте vmin=255 и vtime=0,5 с помощью следующей команды stty:
          stty -g </dev/tty$i |awk ' BEGIN { FS=":";OFS=":" }
           { $5="ff";$6=5;print $0 } ' >foo
         # для 128-портового адаптера удалите предыдущую команду, затем
         # удалите символ комментария и выполните
         # следующую команду stty вместо предыдущей,
         # задав vmin=255 и vtime=0 для отключения линейной обработки
         # stty -g </dev/tty$i |awk ' BEGIN { FS=":";OFS=":" }
         #  { $5="ff";$6=0;print $0 } ' >foo
          stty `cat foo ` </dev/tty$i
          sleep 2
         # задайте режим прямого ввода-вывода с минимальной обработкой
          stty -opost -icanon -isig -icrnl -echo -onlcr</dev/tty$i
            rm foo
          sync;sync
         else
            echo "Формат: fastport.sh < номер_терминала >"
         fi
    
  3. Запустите сценарий для соответствующего номера терминала с помощью следующей команды:
    # fastport.sh номер_терминала


[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]