首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >本地或远程主机服务器?

本地或远程主机服务器?
EN

Server Fault用户
提问于 2011-03-15 20:10:13
回答 1查看 134关注 0票数 -1

因此,我的服务器是一个VPS,带有一个灯、Webmin和一个Indefero安装。它以512‘s内存运行,非常棒。

我的朋友告诉我,一家VPS公司提供128 me内存,每年15美元(每月80美分)。太便宜了。即使我运行了7个独立的VPSes,这仍然比我目前的计划更便宜。

是否值得将独立的服务移到几个VPSes上,而不是将它们保存在当前的单个VPS上?我可以把Apache放在一个,MySQL放在一个,防火墙放在一个。

有什么不同,好的或坏的,我应该期待看到的表现?

所以,撇开质量和价格不说:假设,如果我目前使用的是5gb的内存计划,那么切换到51GB的计划会更好吗?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2011-03-15 21:40:39

任何真正便宜的VPS交易都会被大量超卖,或者公司亏损经营。如果这种安排被严重超卖,那么您有时会遇到性能问题,特别是在I/O方面,但也涉及CPU分配方面。如果这样的业务不被严重超卖,那么它很快就会倒闭,除非该服务是某种吸引人们注意力的亏损领导者,在这种情况下,当人们意识到他们不会从你身上赚到更多钱时,他们的支持就不太可能是一流的。

因此,从这个角度来看,我会避免这个计划,甚至不考虑技术问题。

在同一主机上运行多个VM上的单个服务的速度可能与当前VPS一样快(或者至少“足够快”用于小负载,如果设计规模远远超过多台计算机,则可能更快),但是安装起来要做的工作要多得多,而且还会有一些额外的限制。例如,您可以使用您在这样的安排中提到的七个VM:

代码语言:javascript
运行
复制
                                             3             6
                                      ,---> web  -------> db  <----.
                                      |    server   |    slave     |
                                      |             |              |
          1                2          |             \       5      /
       firewall /  ---->  load    ----|              >---> db  <--<
    external access      balancer     |             /    master    \
                                      |             |              |
                                      |      4      |      7       |
                                      `---> web  -------> db  <----'
                                           server        slave

如果设置得当,您可以根据需要添加更多的web服务器或DB服务器,从而快速展开。但是,有许多问题需要满足:

  • 您需要很好地配置负载平衡器。
  • 每个web服务器都需要经过很好的调优,才能在128 M的RAM中工作,否则您就需要进行交换,这样,由于过度的超卖而导致的过多争用的IO会受到很大的打击,而且在最好的情况下,要使Apache+PHP设置在这一点上正常工作也是不可能的,这取决于您正在运行的是什么(例如,检查wordpress对每个进程内存的潜在需求)。您可能可以通过使用不同的web服务器(例如nginx)和/或让更多的PHP实例在更多的VM上通过网络通过FastCGI调用来缓解这一点,但这对于高效设置来说更加复杂,而且可能仍然不可能取决于脚本的操作。
  • 您将不得不配置数据库复制,或者使用一个带有只读奴隶的主服务器(这将需要更改应用程序),如我的图表所示,或者主主配置,如果事务完整性是您所关心的,则效率可能要低得多。
  • 每个DB服务器都将被限制为128 DB:这对mySQL来说是一个痛苦的问题,一般需要进行一些调整,而且一个服务器上的大型查询将无法在另一个服务器上“借用”内存备用,因此这个限制是固定的。如果您不太小心,DB节点可能最终会交换,在这种情况下,会再次出现令人讨厌的IO争用惊喜。
  • 四台128 M字节机器将不会像512 M字节机器那样工作:首先,操作系统和应用程序的开销几乎是固定的,并且将单独应用于每个节点,节点将无法共享它们的RAM池,因此一个DB服务器上的大型查询或一个web节点上的大型进程将无法再分配给另一个当前空闲的节点的RAM。七台机器128 M字节机器不太可能像一台512 as机器那样工作,而一台机器工作在许多加载模式中。

除了“必须有一个陷阱”之外,128 VZ的RAM可能不是专用的:对于基于VZ的主机来说,它可能是“64 VZ可扩展到128 VZ”,或者对于基于Xen的系统来说是“64 VZ带64 VZ交换”。即使parts名义上是专门用于VM的,但一些虚拟化解决方案允许过度提交内存(VMWare在一定程度上这样做),因此您会发现将部分或“专用RAM”分到主机交换区域,这将对性能造成巨大影响。另一个致命的问题是,VM之间的通信(不仅仅是它们与外部世界之间的通信)可能会影响到您的带宽分配:因此,将512 K字节从数据库移到其中一个服务器,并且经过计算向客户端发送128 K字节响应后,总共可能计算为1664 K字节( db节点512,web节点512,web节点128,负载均衡器128,防火墙128),而不仅仅是128 K,DB节点之间的通信量也将对您的配额构成影响。

lt;dr:虽然这对于某些工作负载是可能的(例如,如果设计中的每个web/app/sql节点都能在这个小内存中高效运行,并且您有足够的节点来处理相同的负载),但这可能比它的价值要麻烦得多,因为即使在一个好主机上(由于额外的网络开销),轻负载也会运行得更慢,而且一个真正便宜的主机不太可能成为“好”主机(昂贵的主机不能保证是一个好主机,但它的可能性稍微大一些!)所有额外的安装和维护时间真的比你每月节省的现金更少吗?!

我可能建议这样做的原因之一就是学习:为了性能和/或可用性的原因,学习技术并获得第一手经验,尝试在多台机器上扩展应用程序,可能是一个有趣的项目。我不会推荐它作为一个生产设置,即使是一个个人项目,除非你已经有了这些知识和经验(当你问这个问题时,我想你没有)。

医生:我还是会和你呆在一起。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/247795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档