Каким образом Ubuntu замедлена даже после того, как все голодные ресурса приложения вышли

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

Сценарий:

  1. Я использую приложение, которое использовало много ресурсов (например, отображают пакетную обработку или компилирующий/выполняющий много приложений),

  2. Закройте голодные ресурса приложения

  3. Ubuntu все еще значительно медленнее, чем перед голодными ресурса приложениями была запущена*

* я имею в виду, 'вершина' указывает на низкое использование CPU, пока я не делаю что-то (как тривиальный как открытие вкладки или чего-то), и мое использование CPU пронзает немедленно. Я заметил это на нескольких полях Ubuntu, которыми я владею.

Перезагрузка является единственным решением, которое я нашел. Какова причина позади этого?

Править: немного больше информации о моем ноутбуке: Dell Studio 1558, Intel i5, Поршень DDR3 на 8 ГБ, жесткий диск на 7 200 об/мин

3
задан 22 December 2011 в 09:37

4 ответа

Это действительно типичная ситуация, и наиболее вероятной причиной является перестановка памяти. Посмотрите на использование памяти.

Ваша ресурсоемкая задача A, вероятно, использовала значительный объем оперативной памяти. Следовательно, другое приложение B было перенесено на диск. Процессор может быстро изменить свой контекст обратно с A на B, вы не должны чувствовать каких-либо задержек, вызвавших загрузку процессора после выхода из A. Однако приложение B больше не полностью удерживается в физической памяти. Таким образом, тривиальные задачи внутри A могут потребовать загрузки памяти, используемой приложением A, обратно в физическую RAM.

Аналогичная ситуация возникает, когда ресурсоемкая задача считывает и записывает много / больших файлов с / на жесткий диск, поскольку Linux обычно использует память для кэширования дискового ввода-вывода. (Это означает, что задание A будет завершено до того, как файлы будут переданы на физический жесткий диск. Процесс медленной записи откладывается до тех пор, пока Linux не потребуется освободить память для других приложений.)

Оба процесса (подкачка и кэширование диска) привязаны к вводу / выводу (ограничены скоростью чтения / записи вашего жесткого диска, а не процессором). Тем не менее, они могут вызвать определенные вычислительные затраты.

Теоретически, через некоторое время после выхода из А приложение B должно автоматически вернуться к нормальной скорости. Вместо перезагрузки может помочь перезапустить приложение B.

0
ответ дан 22 December 2011 в 09:37

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

Вероятно, происходит следующее:

  • Ваша система начинает использовать подкачку, когда ОЗУ перегружается, она может «перебивать» (сбрасывать ОЗУ на диск) перед закрытием тяжелых приложений, и затем ему трудно восстановиться.
  • Возможно, у вас высокий уровень ожидания ввода-вывода (процессор ожидает ответа).
  • Тяжелые приложения, которые вы бросили, будут очищены. Лучше всего ненадолго покинуть систему и подождать, пока она восстановится.
0
ответ дан 22 December 2011 в 09:37

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

См. Ubuntu SwapFaq . Выдержка ниже:

Параметр swappiness контролирует стремление ядра перемещать процессы из физической памяти на диск подкачки. Поскольку диски намного медленнее ОЗУ, это может привести к более медленному времени отклика для системы и приложений, если процессы слишком агрессивно перемещаются из памяти.

  • swappiness может иметь значение от 0 до 100
  • swappiness = 0 указывает ядру избегать процессов вытеснения из физической памяти как можно дольше
  • swappiness = 100 говорит ядру агрессивно выгружать процессы из физической памяти и перемещать их в кеш подкачки

В Ubuntu по умолчанию используется swappiness = 60. Снижение значения swappiness по умолчанию, вероятно, улучшит общую производительность типовой установки Ubuntu на рабочем столе. Рекомендуется значение swappiness = 10, но не стесняйтесь экспериментировать. Примечание. Установки сервера Ubuntu предъявляют различные требования к производительности для настольных систем, и значение по умолчанию 60, вероятно, более подходит.

0
ответ дан 22 December 2011 в 09:37

Существует аналогичный вопрос о потреблении всей памяти здесь .

Как один из них ответил:

Кажется, что, как только Ubuntu начинает использовать swap, она не освобождает ОЗУ легко даже после завершения операции.

Чтобы заставить систему высвобождать все данные в разделе подкачки обратно в память, есть много похожих ответов:

Согласно ответам выше, вы можете очистить swap следующим образом:

sudo swapoff -a
sudo swapon -a

Это отключает swap, во время которого все что в swap передается в RAM и повторно -включает это. Производительность компьютера должна вернуться к нормальной в настоящее время.

Для получения дополнительной информации о swapoff и swapon см. Справочную страницу по следующей ссылке:

Ubuntu Manpage: swapon, swapoff - включить / отключить устройства и файлы для подкачки и замены

0
ответ дан 22 December 2011 в 09:37

Другие вопросы по тегам:

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