когда я использую top, чтобы увидеть использование памяти, у меня есть 65 ГБ оперативной памяти, но только 1,3 ГБ свободного и оставшегося показано, как используется. Когда я запустил свою программу, это дает ошибку недостаточности памяти. Хотя ни одна другая программа не использует оставшиеся 63,7 ГБ оперативной памяти, она удерживается. как я могу получить бесплатно неиспользуемую оперативную память?
Как освободить память в linux
4 ответа
слишком много дубликатов. Короче говоря, память используется в качестве кэша и буферов и будет освобождена по мере того, как приложения потребляют больше реальной памяти.
Если вы хотите, чтобы память не использовалась, выньте ее из компьютера и сядьте на стол.
существует распространенное заблуждение, что свободная оперативная память хороша. На самом деле, каждый свободный байт ОЗУ представляет собой отказ системы эффективно использовать эту ОЗУ. Бесплатный ОЗУ не сделает вашу систему быстрее.
рассмотрим сильно упрощенный сценарий. Программа выполняется, а затем завершается. Ваша операционная система имеет два варианта:
1) он может освободите память, в которой хранилась программа. Это требует специфической деятельности для того чтобы сделать ее свободным, и специфической деятельности позволить ей быть использованным снова. И если программа снова запустится, ее придется загружать с диска.
2) не удалось освободить память, которая удерживала программу. Для этого требуется no операция, чтобы сделать его свободным, но конкретная операция может потребоваться позже, чтобы переместить его на другое использование. И если программа снова запустится, ее не придется загружать с диска.
таким образом, при большинстве условий, Вариант 2 является чистым выигрышем. Это экономит операцию, если память должна быть использована для чего-то еще (он может просто переключаться с одного использования на другое в один шаг, а не два шага, один, чтобы сделать его свободным и один, чтобы сделать его не свободным). И он может сохранить программу От быть нагруженным внутри от диска, который был бы огромным выигрышем.
Итак, короткая версия, вы не хотите бесплатную оперативную память.
dylan@oxide:~$ free -m
total used free shared buffers cached
Mem: 123 120 3 0 34 35
-/+ buffers/cache: 50 72
Swap: 243 0 243
строка + / - буферов - это фактическое использование памяти. Какую программу вы пытаетесь запустить? Вполне возможно, что на самом деле это не недостаток доступной памяти, а какая-то другая проблема.
возможно, вы используете 32-битную операционную систему в режиме PAE на этой машине? Приложению может потребоваться более 2 ГБ виртуального адресного пространства, которое не может предоставить PAE. (Перекомпиляция ядра может увеличить это до 3 ГБ, но вам действительно лучше перейти на 64-бит, если это случай.)
попробуй :
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
это мгновенно освободит много памяти.
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]