Articles of 缩放

我应该怎么做扩展一个Sql2008数据库?

我即将扩大我们的sql2008数据库。 简单。 但我可能需要缩小我们的SQL数据库。 对于简单的扩展情况(即分配处理负载),是否有一些良好的初始最佳实践? 我知道有这么多的解决scheme,这将是产品特定的 – >许多写&不多的读取,许多读&不写多less,两者等等等等。 但是对于一个阅读起来很重(而不是沉重)的网站,是否有一个共同的起点? 例如。 抓住第二个SQL框,添加一些同步thingy和关你走。

扩展IIS / SQL Server应用程序的最佳方法

我们有一个在ASP和SQL Server中开发的应用程序。 我们使用Rackspace来托pipe它。 我们的每个“客户”都有自己的IIS站点和SQL数据库。 每个客户可能有十几个或几百个用户打这个应用程序。 我们现在有几百个客户。 到目前为止,我们所做的是在性能方面需要时添加另一对服务器(一个IIS,一个SQL)。 我们现在最多有四对服务器。 我们正在继续添加新的客户,我们正在寻找其他的方式来扩大,而不仅仅是添加服务器对。 我们正在考虑的一种方法是为IIS端提供Web服务器场,为数据库端提供SQL Server群集和SAN。 这是一个好方法吗? 现在我们可能有400个客户,每个客户都有自己的IIS站点和SQL数据库。 如果我们增长到1000呢? 5000? 一个SQL集群可以处理数千个数据库吗? 每个数据库有几百个表。 一些大客户的主表可能有几十万条logging。 朝向一个大的IIS Web场和一个大的SQL集群的一个吸引力是,如果一个服务器停机,其他服务器可以承载这个负载。 现在,如果我们的某个SQL服务器出现故障,或者我们的某个IIS服务器出现故障,那么我们四分之一的客户将无法使用该系统。 所以我们希望增加可靠性,并增加增加新客户的能力。

如何在网站上使用分布式PostgreSQL数据库?

我想主办一个网站,后端将是一个PostgreSQL数据库服务器。 我想有多个Web服务器,在不同的数据中心冗余。 然后,我会循环DNS每个Web服务器来分配负载。 要做到这一点,我应该也有多个数据库,并使用某种复制? 或者,有一个数据库并让每个Web服务器通过互联网指向它会更好吗? 更新1 这个想法被提出,多个Web服务器应该有多个数据库服务器,以消除单点故障。 我真的希望在每个数据中心都有一个重复的设置。 我会在每个数据中心都有一个Web服务器和一个数据库服务器。 我不确定这是否可能,所以我保持开放的想法,只有一个数据库服务器,或所有数据库在一个位置。 但理想情况下,每个数据中心都有自己的。

MySQL:具有较高更新频率的非常大集合的表组织

我在select我的MySQL模式应用程序时面临着两难的境地。 所以在我开始之前我的数据库是非常简化的一张图片: 架构在这里: http : //i43.tinypic.com/2wp5lxz.png 一句话:对于每个客户,应用程序收集每个收集的数据的文本数据和附加的标签。 作为每个表的使用近似,这是我所期望的: 顾客:〜5000,不宜长得快 数据:每个客户500万,可能是大客户的两倍或三倍。 标签:〜1000,相当固定的大小 data_tag:每个用户容易上亿。 每个数据可以被标记很多。 收获过程是永久性的,这意味着大约每15分钟新的数据就会被标记出来,这就需要一个非常持续的索引刷新。 我的很多查询是特定date之间的数据select计数,并在特定的客户上标记了特定的标记(很less涉及多个客户)。 这里是情况,你可以想象这种数据量我正面临数据组织和索引方面的挑战。 再一次,这是我的结构极简版和简化的版本。 我的问题是,是否更好: 坚持这个模式,并pipe理疯狂的指数优化? (其中涉及data_tag表中可能有数十亿行) 更改架构并为每个客户使用一个数据表和一个data_tag表? (这涉及到我的数据库有5000个表) 我正在MySQL 5.0专用服务器(四核,RAM的8Go)上运行所有这一切。 我只使用InnoDB,我也有另一台运行Sphinx的服务器。 所以知道这一切,我迫不及待地听到你的意见。 谢谢。 编辑 感谢你的回答,我意识到这个数字有多疯狂。 所以这里是一个更新的更现实的用法(基于实际的服务器,只是一个基本的rackspace框)。 顾客:2000(固定) 数据:每个客户100万(固定,存档旧数据,非常不公平:一些客户有几千,最大500万) 标签:1000(固定) data_tag:每个客户大约三五百万(取决于数据,太不公平了)。 谢谢。

如何降低低内存服务器?

我遇到了一个Rails应用程序的问题,它运行在365MB VPS上,这似乎不是很多。 当同时有超过3-5个用户时,内存不足,开始使用交换,这就是f ******慢。 当我看着top ,我可以看到有很多产生的MySQL实例(远远超过Rails进程)。 这是正常的吗? 你如何推荐缩减低内存环境的应用程序? 我使用的是Ubuntu 9.04,Apache2.2和mod passenger,MySQL 5.075和Ruby 1.8.7 编辑:在你的build议之后,我把VPS升级到了540MB,现在看来已经足够了。 然而,我只是一个穷学生 ,所以我不能在我为自己做的一些项目中抽出太多的钱,直到它开始至less还钱。

如何为200万用户部署Web应用程序?

我一直负责研究如何为高可用性,高stream量,dynamic,基于Flash的Web应用程序进行大规模部署。 这个应用程序很有可能会增长到200万用户或者更多。 当然,到了真正做到这一点的时候,我可能会引进一位专家来帮助我。 现在,这是全部的理论,我只想得到一个好主意,如何做到这一点。 这是我目前的想法: 获得1或2个千兆networking连接。 2个HA代理/负载均衡器。 12个物理服务器(2个四核,32GB内存)运行25个虚拟机Apache Web服务器 – 共300个虚拟机。 2个memcached服务器(2个四核,32GB内存) 2x Master Mysql DB服务器,3x只读slave mysql服务器 2个6TB SAN RAID 所有10GbE或光纤连接… 我的工作主要是找出硬件,以及如何部署和维护硬件。 至于维护这个野兽,我正在研究Slack,Rightscale,Landscape,VMware。 我也在考虑将其部署在亚马逊EC2上,但是我更愿意自己来架设,因为从长远来看,它会更便宜。 我可以从这个机架开始,并添加EC2实例,如果需要更多的。 你觉得怎么样,这是矫枉过正? 不够? 我有没有想到,有什么我失踪? 感谢任何阅读和回应的人!

如何正确的负载平衡独立的fastcgi服务器

我们正在运行更大的部署,在Apache2和mod_wsgi下运行多个服务器运行Django应用程序。 我们正在考虑切换到apache2 + fastcgi和移动fcgi进程分开应用程序服务器“层”。 我的问题是:如何在这些多个后端服务器之间做适当的负载平衡? 我最担心的是能够即时添加和删除服务器。

RT数据库缩放

最近我听到有人提出RT请求跟踪器可能由于其非标准化数据库而具有可扩展性问题(我在Perl会议上有人提到它是正规化的,但是我认为他可能误解了什么规范化是所有关于)。 另一方面,我知道像CPAN这样的大型企业使用RT。 这样的规模级别是否需要采取特殊的措施来处理db增长过大时发生的情况? 你有什么经验?

虚拟化是扩展的一种方式

我在问这个问题,找出你准备扩展系统的最佳实践是什么,我知道基本上你不必在真正需要优化之前进行优化,那么最好的办法就是监视几乎所有的方面的服务器/系统,看看你的瓶颈,然后行动,但仍然。 我不是专家,但常识让我虚拟化了我的专用服务器,并将不同的服务分开(为了更高的安全性),以便将它们稍后迁移到其他物理服务器,以防止我需要快速增长并且停机时间最短。 我有兴趣听听你最好的技术是什么,你在做什么,以确保当你的产品/服务得到牵引,你将有足够的时间来反应和扩大规模。 谢谢

防火墙作为访客虚拟机?

出于好奇,将防火墙作为VM guest(无论VM主机 – ESX,Xen,Hyper-V等等),将其他VM guest虚拟机的所有stream量redirect到防火墙是否是毫无意义/浪费/愚蠢的VM guest? 我不确定其他人/组织是否实践这一点。 我知道可能会受到限制(CPU,RAM,磁盘/networkingI / O)的资源可能会通过任何stream量,但有没有其他情况下或将防火墙作为访客虚拟机,并让其他虚拟机路由到它的情况比主机虚拟机的外部盒子更好或者更好 ? 在性能方面,我意识到作为访客虚拟机资源的使用会影响到其他客人,但除此之外,我错过了什么? 安全,最佳实践,常识? 任何想法,评论或批评都是受欢迎的。