我有一个使用Openfire、Tomcat6和MySQL的聊天应用程序。
目前,我已经在单个Linux微实例(613 MB内存)上安装了所有这些服务器.即使在低用户基数10-20,我遇到了CPU过载,这是相当明显的在这里。
由于我是亚马逊EC2的新手,有人能建议我如何根据流量的使用来扩展我的架构吗?
发布于 2012-06-07 10:24:35
我至少会使用一个m1小或更好的m1大型实例。微实例实际上只用于开发,因为即使用户为零,613 be可能很快也不够。除此之外,您很可能会看到大量的CPU占用时间,而您的服务器在出现一个较小的cpu峰值后也不会做出任何反应。太烦人了。
除了mysql-db之外,我将尝试在每个实例上运行整个堆栈。看看RDS!你不需要设置一个高雪崩性mysql主从基础设施自己!
发布于 2012-06-08 08:49:06
不要使用微实例生产,因为他们的不可预测的CPU节流阀。在单个实例中运行所有东西更符合成本效益,但是如果您计划进行扩展和扩展,最好在几个实例中设计和开发您的应用程序。
发布于 2012-08-29 15:06:55
从长远来看,最好将应用服务器与数据库分开,以允许每个层具有最大的灵活性和可伸缩性。RDS目前是一个很好的选择,但请记住,它仅限于一个实例,如果您的流量超出了最大实例的容量,您可能会遇到停机,然后需要使用其他实例来设置集群,这很复杂。EC2上的另一个选项是薛伦德的云数据库服务,它不同于RDS,因为它可以自动扩展到额外的实例,以适应额外的吞吐量,并自动处理集群。至于应用服务器,您可以使用亚马逊的CloudWatch功能自动缩放它。
https://serverfault.com/questions/396364
复制相似问题