I / O приносит машину на колени

Почему в каждом Linux, который я использовал, когда программа действительно привязана к вводу / выводу, она запускает машину? Это произошло, когда я (случайно) попытался сделать gcc скомпилировать (действительный!) Файл 50Mb C. GCC был настолько интенсивным в / в, что он поставил машину на колени.

Еще один момент: когда apt-get или подобное загружают пакеты, иногда я даже не могу получить доступ к интернету, все запросы на время истекают.

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

Это из-за дизайнерского решения? Если да, то в любом случае я могу изменить это поведение?

( пожалуйста, не воспринимайте это как критику Linux )

Извините, этот вопрос слишком широк для решения. Здесь мы можем реально заниматься конкретными проблемами. Существует множество причин, почему это происходит. Пользователь часто плохо понимает низкую производительность.

  • Вышла ли система из ОЗУ?
  • у него медленный жесткий диск?
  • Оптимально ли оптимальная настройка системы?

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

Чтобы отладить эту «проблему» дальше, придется свернуть свои рукава и начать копать сначала:

  • определяя, что делает система во время этого события.
  • Имеется ли достаточное количество ОЗУ?
  • Используется ли своп?
  • Существуют ли другие процессы, конкурирующие за конечный набор ресурсов в системе?
  • На самом деле время «медленного» запуска процесса и сравнение воспринимаемых различий во времени выполнения
  • какие ресурсы мой процесс пытается использовать? HDD? ОЗУ? Сколько?

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