我有一个带 64MB RAM 的小型 VPS。我将其用作内部代理。此服务器上只有一个 index.php,其逻辑是使用 php curl 从另一台服务器获取数据并显示给客户端(每次请求都会执行此操作 - 根本没有本地文件)。
我已经安装了 PHP APC,这样 index.php 就位于 RAM 中。在 64MB 的机器上使用 APC 有什么缺点吗?我听说可能会出现碎片/交换问题 - 但我认为我的情况不会出现,对吧?相关说明:CURL 是否缓存任何数据(足以在 64MB RAM 上使用 APC 造成问题?)。
关于此盒子的最佳实践的任何提示,以防止交换/碎片都会非常有用(我在这方面几乎是个新手)。
谢谢
J.P
答案1
唯一可以确定的方法是自己运行一些测试,因为我认为没有任何相关项目团队在如此受限的环境中特别测试过他们的代码,所以你找不到任何“官方”建议。
在本地系统上复制小型虚拟机,对其进行一些测试负载,然后观察会发生什么。
关于 Curl,如果我没记错的话,它不会在内存中执行缓存:它接收的内容会立即被放到磁盘上,并且在传输完成后不会驻留。当然,内核可能会缓存一些正在写入的内容。
答案2
您不会遇到碎片问题,因为您拥有的唯一文件是 index.php。APC 是操作码缓存,而不是缓存代理,因此只有一个 php 文件的代码部分(操作码)会停留在那里,没有来自外部源的其他内容。因此不会发生碎片,当然您的 curl 数据也不会被“缓存”。