我有一台 VPS 服务器,它托管着一个流量非常低的 iPhone / Android 应用程序服务器。每天最多处理 300 个非常小的 JSON 请求(每个请求最多 1 KB 的文本),服务器最多发送约 50 封电子邮件。这些数字可能会增长,但不会大幅增加。最初使用 VPS 的原因不是容量,而是灵活性和可靠性。电子邮件必须立即发送,因此我们不想依赖可能会延迟等的托管提供商。此外,我们希望能够灵活地在服务器上运行非标准应用程序,例如 Spatialite(Sqlite 的变体)以帮助进行基于位置的查询。
所以对于我的问题......我即将为不同的应用程序设置一个非常相似的服务器。考虑到我使用的只是当前 VPS 的一小部分 CPU(我目前拥有最小的 Linode,512MB RAM)和带宽,这仍然是最好的选择吗?我曾考虑降低规格,但在我看来(也许很天真),即使是 128MB 也似乎有点过分,尽管这些软件包的驱动器空间似乎对我们的需求来说有点太小了。此外,我想一旦成本降到一定水平,比如每月 7.50 美元/5 英镑,提供商几乎没有降价的空间,因为从管理的角度来看,这可能不值得。我可以理解“极低”容量 VPS 可能没有市场。共享主机可以排除吗?
答案1
警惕非常便宜的虚拟机 - 您会发现自己与许多其他虚拟机共享主机,这使得 CPU 时间和 IO 带宽的争用变得更高且更难以预测。
让虚拟机拥有尽可能少的 RAM 并不是一个好主意,因为如果您的 RAM 需求有所增加(在应用程序活动爆发期间),您将进行交换。这将在过载的主机上造成困扰,因为在 RAM 和磁盘之间移动页面而产生的额外 IO 操作将与来自所有其他虚拟机的 IO 竞争。为了确保您知道高效运行所需的最小 RAM 是多少,而不是空闲时所需的 RAM,请在本地机器上的虚拟机上测试应用程序,改变 RAM 大小并确保在压力下测试应用程序(即,如果大量用户决定在同一分钟内执行某项操作)。在主机的磁盘缓存关闭的情况下,从慢速驱动器(例如廉价的 USB 记忆棒)运行这些虚拟机,这样,测试结果中 RAM 限制成为问题的点将更加明显。
如果您当前的应用程序未使用 Linode 上虚拟机可用的大部分资源,则可以在同一虚拟机上运行这两个应用程序(如果您需要为不支持 SNI 的浏览器使用 HTTPS,则只需分配一个额外的 IP 地址)除非其中一个或两个应用程序都是为有理由不想共享这样的机器的客户端运行的。
此外,根据您的 ISP 和带宽要求,您可能考虑通过家庭连接托管应用程序。当我在一两个月内搬到 FTTC 线路时,我计划将一些小东西“搬进家里”(我已经有一个全天候运行的小型服务器,因此额外的电力要求是没有意义的)。当然,您需要一个可靠的 ISP,它提供至少一个静态 IP 地址并允许服务器通过住宅线路运行,但如果应用程序的要求非常即使是具有 448kbit 上行速率的基本 ADSL2 线路也可能足够,并且额外的 5 到 40ms 的延迟(取决于线路质量和 ISP 回程设置)可能无关紧要。
尽管如此许多提供廉价低功率虚拟机的主机,其中许多都在您提到的预算之内。扫描以下地方的报价论坛:西哈努克或类似的网站低端机但请务必在注册前查看任何提供商,注意年度付款选项(几个月前还没有的超低价主机几个月后可能就不会有了),如果提供的虚拟化解决方案包括“突发 RAM”,请再三确认(或四倍确认……)您的应用程序不需要超过固定/保证的分配。还要注意,您不太可能看到 Linode 提供的功能和支持水平(我最近没有使用他们的服务,但几年前我使用时印象非常深刻)。