Sea*_*inn 9 memory virtualbox swap vagrant
在我中,Vagrantfile我定义了以下提供者:
摘自 Vagrantfile:
Run Code Online (Sandbox Code Playgroud)config.vm.provider :virtualbox do |vb| vb.gui = false vb.customize ["modifyvm", :id, "--memory", "4096"] end
当我free -m在创建的 VM 中运行时,我看到以下报告:
total used free shared buffers cached
Mem: 3953 337 3615 0 18 119
-/+ buffers/cache: 199 3753
Swap: 0 0 0
Run Code Online (Sandbox Code Playgroud)
是否可以在构建和配置 VM 时分配 swappiness?
我已经尝试设置vm.swappiness中/etc/sysctl.conf并重新启动虚拟机,但我没有看到添加交换空间的VM的任何影响。
为什么需要交换空间?我宁愿根本不处理交换空间并在内存中运行所有内容。但是,对于某些应用程序(例如 PHP 的 Composer 项目),在某些情况下会因使用大量内存而臭名昭著。如果没有交换空间,我必须非常自由地分配给 VM 的内存量,如果我有交换空间——尽管它可能效率不高——理论上我会遇到更少的问题。
Jon*_*han 15
只需将此行添加到您的流浪文件中
# Enable Dynamic Swap Space to prevent Out of Memory crashes
config.vm.provision "shell", inline: "sudo apt install swapspace -y"
Run Code Online (Sandbox Code Playgroud)
然后重新配置
vagrant up --provision
Run Code Online (Sandbox Code Playgroud)
这是一个动态交换空间守护进程。有几个,但这里有一个流行的。
sudo apt install swapspace
Run Code Online (Sandbox Code Playgroud)
验证它正在运行
sudo service swapspace status
Run Code Online (Sandbox Code Playgroud)
摘自http://pqxx.org/development/swapspace/
这个 Linux 内核的系统守护进程旨在消除对大型固定交换分区或交换文件的需求。
当使用 Swapspace 安装基于 Linux 的系统(总是 GNU/Linux)时,通常的交换分区可以省略,或者可以保持很小。每当 Swapspace 在正常系统使用过程中发现需要更多虚拟内存时,它就会自动从硬盘中申请空间。相反,不再需要的交换空间被再次释放以供文件系统定期使用。
这意味着安装 Swapspace 后,在安装期间调整系统可用交换空间的大小不再是生死攸关的选择。现在可以在一个单独的大分区上运行 GNU/Linux 了——没有磁盘空间因令人遗憾的安装选择而损失。系统还应该能够处理偶尔占用比最初预期更多交换空间的内存密集型任务,而不会像通常情况那样在正常操作期间留下未使用和不可用的相同交换空间。