Я думал, что вся суть подкачки заключается в том, чтобы действовать как временная сеть безопасности хранения, когда ОЗУ переполнена, но мой раздел подкачки постоянно используется, хотя иногда у меня есть до 3 ГБ свободной ОЗУ. Это нормально?
Вы можете попробовать изменить значение «swappiness»:
Что такое swappiness и как его использовать? изменить его?
Параметр swappiness контролирует стремление ядра перемещать процессы из физической памяти на диск подкачки. Поскольку диски намного медленнее, чем ОЗУ, это может привести к снижению времени отклика для системы и приложений, если процессы слишком агрессивно перемещаются из памяти.
- swappiness может иметь значение от 0 до 100
- swappiness = 0 говорит ядру, чтобы как можно дольше не выгружать процессы из физической памяти
- swappiness = 100 говорит ядру агрессивно выгружать процессы из физической памяти и перемещать их в кэш подкачки
В Ubuntu по умолчанию установлено значение swappiness = 60. Снижение значения swappiness по умолчанию, вероятно, улучшит общую производительность для типичной установки Ubuntu на рабочем столе. Рекомендуется значение swappiness = 10, но не стесняйтесь экспериментировать. Примечание. Установки сервера Ubuntu предъявляют различные требования к производительности для настольных систем, и значение по умолчанию, вероятно, более подходит.
Чтобы проверить значение подкачки
cat /proc/sys/vm/swappiness
Чтобы изменить значение подкачки Временное изменение (потерянное при перезагрузке) со значением подкачки 10 можно сделать с помощью
sudo sysctl vm.swappiness=10
Чтобы сделать изменение постоянным, отредактируйте файл конфигурации в своем любимом редакторе:
gksudo gedit /etc/sysctl.conf
Найдите vm.swappiness и измените его значение по желанию. Если vm.swappiness не существует, добавьте его в конец файла следующим образом:
vm.swappiness=10
Сохраните файл и перезагрузитесь.
Также вы можете проверить: https://askubuntu.com/a/103916/54187
Вы можете попробовать изменить значение «swappiness»:
Что такое swappiness и как его использовать изменить его?
Параметр swappiness контролирует стремление ядра перемещать процессы из физической памяти на диск подкачки. Поскольку диски намного медленнее, чем ОЗУ, это может привести к снижению времени отклика для системы и приложений, если процессы слишком агрессивно перемещаются из памяти.
- swappiness может иметь значение от 0 до 100
- swappiness = 0 говорит ядру, чтобы как можно дольше не выгружать процессы из физической памяти
- swappiness = 100 говорит ядру агрессивно выгружать процессы из физической памяти и перемещать их в кэш подкачки
В Ubuntu по умолчанию установлено значение swappiness = 60. Снижение значения swappiness по умолчанию, вероятно, улучшит общую производительность для типичной установки Ubuntu на рабочем столе. Рекомендуется значение swappiness = 10, но вы можете экспериментировать. Примечание. Установки сервера Ubuntu предъявляют различные требования к производительности для настольных систем, и значение по умолчанию, вероятно, более подходит.
Чтобы проверить значение подкачки
cat /proc/sys/vm/swappiness
Чтобы изменить значение подкачки Временное изменение (потерянное при перезагрузке) со значением подкачки 10 можно сделать с помощью
sudo sysctl vm.swappiness=10
Чтобы сделать изменение постоянным, отредактируйте файл конфигурации в своем любимом редакторе:
gksudo gedit /etc/sysctl.conf
Найдите vm.swappiness и измените его значение по желанию. Если vm.swappiness не существует, добавьте его в конец файла следующим образом:
vm.swappiness=10
Сохраните файл и перезагрузитесь.
Также вы можете проверить: https://askubuntu.com/a/103916/54187
Вы можете попробовать изменить значение «swappiness»:
Что такое swappiness и как его использовать? изменить его?
Параметр swappiness контролирует стремление ядра перемещать процессы из физической памяти на диск подкачки. Поскольку диски намного медленнее, чем ОЗУ, это может привести к снижению времени отклика для системы и приложений, если процессы слишком агрессивно перемещаются из памяти.
- swappiness может иметь значение от 0 до 100
- swappiness = 0 говорит ядру, чтобы как можно дольше не выгружать процессы из физической памяти
- swappiness = 100 говорит ядру агрессивно выгружать процессы из физической памяти и перемещать их в кэш подкачки
В Ubuntu по умолчанию установлено значение swappiness = 60. Снижение значения swappiness по умолчанию, вероятно, улучшит общую производительность для типичной установки Ubuntu на рабочем столе. Рекомендуется значение swappiness = 10, но не стесняйтесь экспериментировать. Примечание. Установки сервера Ubuntu предъявляют различные требования к производительности для настольных систем, и значение по умолчанию, вероятно, более подходит.
Чтобы проверить значение подкачки
cat /proc/sys/vm/swappiness
Чтобы изменить значение подкачки Временное изменение (потерянное при перезагрузке) со значением подкачки 10 можно сделать с помощью
sudo sysctl vm.swappiness=10
Чтобы сделать изменение постоянным, отредактируйте файл конфигурации в своем любимом редакторе:
gksudo gedit /etc/sysctl.conf
Найдите vm.swappiness и измените его значение по желанию. Если vm.swappiness не существует, добавьте его в конец файла следующим образом:
vm.swappiness=10
Сохраните файл и перезагрузитесь.
Также вы можете проверить: https://askubuntu.com/a/103916/54187
Вы можете попробовать изменить значение «swappiness»:
Что такое swappiness и как его использовать? изменить его?
Параметр swappiness контролирует стремление ядра перемещать процессы из физической памяти на диск подкачки. Поскольку диски намного медленнее, чем ОЗУ, это может привести к снижению времени отклика для системы и приложений, если процессы слишком агрессивно перемещаются из памяти.
- swappiness может иметь значение от 0 до 100
- swappiness = 0 говорит ядру, чтобы как можно дольше не выгружать процессы из физической памяти
- swappiness = 100 говорит ядру агрессивно выгружать процессы из физической памяти и перемещать их в кэш подкачки
В Ubuntu по умолчанию установлено значение swappiness = 60. Снижение значения swappiness по умолчанию, вероятно, улучшит общую производительность для типичной установки Ubuntu на рабочем столе. Рекомендуется значение swappiness = 10, но не стесняйтесь экспериментировать. Примечание. Установки сервера Ubuntu предъявляют различные требования к производительности для настольных систем, и значение по умолчанию, вероятно, более подходит.
Чтобы проверить значение подкачки
cat /proc/sys/vm/swappiness
Чтобы изменить значение подкачки Временное изменение (потерянное при перезагрузке) со значением подкачки 10 можно сделать с помощью
sudo sysctl vm.swappiness=10
Чтобы сделать изменение постоянным, отредактируйте файл конфигурации в своем любимом редакторе:
gksudo gedit /etc/sysctl.conf
Найдите vm.swappiness и измените его значение по желанию. Если vm.swappiness не существует, добавьте его в конец файла следующим образом:
vm.swappiness=10
Сохраните файл и перезагрузитесь.
Также вы можете проверить: https://askubuntu.com/a/103916/54187
Вы можете попробовать изменить значение «swappiness»:
Что такое swappiness и как его использовать? изменить его?
Параметр swappiness контролирует стремление ядра перемещать процессы из физической памяти на диск подкачки. Поскольку диски намного медленнее, чем ОЗУ, это может привести к снижению времени отклика для системы и приложений, если процессы слишком агрессивно перемещаются из памяти.
- swappiness может иметь значение от 0 до 100
- swappiness = 0 говорит ядру, чтобы как можно дольше не выгружать процессы из физической памяти
- swappiness = 100 говорит ядру агрессивно выгружать процессы из физической памяти и перемещать их в кэш подкачки
В Ubuntu по умолчанию установлено значение swappiness = 60. Снижение значения swappiness по умолчанию, вероятно, улучшит общую производительность для типичной установки Ubuntu на рабочем столе. Рекомендуется значение swappiness = 10, но не стесняйтесь экспериментировать. Примечание. Установки сервера Ubuntu предъявляют различные требования к производительности для настольных систем, и значение по умолчанию, вероятно, более подходит.
Чтобы проверить значение подкачки
cat /proc/sys/vm/swappiness
Чтобы изменить значение подкачки Временное изменение (потерянное при перезагрузке) со значением подкачки 10 можно сделать с помощью
sudo sysctl vm.swappiness=10
Чтобы сделать изменение постоянным, отредактируйте файл конфигурации в своем любимом редакторе:
gksudo gedit /etc/sysctl.conf
Найдите vm.swappiness и измените его значение по желанию. Если vm.swappiness не существует, добавьте его в конец файла следующим образом:
vm.swappiness=10
Сохраните файл и перезагрузитесь.
Также вы можете проверить: https://askubuntu.com/a/103916/54187
Вы можете попробовать изменить значение «swappiness»:
Что такое swappiness и как его использовать? изменить его?
Параметр swappiness контролирует стремление ядра перемещать процессы из физической памяти на диск подкачки. Поскольку диски намного медленнее, чем ОЗУ, это может привести к снижению времени отклика для системы и приложений, если процессы слишком агрессивно перемещаются из памяти.
- swappiness может иметь значение от 0 до 100
- swappiness = 0 говорит ядру, чтобы как можно дольше не выгружать процессы из физической памяти
- swappiness = 100 говорит ядру агрессивно выгружать процессы из физической памяти и перемещать их в кэш подкачки
В Ubuntu по умолчанию установлено значение swappiness = 60. Снижение значения swappiness по умолчанию, вероятно, улучшит общую производительность для типичной установки Ubuntu на рабочем столе. Рекомендуется значение swappiness = 10, но не стесняйтесь экспериментировать. Примечание. Установки сервера Ubuntu предъявляют различные требования к производительности для настольных систем, и значение по умолчанию, вероятно, более подходит.
Проверка значения подкачки
cat /proc/sys/vm/swappiness
Чтобы изменить значение подкачки Временное изменение (потерянное при перезагрузке) со значением подкачки 10 можно сделать с помощью
sudo sysctl vm.swappiness=10
Чтобы сделать изменение постоянным, отредактируйте файл конфигурации в своем любимом редакторе:
gksudo gedit /etc/sysctl.conf
Найдите vm.swappiness и измените его значение по желанию. Если vm.swappiness не существует, добавьте его в конец файла следующим образом:
vm.swappiness=10
Сохраните файл и перезагрузитесь.
Также вы можете проверить: https://askubuntu.com/a/103916/54187
Вы можете попробовать изменить значение «swappiness»:
Что такое swappiness и как его использовать? изменить его?
Параметр swappiness контролирует стремление ядра перемещать процессы из физической памяти на диск подкачки. Поскольку диски намного медленнее, чем ОЗУ, это может привести к снижению времени отклика для системы и приложений, если процессы слишком агрессивно перемещаются из памяти.
- swappiness может иметь значение от 0 до 100
- swappiness = 0 говорит ядру, чтобы как можно дольше не выгружать процессы из физической памяти
- swappiness = 100 говорит ядру агрессивно выгружать процессы из физической памяти и перемещать их в кэш подкачки
В Ubuntu по умолчанию установлено значение swappiness = 60. Снижение значения swappiness по умолчанию, вероятно, улучшит общую производительность для типичной установки Ubuntu на рабочем столе. Рекомендуется значение swappiness = 10, но не стесняйтесь экспериментировать. Примечание. Установки сервера Ubuntu предъявляют различные требования к производительности для настольных систем, и значение по умолчанию, вероятно, более подходит.
Проверка значения подкачки
cat /proc/sys/vm/swappiness
Чтобы изменить значение подкачки Временное изменение (потерянное при перезагрузке) со значением подкачки 10 можно сделать с помощью
sudo sysctl vm.swappiness=10
Чтобы сделать изменение постоянным, отредактируйте файл конфигурации в своем любимом редакторе:
gksudo gedit /etc/sysctl.conf
Найдите vm.swappiness и измените его значение по желанию. Если vm.swappiness не существует, добавьте его в конец файла следующим образом:
vm.swappiness=10
Сохраните файл и перезагрузитесь.
Также вы можете проверить: https://askubuntu.com/a/103916/54187
Вы можете попробовать изменить значение «swappiness»:
Что такое swappiness и как его использовать? изменить его?
Параметр swappiness контролирует стремление ядра перемещать процессы из физической памяти на диск подкачки. Поскольку диски намного медленнее, чем ОЗУ, это может привести к снижению времени отклика для системы и приложений, если процессы слишком агрессивно перемещаются из памяти.
- swappiness может иметь значение от 0 до 100
- swappiness = 0 говорит ядру, чтобы как можно дольше не выгружать процессы из физической памяти
- swappiness = 100 говорит ядру агрессивно выгружать процессы из физической памяти и перемещать их в кэш подкачки
В Ubuntu по умолчанию установлено значение swappiness = 60. Снижение значения swappiness по умолчанию, вероятно, улучшит общую производительность для типичной установки Ubuntu на рабочем столе. Рекомендуется значение swappiness = 10, но не стесняйтесь экспериментировать. Примечание. Установки сервера Ubuntu предъявляют различные требования к производительности для настольных систем, и значение по умолчанию, вероятно, более подходит.
Чтобы проверить значение подкачки
cat /proc/sys/vm/swappiness
Чтобы изменить значение подкачки Временное изменение (потерянное при перезагрузке) со значением подкачки 10 можно сделать с помощью
sudo sysctl vm.swappiness=10
Чтобы сделать изменение постоянным, отредактируйте файл конфигурации в своем любимом редакторе:
gksudo gedit /etc/sysctl.conf
Найдите vm.swappiness и измените его значение по желанию. Если vm.swappiness не существует, добавьте его в конец файла следующим образом:
vm.swappiness=10
Сохраните файл и перезагрузитесь.
Также вы можете проверить: https://askubuntu.com/a/103916/54187
Вы можете попробовать изменить значение «swappiness»:
Что такое swappiness и как его использовать изменить его?
Параметр swappiness контролирует стремление ядра перемещать процессы из физической памяти на диск подкачки. Поскольку диски намного медленнее, чем ОЗУ, это может привести к снижению времени отклика для системы и приложений, если процессы слишком агрессивно перемещаются из памяти.
- swappiness может иметь значение от 0 до 100
- swappiness = 0 говорит ядру, чтобы как можно дольше не выгружать процессы из физической памяти
- swappiness = 100 говорит ядру агрессивно выгружать процессы из физической памяти и перемещать их в кэш подкачки
В Ubuntu по умолчанию установлено значение swappiness = 60. Снижение значения swappiness по умолчанию, вероятно, улучшит общую производительность для типичной установки Ubuntu на рабочем столе. Рекомендуется значение swappiness = 10, но вы можете экспериментировать. Примечание. Установки сервера Ubuntu предъявляют различные требования к производительности для настольных систем, и значение по умолчанию, вероятно, более подходит.
Чтобы проверить значение подкачки
cat /proc/sys/vm/swappiness
Чтобы изменить значение подкачки Временное изменение (потерянное при перезагрузке) со значением подкачки 10 можно сделать с помощью
sudo sysctl vm.swappiness=10
Чтобы сделать изменение постоянным, отредактируйте файл конфигурации в своем любимом редакторе:
gksudo gedit /etc/sysctl.conf
Найдите vm.swappiness и измените его значение по желанию. Если vm.swappiness не существует, добавьте его в конец файла следующим образом:
vm.swappiness=10
Сохраните файл и перезагрузитесь.
Также вы можете проверить: https://askubuntu.com/a/103916/54187
есть несколько различных аспектов вашего вопроса.
во-первых, что ваше определение "свободный". Это на самом деле не так проста, как это звучит в Linux (или любой современной операционной системы).
как Linux использует оперативную память (очень упрощенный)
каждое приложение может использовать некоторые из вашей памяти. Linux использует все иначе незанятой памяти (за исключением последних нескольких Мб) как "кэш". Это включает в страница кэш, кеш inode и т. д. Это хорошо - она помогает ускорить кучи. Обе записи на диск и чтения с диска можно ускорить безмерно кэш.
в идеале у вас достаточно памяти для всех ваших приложений, и вы еще несколько сотен Мб осталось для кэша. В этой ситуации, пока Ваши заявки не увеличит их использования памяти и система не борется, чтобы получить достаточно пространства для кэша, нет необходимости для любой замены.
однажды исковых заявлений больше оперативной памяти, оно просто переходит в пространство, которое было использовано кэш, сжатие кэша. Де-выделения кэш-это дешевый и достаточно легкий, что это просто делается в реальном времени - все, что сидит в кэше либо просто вторую копию того, что уже на диске, так что можете просто быть освобождена мгновенно, или это то, что мы имели бы для очистки диска в течение нескольких секунд все иначе незанятой памяти.
это не та ситуация, что является специфичным для Linux - все современные операционные системы работают таким образом. В разных операционных системах может просто отчет свободной оперативной памяти по-разному: некоторые включают в себя кэш как часть того, что они считают "свободными", а некоторые не могут.
когда вы говорите о свободной оперативной памяти, это намного более значимым для включения кэша, потому что он практически бесплатный - это если какие-либо приложения. В Linux, [Ф1] команда сообщает его в обе стороны - первая линия включает в кэше в оперативной памяти столбец и вторая строка включает кэш (и буферы), в свободном столбце.
как Linux использует оперативную память (очень упрощенный)
после того как вы использовали достаточно памяти, что там не хватает для бесперебойной работы кэш-памяти, Линукс может принять решение о перераспределении некоторых неиспользуемых память приложений из оперативной памяти в своп.
он не делает этого по определенной отсечки. Это не так, как вы достигнете определенного процента распределения, то Linux начинает обменивать. Оно имеет довольно "алгоритм". Это занимает много вещей во внимание, которые может лучше всего быть описана "как есть для выделения памяти". Если есть большое "давление", чтобы выделить новую память, то это увеличит шансы некоторые будут заменены, чтобы сделать больше места. Если будет меньше "давление", то это уменьшит эти шансы.
ваша система имеет "подкачки" настройки, который поможет вам настроить, как это "давление" рассчитывается. Это обычно не рекомендуется изменять это, и я бы не советовал вам изменить его. Обмен-это в целом очень хорошо, хотя есть несколько пограничных случаев, когда это вредит производительности, если вы посмотрите на общей производительности системы это чистая выгода для широкого диапазона задач. Если уменьшить это поведение, вы позволяете объем кэш-памяти сжать немного сильнее, чем другие, даже если это действительно может быть полезной. Является ли это достаточно хороший компромисс для любой проблемы вы испытываете с перекачкой до вас. Вы должны просто знать, что ты делаешь, вот и все.
[dиода d17]хорошо известны ситуации, в которых своп действительно вредит производительности на настольном компьютере, а вот в том, как быстро приложения могут реагировать на пользовательский ввод снова после простоя в течение длительного времени и имеющих тяжелые фоновые процессы в ИО (например на ночь резервного копирования) запустить. Это очень видимой вялости, но не достаточно, чтобы оправдать отключение свопа все вместе и очень трудно предотвратить в любой операционной системе. Отключить своп и эта первоначальная вялость после вирусов резервное копирование/сканирование может не произойти, но система может работать немного медленнее всего дня. Это не та ситуация, чтобы ограниченная на Linux, либо.[!dиода d17]при выборе того, что необходимо заменить диск, система пытается выбрать памяти, который фактически не используется - читать или написанные от. Он имеет довольно простой алгоритм вычисления это, что выбирает хорошо большую часть времени.
если у вас есть система, где у вас есть огромное количество оперативной памяти (на момент написания статьи, 8 ГБ-это огромная сумма для обычной дистром линукса), то вы будете очень редко когда-либо попали в ситуацию, когда своп вообще нужен. Вы можете даже попробовать включить своп выключен. Я никогда не рекомендую делать это, но только потому, что вы никогда не знаете, когда больше оперативной памяти может избавить вас от некоторых сбоев приложения. Но если ты знаешь, что ты не собираешься это нужно, вы включить сделать это.
но как поменять ускорить систему? Не меняя притормозить?
акт передачи данных из оперативной памяти в своп-медленная операция, но это только когда ядро почти уверен, что общая выгода перевешивают. Например, если приложение памяти возросла до такой степени, что у вас почти нет кэша влево и ввода/вывода является очень неэффективным из-за этого вы можете на самом деле получить гораздо больше скорости из вашей системы, освободив память, даже после того, как первоначальные затраты на обмен данными для того, чтобы освободить его.
это последнее средство, ваши приложения, на самом деле запрашивают больше памяти, чем вы есть на самом деле. В этом случае замена необходима для предотвращения нехватки памяти ситуацию, которая часто возникает сбой приложения или насильно убитых.
, меняя только далее со временем, когда ваша система работает плохо, потому что это происходит в то время, когда вы работаете из доступной оперативной памяти, которая будет замедлять работу системы (или сделать его неустойчивым) даже если у вас не было замены. Поэтому, чтобы упростить вещи, подкачка происходит потому, что ваша система не "увязли", а не наоборот.
но как поменять ускорить систему? Не меняя притормозить?
перенос данных из свопа (для традиционных жестких дисков, по крайней мере) просто отнимает много времени, как положить его туда. Так понятно, что ваше ядро будет так, как хочет, чтобы удалить данные из свопа, особенно если это на самом деле не используется (т. е. чтения или записи). Если у вас есть данные в своп, и это не используется, то это на самом деле хорошо, что он остается в своп, так как он оставляет больше памяти для других вещей, которые , потому что используется, потенциально ускорить вашу систему.
Установка значения swappiness не работает в каждой ситуации. Если это сработает для вас, отлично. Если нет, я написал сценарий, чтобы периодически очищать своп, выключая его и снова включая.
Переключение swap немного рискованно, если вы не будете осторожны. Если у вас недостаточно свободной оперативной памяти для хранения всего в ОЗУ плюс все в свопе, попытка отключить своп приведет к тому, что ваша система перестанет реагировать. Мой скрипт сначала проверяет, достаточно ли свободной ОЗУ (что занимает немного времени, поскольку фактическое количество свободной ОЗУ отличается от того, что free сообщает как бесплатное), тогда только переключает swap, если это так. Но, если вы немного отстаете от ОЗУ, не запускайте еще один важный процесс во время работы скрипта. Вот он:
#!/bin/bash
# Make sure that all text is parsed in the same language
export LC_MESSAGES=en_US.UTF-8
export LC_COLLATE=en_US.UTF-8
export LANG=en_US.utf8
export LANGUAGE=en_US:en
export LC_CTYPE=en_US.UTF-8
# Calculate how much memory and swap is free
free_data="$(free)"
mem_data="$(echo "$free_data" | grep 'Mem:')"
free_mem="$(echo "$mem_data" | awk '{print $4}')"
buffers="$(echo "$mem_data" | awk '{print $6}')"
cache="$(echo "$mem_data" | awk '{print $7}')"
total_free=$((free_mem + buffers + cache))
used_swap="$(echo "$free_data" | grep 'Swap:' | awk '{print $3}')"
echo -e "Free memory:\t$total_free kB ($((total_free / 1024)) MB)\nUsed swap:\t$used_swap kB ($((used_swap / 1024)) MB)"
# Do the work
if [[ $used_swap -eq 0 ]]; then
echo "Congratulations! No swap is in use."
elif [[ $used_swap -lt $total_free ]]; then
echo "Freeing swap..."
swapoff -a
swapon -a
else
echo "Not enough free memory. Exiting."
exit 1
fi
Вы должны запустить этот скрипт как root (например, с помощью sudo). Этот скрипт не оставит вашу систему невосприимчивой; если у вас недостаточно ОЗУ, он откажется переключать swap. Я использовал этот скрипт без проблем уже около пяти лет.
Обычно своп остается неиспользуемым в современных системах. По моему опыту, процессы, которые работают в течение длительного времени без интенсивных операций, переносятся на swap с помощью linux. Это заставляет несколько затронутых программ работать медленно. Если у вас много свободного места, вы можете отключить своп, выполнив команду: swapoff -av (для этого вам понадобятся права sudo.) Если вам не нравится своп, вы можете включить его , используя симметричную команду: swapon -av (требуется еще sudo).
Как только swap был использован для программы, он имеет тенденцию оставаться отображаемым для жизни программы. Многие программы имеют код (и данные), который редко используется. После того, как память будет заменена, вряд ли она будет заменена.
Один из способов заставить эти страницы в памяти отключить обмен устройство. Если у вас их два, вы можете отключить его, включить его, а затем отключить второй. Если обмен действительно нужен, он будет перемещаться между устройствами. Вы можете просто отключить сменное устройство (или файл), но если вам действительно нужно место подкачки, могут произойти резкие вещи.
Помимо нормальных вещей в памяти, tempfs использует пространство подкачки и будет заменяться как остаток памяти. Если вы запускаете что-то, что требует много временного диска, это может привести к потере страниц. Как только созданные временные файлы больше не будут использоваться через пару минут и будут хорошими кандидатами для перемещения на устройство подкачки.
В крайнем случае вы можете использовать файл как своп-устройство. Это полезно, если вам требуется дополнительное пространство подкачки временно.
Я отредактировал сценарий Скотта Северанса, чтобы он соответствовал новым версиям, которые уже содержат полное доступное поле памяти.
#!/bin/bash
free_mem="$(free | grep 'Mem:' | awk '{print $7}')"
used_swap="$(free | grep 'Swap:' | awk '{print $3}')"
echo -e "Free memory:\t$free_mem kB ($((free_mem / 1024)) MiB)\nUsed swap:\t$used_swap kB ($((used_swap / 1024)) MiB)"
if [[ $used_swap -eq 0 ]]; then
echo "Congratulations! No swap is in use."
elif [[ $used_swap -lt $free_mem ]]; then
echo "Freeing swap..."
sudo swapoff -a
sudo swapon -a
else
echo "Not enough free memory. Exiting."
exit 1
fi
Как только своп используется для программы, он имеет тенденцию оставаться отображенным на весь срок действия программы. Во многих программах есть код (и данные), который редко используется. Как только память выгружается, ее вряд ли можно заменить.
Один из способов заставить эти страницы войти в память - отключить подкачку. устройство. Если у вас есть два, вы можете выключить один, включить его снова, а затем выключить второй. Если своп действительно нужен, он будет перемещаться между устройствами. Вы можете просто отключить устройство подкачки (или файл), но если вам действительно нужно пространство подкачки, могут произойти и радикальные вещи.
Помимо обычных вещей в памяти, tempfs использует пространство подкачки и будет меняться как Остальная часть памяти. Если вы запускаете что-то, что требует много временного диска, это может привести к замене страниц. Созданные временные файлы больше не могут использоваться через пару минут и являются хорошими кандидатами для переноса на устройство подкачки.
В крайнем случае вы можете использовать файл в качестве устройства подкачки. Это полезно, если вам нужно временно дополнительное пространство подкачки.
Я отредактировал скрипт Скотта Северанса , чтобы он соответствовал более новым версиям free, которые уже содержат поле общей доступной памяти.
Обычно своп остается неиспользуемым в современных системах. По моему опыту, процессы, которые выполняются в течение долгого времени без интенсивных операций, переключаются на Linux подкачки. Это приводит к тому, что несколько затронутых программ работают медленно. Если у вас много оперативной памяти, вы можете отключить обмен, выполнив команду: swapoff -av
(вам потребуются права sudo
.) Если вам не нравится отключение, вы можете включить его с использованием симметричной команды: swapon -av
(снова sudo
требуется).
Обычно своп остается неиспользуемым в современных системах. По моему опыту, процессы, которые выполняются в течение долгого времени без интенсивных операций, переключаются на Linux подкачки. Это приводит к тому, что несколько затронутых программ работают медленно. Если у вас много оперативной памяти, вы можете отключить обмен, выполнив команду: swapoff -av
(вам потребуются права sudo
.) Если вам не нравится отключение, вы можете включить его с использованием симметричной команды: swapon -av
(снова sudo
требуется).
Я отредактировал скрипт Скотта Северанса , чтобы он соответствовал более новым версиям free, которые уже содержат поле общей доступной памяти.
Как только своп используется для программы, он имеет тенденцию оставаться отображенным на весь срок действия программы. Во многих программах есть код (и данные), который редко используется. Как только память выгружается, ее вряд ли можно заменить.
Один из способов заставить эти страницы войти в память - отключить подкачку. устройство. Если у вас есть два, вы можете выключить один, включить его снова, а затем выключить второй. Если своп действительно нужен, он будет перемещаться между устройствами. Вы можете просто отключить устройство подкачки (или файл), но если вам действительно нужно пространство подкачки, могут произойти и радикальные вещи.
Помимо обычных вещей в памяти, tempfs использует пространство подкачки и будет меняться как Остальная часть памяти. Если вы запускаете что-то, что требует много временного диска, это может привести к замене страниц. Созданные временные файлы больше не могут использоваться через пару минут и являются хорошими кандидатами для переноса на устройство подкачки.
В крайнем случае вы можете использовать файл в качестве устройства подкачки. Это полезно, если вам нужно временно дополнительное пространство подкачки.
Обычно своп остается неиспользуемым в современных системах. По моему опыту, процессы, которые выполняются в течение долгого времени без интенсивных операций, переключаются на Linux подкачки. Это приводит к тому, что несколько затронутых программ работают медленно. Если у вас много оперативной памяти, вы можете отключить обмен, выполнив команду: swapoff -av
(вам потребуются права sudo
.) Если вам не нравится отключение, вы можете включить его с использованием симметричной команды: swapon -av
(снова sudo
требуется).
Я отредактировал скрипт Скотта Северанса , чтобы он соответствовал более новым версиям free, которые уже включают поле общей доступной памяти.
#!/bin/bash
free_mem="$(free | grep 'Mem:' | awk '{print $7}')"
used_swap="$(free | grep 'Swap:' | awk '{print $3}')"
echo -e "Free memory:\t$free_mem kB ($((free_mem / 1024)) MiB)\nUsed swap:\t$used_swap kB ($((used_swap / 1024)) MiB)"
if [[ $used_swap -eq 0 ]]; then
echo "Congratulations! No swap is in use."
elif [[ $used_swap -lt $free_mem ]]; then
echo "Freeing swap..."
sudo swapoff -a
sudo swapon -a
else
echo "Not enough free memory. Exiting."
exit 1
fi
Как только своп используется для программы, он имеет тенденцию оставаться отображенным на весь срок действия программы. Во многих программах есть код (и данные), который редко используется. Как только память выгружается, ее вряд ли можно заменить.
Один из способов заставить эти страницы войти в память - отключить подкачку. устройство. Если у вас есть два, вы можете выключить один, включить его снова, а затем выключить второй. Если своп действительно нужен, он будет перемещаться между устройствами. Вы можете просто отключить устройство подкачки (или файл), но если вам действительно нужно пространство подкачки, могут произойти и радикальные вещи.
Помимо обычных вещей в памяти, tempfs использует пространство подкачки и будет меняться как Остальная часть памяти. Если вы запускаете что-то, что требует много временного диска, это может привести к замене страниц. Созданные временные файлы больше не могут использоваться через пару минут и являются хорошими кандидатами для переноса на устройство подкачки.
В крайнем случае вы можете использовать файл в качестве устройства подкачки. Это полезно, если вам нужно временно дополнительное пространство подкачки.
Я отредактировал скрипт Скотта Северанса , чтобы он соответствовал более новым версиям free, которые уже содержат поле общей доступной памяти.
Обычно своп остается неиспользуемым в современных системах. По моему опыту, процессы, которые выполняются в течение долгого времени без интенсивных операций, переключаются на Linux подкачки. Это приводит к тому, что несколько затронутых программ работают медленно. Если у вас много оперативной памяти, вы можете отключить обмен, выполнив команду: swapoff -av
(вам потребуются права sudo
.) Если вам не нравится отключение, вы можете включить его с использованием симметричной команды: swapon -av
(снова sudo
требуется).
Как только своп используется для программы, он имеет тенденцию оставаться отображенным на весь срок действия программы. Во многих программах есть код (и данные), который редко используется. Как только память выгружается, ее вряд ли можно заменить.
Один из способов заставить эти страницы войти в память - отключить подкачку. устройство. Если у вас есть два, вы можете выключить один, включить его снова, а затем выключить второй. Если своп действительно нужен, он будет перемещаться между устройствами. Вы можете просто отключить устройство подкачки (или файл), но если вам действительно нужно пространство подкачки, могут произойти и радикальные вещи.
Помимо обычных вещей в памяти, tempfs использует пространство подкачки и будет меняться как Остальная часть памяти. Если вы запускаете что-то, что требует много временного диска, это может привести к замене страниц. Созданные временные файлы больше не могут использоваться через пару минут и являются хорошими кандидатами для переноса на устройство подкачки.
В крайнем случае вы можете использовать файл в качестве устройства подкачки. Это полезно, если вам нужно временно дополнительное пространство подкачки.
Обычно своп остается неиспользуемым в современных системах. По моему опыту, процессы, которые выполняются в течение долгого времени без интенсивных операций, переключаются на Linux подкачки. Это приводит к тому, что несколько затронутых программ работают медленно. Если у вас много оперативной памяти, вы можете отключить обмен, выполнив команду: swapoff -av
(вам потребуются права sudo
.) Если вам не нравится отключение, вы можете включить его с использованием симметричной команды: swapon -av
(снова sudo
требуется).
Я отредактировал скрипт Скотта Северанса , чтобы он соответствовал более новым версиям free, которые уже содержат поле общей доступной памяти.
Как только своп используется для программы, он имеет тенденцию оставаться отображенным на весь срок действия программы. Во многих программах есть код (и данные), который редко используется. Как только память выгружается, ее вряд ли можно заменить.
Один из способов заставить эти страницы войти в память - отключить подкачку. устройство. Если у вас есть два, вы можете выключить один, включить его снова, а затем выключить второй. Если своп действительно нужен, он будет перемещаться между устройствами. Вы можете просто отключить устройство подкачки (или файл), но если вам действительно нужно пространство подкачки, могут произойти и радикальные вещи.
Помимо обычных вещей в памяти, tempfs использует пространство подкачки и будет меняться как Остальная часть памяти. Если вы запускаете что-то, что требует много временного диска, это может привести к замене страниц. Созданные временные файлы больше не могут использоваться через пару минут и являются хорошими кандидатами для переноса на устройство подкачки.
В крайнем случае вы можете использовать файл в качестве устройства подкачки. Это полезно, если вам нужно временно дополнительное пространство подкачки.
Я отредактировал скрипт Скотта Северанса , чтобы он соответствовал более новым версиям free, которые уже включают поле общей доступной памяти.
#!/bin/bash
free_mem="$(free | grep 'Mem:' | awk '{print $7}')"
used_swap="$(free | grep 'Swap:' | awk '{print $3}')"
echo -e "Free memory:\t$free_mem kB ($((free_mem / 1024)) MiB)\nUsed swap:\t$used_swap kB ($((used_swap / 1024)) MiB)"
if [[ $used_swap -eq 0 ]]; then
echo "Congratulations! No swap is in use."
elif [[ $used_swap -lt $free_mem ]]; then
echo "Freeing swap..."
sudo swapoff -a
sudo swapon -a
else
echo "Not enough free memory. Exiting."
exit 1
fi