Как “не локализовать” вывод сценария удара

На моем Волоконно-оптическом канале карты QLogic (SAN) я получил свою лучшую пропускную способность, когда я поражал приблизительно 2 000 прерываний в секунду. Каждая карта имела два порта на нем так, каждое прерывание станет пораженным 2,000 раз в секунду.

В моих чтениях объединение прерывания находится на основе на драйвер, и каждый драйвер может сделать это полностью отличающийся. Например, вот инструкции относительно конфигурирования драйвера сетевой платы e1000 (Intel PRO/1000).

Если конкретный драйвер не позволяет объединять, то необходимо вычислить идеальный уровень как функцию единиц работы в фиксированном количестве времени. Mircea Vutcovici дает схему в его комментариях. Рассмотрите карту на 8 Гбит/с (принимающий один порт).

 Buffer Size   Intr/sec
 256 Kbytes       4,096
 128 Kbytes       8,192
  16 Kbytes      65,536
 512  bytes   2,097,152

Теперь, каждое устройство и контроллер имеют максимальное количество Операций ввода-вывода в секунду, что они могут выдержать. Это должно быть прямо пропорционально, если не равный, к количеству прерываний в секунду, если мое предположение является правильным.

Так, сколько прерываний можно обработать? Ну, я нашел бы оптимальный размер буфера для коммуникации, которую Вы выполняете на своем устройстве (диск в этом случае) и определяете, где уровень прерывания, когда устройство достигает максимума. Затем что-либо выше или около этого означает, что кто-то действительно неправильно использует устройство. Так как Вы используете внутренний контроллер, что-либо идет. Необходимо будет использовать эмпирический анализ для высказывания предположения.

Это означает, что Ваши пороги связываются с a) Вашим контроллером, b) Вашими дисками и c) Вашим ЦП (верхняя частота равняется способности получить работу, сделанную несмотря на высокие уровни прерывания).

Для потомства много устройств имеет прерывания. Те, скорее всего, чтобы быть узким местом являются связанным вводом-выводом, конкретно: устройство хранения данных, сеть (не только TCP), видео, аудио (некоторые).

1
задан 14 May 2013 в 14:27
2 ответа

Установите необходимые LC _ * переменные соответственно.

LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8

установил бы вывод всех программ в этих сценариях на en_US.utf-8 .

Или вы даже можете использовать локаль по умолчанию с именем C .

2
ответ дан 3 December 2019 в 17:49

Ага, ты не можешь. Но что вы можете сделать, так это установить переменную LANG в вашем скрипте на желаемую локаль. Я думаю, что было бы неплохо использовать локаль по умолчанию POSIX:

export LANG=C
2
ответ дан 3 December 2019 в 17:49

Теги

Похожие вопросы