今天,在出现 PHP 错误“ cannot allocate memory in...
”、“ The following exception is caused by a lack of memory and not having swap configured
”之后,我发现了 Linux 上的交换内存是什么。所以我搜索了一下,找到了free -mt
命令。
$ free -mt
total used free shared buff/cache available
Mem: 3855 445 2725 83 684 3072
Swap: 2047 584 1463
Total: 5903 1030 4188
上面的代码显示已经配置了大约 2GB 的交换内存,用于大约 4GB 的 RAM。在此RedHat 页面,我们可以看到基于 RAM 的交换内存量:
Amount of RAM in the System Recommended Amount of Swap Space
4GB of RAM or less a minimum of 2GB of swap space
4GB to 16GB of RAM a minimum of 4GB of swap space
16GB to 64GB of RAM a minimum of 8GB of swap space
64GB to 256GB of RAM a minimum of 16GB of swap space
256GB to 512GB of RAM a minimum of 32GB of swap space
我的问题是,交换内存是如何工作的,我可以在不减少基本内存的情况下增加它吗?我还看到我们可以添加第二个交换内存。这是我工作的服务器,上面运行着很多程序,我不想犯错误或破坏某些东西,所以我在这里发帖。
附言:我是 Linux 服务器的新手,如果我的英语不好的话还请见谅 :)
谢谢 !