Я задавался вопросом это долгое время, думали, что я мог бы дать выстрел, спросив это здесь.
Сценарий:
Я использую приложение, которое использовало много ресурсов (например, отображают пакетную обработку или компилирующий/выполняющий много приложений),
Закройте голодные ресурса приложения
Ubuntu все еще значительно медленнее, чем перед голодными ресурса приложениями была запущена*
* я имею в виду, 'вершина' указывает на низкое использование CPU, пока я не делаю что-то (как тривиальный как открытие вкладки или чего-то), и мое использование CPU пронзает немедленно. Я заметил это на нескольких полях Ubuntu, которыми я владею.
Перезагрузка является единственным решением, которое я нашел. Какова причина позади этого?
Править: немного больше информации о моем ноутбуке: Dell Studio 1558, Intel i5, Поршень DDR3 на 8 ГБ, жесткий диск на 7 200 об/мин
Это действительно типичная ситуация, и наиболее вероятной причиной является перестановка памяти. Посмотрите на использование памяти.
Ваша ресурсоемкая задача A, вероятно, использовала значительный объем оперативной памяти. Следовательно, другое приложение B было перенесено на диск. Процессор может быстро изменить свой контекст обратно с A на B, вы не должны чувствовать каких-либо задержек, вызвавших загрузку процессора после выхода из A. Однако приложение B больше не полностью удерживается в физической памяти. Таким образом, тривиальные задачи внутри A могут потребовать загрузки памяти, используемой приложением A, обратно в физическую RAM.
Аналогичная ситуация возникает, когда ресурсоемкая задача считывает и записывает много / больших файлов с / на жесткий диск, поскольку Linux обычно использует память для кэширования дискового ввода-вывода. (Это означает, что задание A будет завершено до того, как файлы будут переданы на физический жесткий диск. Процесс медленной записи откладывается до тех пор, пока Linux не потребуется освободить память для других приложений.)
Оба процесса (подкачка и кэширование диска) привязаны к вводу / выводу (ограничены скоростью чтения / записи вашего жесткого диска, а не процессором). Тем не менее, они могут вызвать определенные вычислительные затраты.
Теоретически, через некоторое время после выхода из А приложение B должно автоматически вернуться к нормальной скорости. Вместо перезагрузки может помочь перезапустить приложение B.
Есть несколько вероятных причин для этого. Если у вас одноядерный процессор и относительно низкий объем оперативной памяти, это еще более вероятно.
Вероятно, происходит следующее:
Подстройка значения swappiness
может помочь, если ваша система слишком агрессивно переключается. Это не поможет, если у вас фактически не хватает памяти и ядро вынуждено поменяться местами, но если у вас достаточно памяти и ядро начинает без необходимости менять местами, это может произойти.
См. Ubuntu SwapFaq . Выдержка ниже:
Параметр swappiness контролирует стремление ядра перемещать процессы из физической памяти на диск подкачки. Поскольку диски намного медленнее ОЗУ, это может привести к более медленному времени отклика для системы и приложений, если процессы слишком агрессивно перемещаются из памяти.
- swappiness может иметь значение от 0 до 100
- swappiness = 0 указывает ядру избегать процессов вытеснения из физической памяти как можно дольше
- swappiness = 100 говорит ядру агрессивно выгружать процессы из физической памяти и перемещать их в кеш подкачки
В Ubuntu по умолчанию используется swappiness = 60. Снижение значения swappiness по умолчанию, вероятно, улучшит общую производительность типовой установки Ubuntu на рабочем столе. Рекомендуется значение swappiness = 10, но не стесняйтесь экспериментировать. Примечание. Установки сервера Ubuntu предъявляют различные требования к производительности для настольных систем, и значение по умолчанию 60, вероятно, более подходит.
blockquote>
Существует аналогичный вопрос о потреблении всей памяти здесь .
Как один из них ответил:
Кажется, что, как только Ubuntu начинает использовать swap, она не освобождает ОЗУ легко даже после завершения операции.
blockquote>Чтобы заставить систему высвобождать все данные в разделе подкачки обратно в память, есть много похожих ответов:
- Операции с диском, занимающие всю память - Ask Ubuntu [ 114]
- Какую команду можно использовать для принудительного освобождения всего содержимого раздела подкачки обратно в память? - Unix & amp; Linux Stack Exchange
- Безопасно ли постоянно отключать своп? - Спросите Ubuntu
Согласно ответам выше, вы можете очистить swap следующим образом:
sudo swapoff -a sudo swapon -a
Это отключает swap, во время которого все что в swap передается в RAM и повторно -включает это. Производительность компьютера должна вернуться к нормальной в настоящее время.
Для получения дополнительной информации о
swapoff
иswapon
см. Справочную страницу по следующей ссылке:Ubuntu Manpage: swapon, swapoff - включить / отключить устройства и файлы для подкачки и замены