Почему делает высокий диск, ввод-вывод уменьшает системную скорость отклика/производительность?

Это было бы отказом less не будучи установленным интерпретировать Escape ANSI; искать R в $LESSOPTS. Что касается определения, если система знает, Ваш терминал может иметь дело с цветами, tput colors произведет или количество цветов, которые оно поддерживает или -1 если это не поддерживает цвета. (Обратите внимание, что некоторые терминалы могут использовать xterm вместо xterm-color как их терминальное описание, но все еще поддерживают цвета.)

19
13.04.2017, 15:36
2 ответа

Операционные системы используют виртуальную память так, чтобы больше памяти могло использоваться, чем существует физическая доступная RAM. Когда ядро решает, что имеет лучшее использование для страницы физической памяти, ее содержание может быть "разбито на страницы" для устройства хранения данных на диске. Когда к такой странице виртуальной памяти получают доступ, в то время как разбито на страницы, она генерирует отсутствие страницы и попятилась от диска до RAM.

Отсутствия страницы являются аварией для производительности, потому что задержка диска измеряется в миллисекундах, в то время как задержка RAM измеряется в наносекундах. (1 миллисекунда = миллион наносекунд!)

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

Физическая память, используемая для кэша файловой системы, не может использоваться для процессов, таким образом, во время действия файловой системы больше памяти процесса будет разбито на страницы, и отсутствия страницы увеличатся. Кроме того, меньше дисковой пропускной способности средств ввода-вывода доступно для перемещения страниц памяти от и до диска. В результате процессы могут остановиться.

9
27.01.2020, 19:45
  • 1
    , я знаю, что это столь же старо как грязь, но, в зависимости от того, как это входит, большое количество ввода-вывода могло привести к большому количеству сгенерированных прерываний и получающиеся контекстные переключения, тратящие впустую процессорное время. –  Bratchley 20.03.2015, 22:22

Насколько я понимаю это, IOwait означает, что процесс, не процессор, ожидает IO для становления доступным. Процессоры получили намного больше скорости, чем жесткие диски, означая, что больше кода закончится быстрее, и затем диск должен будет быть считан. Когда еще несколько потребностей, которые будут считаны, чем диск, могут сделать достаточно быстро, Вы заканчиваете с ожиданием процессора. Путем решено, кто добирается до чтения-записи к диску, определяется планировщиком блока, в большинстве случаев теперь CFQ. Если Вы используете CFQ, и Вам нужен процесс для использования меньшего количества полного времени IO для повышения системной оперативности реагирования, можно использовать ionice -c3 <processid>. Это говорит системе только давать этому процессу IO только, когда ничему иному не нужен он.

Это все еще интересно и объясняет iowait проблему лучше.

5
27.01.2020, 19:45

Теги

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