Це погана ідея. Якби це було корисно, ядро Linux реалізувало б це таким чином. Я не вірю, що є причина змінити декілька параметрів настройки, оскільки такий простий скрипт оболонки, швидше за все, не розумніший, ніж алгоритми розробників ядра.
У вас є два випадки:
- Процеси в просторі заміни все одно не використовуються. Чому ви хочете повернути їх в оперативну пам’ять?
- Оперативної пам’яті мало, тому вони заміняються, і ви повернете їх назад в оперативну пам’ять. Тоді ваша система якнайшвидше знову поставить їх у своп.
Отже, є два основні моменти:
- По-перше, ваша система буде повільною, коли занадто мало оперативної пам’яті для запуску всіх ваших програм одночасно. Swap допоможе вам запустити більше програм, але не швидко перейти на рідко використовувану, яка може бути замінена. Жоден своп не може отримати вбитого рідко вбитого або відправити використаний, що використовується в даний час, виключення поза пам'яттю.
- По-друге, своп - це хороша річ, а також - це вміст у свопі, оскільки у вас є безкоштовна оперативна пам’ять за ціною програм, якими ви зараз не користуєтесь.
Незважаючи на те, що не виникає проблем із пам'яттю занадто багато програм, деякі програми можуть виділяти пам'ять на основі поточної вільної оперативної пам’яті (можливо, ваш браузер буде використовувати більше пам’яті, а ви можете швидше переглядати), а ядро може використовувати безкоштовну оперативну пам’ять для кешування диска та подібні оптимізації. Коли ви змушуєте свою заміну порожньою, ядро скине кеш читання, і, наприклад, запуск нового екземпляра Firefox займе більше часу, ніж коли Firefox все ще знаходиться в кеш-диску диска.
Якщо ви хочете налаштувати поведінку ядра, перегляньте параметр swappiness .
Два додаткових джерела сприяє @ peter-cordes:
Якщо ви дійсно хочете мати порожній своп, ви можете вимкнути своп назавжди. Я не бачу, чому ввімкнути його протягом години, а потім випорожнити її, має переваги перед тим, як не мати місця.