Если Ваша оболочка поддерживает его:
"${srcText/XPLACEHOLDERX/$connect}"
Базовая причина позади состоит в том что обычное: ввод-вывод намного медленнее, чем ЦП/RAM. Даже если процессы, делающие операции ввода-вывода, будут использовать DMA (который разгружает ЦП), то в какой-то момент они будут должны, вероятно, ожидать на завершении их запросов.
В самом обычном случае жесткого диска просто добавляют в нескольких приложениях, пытающихся получить доступ к файлам, рассеянным вокруг диска, и можно сделать себя кофе (чай, безотносительно). С SSD поправляется ситуация, но даже SSD - которому измерили пропускную способность в сотнях МБ/с на SATA (по сравнению с десятками МБ/с пластины вращения жесткий диск) и действительно незначительный, ищет, времена (по сравнению с миллисекундами для пластины вращения) - могут стать узким местом.
Проблема насколько я понимаю не находится только в самой передаче данных, но и в необходимых издержках - вводом-выводом управляет ядро, но только редко происходит без пространства пользователя. Таким образом может быть много контекстных переключений, только из приложений, ожидающих на вводе-выводе, проверяющем, происходит ли что-то (зависит от реализации, конечно). В случае дисковых передач может быть несколько потоков ядра, конкурирующих за ресурсы или активное ожидание (который иногда является правильной стратегией). Помните, например, копирование данных от одного раздела до другого требует современной файловой системы к: узнайте, где исходные данные, считайте его, выделите место в системе конечного файла, запишите метаданные, запишите данные, повторитесь, пока не закончено.
И если, в какой-то момент, Ваша система начинает подкачивать (который обычно имеет более высокий приоритет, чем регулярный ввод-вывод), авария завершена.
Править: После говорящий с некоторыми разработчиками ядра Linux ситуация стала немного более ясной. Основной проблемой является планировщик ввода-вывода, который не имеет большой идеи о который ввод-вывод расположить по приоритетам. Следовательно любой ввод данных пользователем и после вывода графических данных совместно использует очередь с диском/сетевой активностью. В результате этого это может также произойти, который это может выбросить кэшируемый, обрабатывают данные от кэша страницы (например, загруженные библиотеки), когда это приходит к заключению, что может использовать кэш страницы эффективнее на другом вводе-выводе. Это, конечно, означает, что, после того как тот код должен быть выполнен снова, он должен будет быть выбран снова - формируют диск, который уже может находиться под большой нагрузкой.
Тем не менее насколько ядро Linux идет, многие из этих проблем были недавно устранены (проблема была известна), поэтому скажите 4.4.x, или 4.5.x должен вести себя лучше, что это привыкло для, и о проблемах нужно сообщить (обычно, люди ядра счастливы, когда кто-то хочет помочь созданием отчетов ошибки и тестированием).
Мой опыт состоит в том, что одно только действие ввода-вывода не замедляет систему. Этот эффект происходит, когда для других задач нужен ввод-вывод, также. Ситуация станет действительно злой, если система подкачает (вызванный к), и Вы вызываете тяжелую загрузку ввода-вывода затем.
Можно влиять на влияние ввода-вывода тяжелые задачи ionice
. Если Вы помещаете их в idle
приоритет затем задержка для других задач может все еще увеличиться, но не вне минимума. Задача ввода-вывода сразу прервана, если у другого (ненеактивное) задача есть ввод-вывод, чтобы сделать. Если Вы используете планировщик, который поддерживает эти настройки.
Посмотрите Выбор Планировщика ввода-вывода Linux
awesome
кажется, работает немного лучше, чемkwin
в этом смысле). – peterph 04.03.2016, 23:08xsession-errors
/Xorg.ₙ.log
? Вход только буферизуется, не прерывая к работе WM?Что-нибудь еще? UPD: Я просто изучил/proc/AwesomePID/fd
— единственный файл, который открыли мои WM,xsession-errors
. Все остальное не действительно файл — сокеты,/dev/null
,/proc/stat
… – Hi-Angel 05.03.2016, 08:18