Questions tagged «scalability»

系统,网络或流程以优雅的方式处理不断增长的工作量的能力,或者为了适应这种增长而进行扩展的能力。

9
在Facebook或Wikipedia的IP地址上侦听的硬件是什么?
我出于好奇心的目的,试图了解像Facebook或Wikipedia这样的大型网站是如何工作的。我阅读了有关构建可伸缩网站的各种技术的信息,但是我仍然对一个特定的细节感到困惑。 使我感到困惑的部分是,最终,DNS将整个域映射到单个IP地址,或者在循环DNS的情况下将少数IP地址映射到单个IP地址。 例如,wikipedia.org仅具有一个A型DNS记录。因此,来自世界各地的访问Wikipedia的人们都必须向DNS中指定的一个IP地址发送请求。 在大型站点的IP地址上侦听的硬件是什么,它如何处理来自全世界用户的请求的所有负载? 编辑1:感谢您的所有答复!Anycast似乎是一个可行的答案...是否有人知道一种检查特定IP地址是否为Anycast-routed的方法,以便我可以验证这确实是大型站点在实践中使用的技巧? 编辑2:在对该主题进行了更多的阅读之后,似乎播种通常不用于动态Web内容。Anycast通常用于UDP(例如DNS查找),有时也用于静态内容。 需要注意的一件有趣的事是,Facebook使用profile.ak.fbcdn.net来托管静态内容,例如样式表和javascript库。每次ping此名称时,都会收到来自其他IP地址的响应。但是,我无法确定这是实际行动还是完全不同的技术。 回到我最初的问题:据我所知,即使是一个大型站点,也将有一个昂贵的负载平衡硬件,可以监听其少量的公共IP地址。

6
使用便宜的SSD硬盘扩展数据库
此问题已从堆栈溢出迁移,因为可以在服务器故障时回答。 迁移 8年前。 我希望你们中的许多人正在使用高流量数据库驱动的网站,并且有机会将主要的可伸缩性问题放在数据库中。我最近注意到了几件事: 大多数大型数据库都需要一组DBA来进行扩展。他们不断地因硬盘驱动器的限制而苦苦挣扎,最终获得了非常昂贵的解决方案(SAN或大型RAID,频繁的碎片整理和重新分区维护窗口等)。维护此类数据库的实际年度成本在10万美元至100万美元之间,对我来说太陡了:) 最终,我们吸引了多家公司,如英特尔,三星,FusionIO等,它们才开始销售基于SLC闪存技术的超快速但价格合理的SSD硬盘。这些驱动器的随机读/写速度比市场上最好的旋转硬盘驱动器快100倍(每秒高达50,000个随机写)。它们的寻道时间几乎为零,因此随机I / O的成本与顺序I / O相同,这对数据库来说真是棒极了。这些SSD驱动器每GB的成本约为10-20美元,而且相对较小(64GB)。 因此,似乎有机会通过简单地构建足够大的RAID 5 SSD驱动器阵列(只需花费几千美元)来避免传统方式扩展数据库的巨大成本。然后,我们不在乎数据库文件是否碎片化,并且我们可以提供每秒100倍的磁盘写入量,而不必将数据库分布在100个心轴上。。 还有其他人对此感兴趣吗?我一直在测试一些SSD驱动器,并且可以分享我的结果。如果该站点上的任何人都已经解决了使用SSD的I / O瓶颈的问题,我很想听听您的战争故事! PS。我知道有很多昂贵的解决方案可帮助实现可扩展性,例如久经考验的基于RAM的SAN。我想明确指出,即使是5万美元,对于我的项目来说也太昂贵了。我必须找到一种解决方案,其成本不超过$ 10,000,并且不需要花费很多时间来实施。 Dave,NXC和Burly, 多谢您的回覆!我想澄清一下,“便宜”一词在我的情况下非常重要。因此,我必须使用便宜的戴尔服务器($ 4K 2950s,只有8个存储库)。我已经安装了32GB的RAM,因此无法继续以这种方式扩展。此外,添加RAM不会使您摆脱磁盘写入瓶颈,这是我目前的主要问题。 我曾经关心SSD的寿命,但是在阅读了现代损耗平衡算法后,我很确定这些驱动器将持续足够长的时间。我的数据库每天写入300GB,并预计在2009年每天超过1TB。企业级SSD可以在多年内每天处理大约10TB的写入。 我不同意Burly的观点,即从SAS迁移到SSD需要太多的工作。我的数据库是一个同步镜像,因此我可以升级镜像的一侧,然后观察它几个月,如果它崩溃了,我可以故障转移到第二台服务器,该服务器仍旧有旧的SAS硬盘驱动器...

5
Nginx worker_connections的最佳值
Nginx worker_connections“设置了工作进程可以打开的最大同时连接数。该数目包括所有连接(例如,与代理服务器的连接等),而不仅包括与客户端的连接。另一个考虑因素是实际的同时连接数不能超过当前最大打开文件数限制”。我对此有几个疑问: 最佳或推荐值应该是多少? 使用大量工作人员连接的不利之处是什么?

10
在一台VMWare主机服务器上运行100个虚拟机
我使用VMWare已有很多年了,运行几十个生产服务器时几乎没有问题。但是我从未尝试在单个物理主机上托管超过20个VM。这是想法: 精简版Windows XP可以拥有512MB的RAM和4GB的磁盘空间。 5,000美元让我得到了一台8核服务器级计算机,配备64GB RAM和四个SAS镜像。 由于上述服务器可容纳100个上述VM,因此我的硬件成本仅为每个VM 50美元,这非常好(比在GoDaddy或任何其他托管商店租用VM便宜)。 我想看看是否有人能够使用VMWare实现这种可扩展性?我做了一些测试,遇到了一个奇怪的问题。一旦启动20个虚拟机,虚拟机性能就会开始急剧下降。同时,主机服务器未显示任何资源瓶颈(磁盘处于99%空闲状态,CPU利用率低于15%,并且有大量可用RAM)。 如果您能分享有关扩展VMWare或任何其他虚拟化技术的成功案例,我将不胜感激!

6
扩展软件负载平衡器的典型方法是什么?
我经常看到一堆应用程序服务器前面带有SLB /反向代理的Web应用程序体系结构。 如果到SLB的连接数需要太多资源才能使单个 SLB有效处理,会发生什么情况?对于一个具体的但举足轻重的示例,请考虑200万个持久HTTP连接。显然,单个 SLB无法处理此问题。 什么是缩放的建议配置了一个SLB? 创建LB的组/集群是否很典型?如果是这样,客户端负载如何在LB组之间分配?

1
statsd和石墨的高度可用,可通过网络访问和可扩展的部署
我想设置statsd / graphite,以便我可以记录在HTML设备上运行的JS应用程序(即不在封闭的LAN环境中,并且可能包含大量我不直接控制的传入数据)。 我的约束: 入口点必须使用HTTP:这是通过简单的HTTP-to-UDP-statsd代理(例如github上的httpstatsd)解决的 必须抵抗单个服务器的故障(以对抗墨菲定律:) 必须水平可扩展:网络规模,宝贝!:) 架构应尽可能简单(且便宜) 我的服务器是虚拟机 数据文件将存储在Filer设备上(带有NFS) 我可以使用tcp / udp硬件负载平衡器 简而言之,数据路径:[客户端]-(http)-> [http2statsd]-(udp)-> [statsd]-(tcp)-> [石墨]-(nfs)-> [文件管理器] 到目前为止,我的发现: 缩放http2statsd部分很容易(无状态守护程序) 缩放statsd部分似乎并不简单(我想对于诸如sum,avg,min,max ...之类的汇总数据,我最终会在石墨中得到不连贯的值)。除非HTTP守护程序进行一致的哈希处理以分片密钥。也许是个主意...(但接着是HA的问题) 缩放石墨零件可以通过分片(使用碳中继)来完成(但这也不能解决HA问题)。显然,几个耳语实例不应该写入相同的NFS文件。 扩展文件管理器部分不是问题的一部分(但是IO越少越好:) 缩放Web应用程序似乎很明显(尽管我尚未测试),因为它们仅读取共享的NFS数据 因此,我想知道是否有人可以共享可靠的statsd / graphite部署经验和最佳实践?

3
哪些类型的系统必须“扩大”而不是“扩大”?
我一直在想,是否有系统必须“扩展”(到更强大,更昂贵的服务器上),而不是通过拆分成许多较小的服务器来“扩展”。 是否存在这样的系统,如果存在,是否特别有什么趋向于导致需要扩展而不是扩展的系统?(例如,ACID投诉数据库事务或其他强大的数据完整性要求可能会产生这种需求。) 由于向上扩展似乎比扩展向外扩展会带来更高的硬件成本,因此,如果可能的话,您似乎希望避免这种事情,但是我不确定是否总是可以避免的。 因此,是否存在无法扩展的系统,而必须进行扩展?是什么原因造成的?您将如何识别这种系统?(它们通常具有一些共同点,可能使它们更易于识别吗?)

5
AWS:使用单个RDS实例进行多区域设置
我正在尝试以多区域方案扩展我们的Web应用程序(PHP,MySQL,内存缓存)。当前,我们正在使用在ELB和RDS实例后面有两个EC2实例的设置,所有这些实例均位于美国东部(弗吉尼亚州)地区。 我们也希望在欧盟(爱尔兰)地区也有业务。这意味着那里至少有一个新的EC2实例(与其他相同,服务于同一应用程序)。 我已经复制了所需的AMI,设置了新实例,设置了相同的ELB配置(SSL终止所需),并在Route53中配置了基于延迟的路由。它按建议工作。 但是,来自欧盟的客户存在速度问题。这是由于EU EC2实例连接到基于美国的RDS实例这一事实。据我所知,亚马逊尚未启用RDS多区域复制。 您是否对使用单个RDS实例时如何适当加快整个设置有任何建议? 另外,关于如何扩大规模的任何一般想法?理想情况下,出于各种原因,我们希望继续使用RDS技术。不过,我愿意接受建议(我想下一个想法是托管我们自己的MySQL服务器)。

4
PostgreSQL最多可扩展至64个内核?
在《计算机世界》的这篇文章中,它指定PostgreSQL最多可以扩展到64个内核。这是否意味着一个64核的多核处理器?还是拥有更少内核的多个处理器? 我之所以这样问,是因为我试图找到PostgreSQL可以扩展到多少处理器,但是当然可能仅限于处理器类型。但是,我一直在其他数据库中找到其他统计信息(例如,Microsoft SQL Server 在这里说明它可以扩展到320个逻辑处理器),并且它们没有指定其内核数。这是一个非常模糊的统计吗? 任何想法将不胜感激。谢谢!

5
在2GB RAM E6500 CPU上每天优化apk以获得超过10K的wordpress视图
我在ubuntu上有一个带有apache / php的专用服务器,每天为我的Wordpress博客提供10K +的浏览量。我在APC中安装了W3TC插件。 但是每时每刻,服务器都停止响应或变慢,我必须重新启动apache才能将其恢复。 继承人我的配置我在做什么错? ServerRoot "/etc/apache2" LockFile /var/lock/apache2/accept.lock PidFile ${APACHE_PID_FILE} TimeOut 40 KeepAlive on MaxKeepAliveRequests 200 KeepAliveTimeout 2 <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 8 ServerLimit 80 MaxClients 80 MaxRequestsPerChild 1000 </IfModule> <IfModule mpm_worker_module> StartServers 3 MinSpareServers 3 MaxSpareServers 3 ServerLimit 80 MaxClients 80 MaxRequestsPerChild 1000 </IfModule> …

9
研究部门可扩展(> 24 TB)NAS
我被要求提供一个新的文件服务器来存储我们的医学图像(原始格式,而不是dicom)。由于我们没有IT员工,因此我必须找到一种解决方案,而我对此主题一无所知。 我们的要求是:3年内可扩展到24 TB,Windows文件共享,并且共享必须尽可能大(1x24TB共享)。我发现的第一件事是NETGEAR ReadyNAS3200。它看起来像是一个非常不错的系统,带有庞大的社区,如果遇到麻烦,它可能会派上用场。 但是该系统的可扩展性如何?我到处都知道这个系统是“不可堆叠的”。我不知道如何堆叠NAS的工作原理,但是也许我们可以购买一个iSCSI启动器,将所有NAS'配置为iSCSI目标,然后在启动器上建立一个覆盖所有目标的团队,然后以一个Windows共享的方式共享这一大团队?还是不能做到这一点?我显然对可伸缩性的工作方式一无所知,因此,如果有人可以解释这一点,我将非常感激。 如果有人看到另一种解决方案(例如与readynas规格相当但可堆叠的另一台NAS),那么您当然也可以提出这一建议。

10
如何解决linux子目录数限制?
我有一个网站,它将存储用户个人资料图像。每个图像都存储在特定于用户的目录(Linux)中。目前,我的客户群超过30个,这意味着我将拥有30个以上的文件夹。但是我当前的Linux机器(ext2 / ext3)不支持创建超过32000个目录。我该如何克服?甚至YouTube的家伙也有同样的问题,那就是视频缩略图。但是他们通过迁移到ReiserFS解决了这一问题。我们不能有更好的解决方案吗? 更新:当在IRC中被问到时,人们正在询问将其升级到ext4(极限为64k),当然您甚至也可以超越它。或通过内核修改来更改限制。 更新:如何根据用户ID范围将用户群分为文件夹。在一个文件夹中表示1-1000,在另一个文件夹中表示1000-2000。这似乎很简单。你们怎么说? 坦白说,还有其他办法吗?

2
扩展HAProxy以支持超过64k的WebSocket
我们正在尝试设计一种能够处理超过64k WebSocket的体系结构。 我们首先尝试使用Amazon ELB,但其设计不允许流量或Websocket意外增加。(TCP模式意外使WebSocket超时) 使用HAProxy时,这些限制将不适用,但我们仅限于在HA与后端服务器之间维护的约64k websocket。 我想到了多种解决方案: 多个HAProxy实例,使用DNS进行负载平衡(Route53具有加权选项) 两个具有Keepalived,多个内部IP地址的HAProxy实例(不确定它是否可行) 有一个更好的方法吗 ?

4
自动缩放MySQL服务器的方法?
我运行的网站流量激增,因此自动缩放解决方案在这种情况下非常有利可图。当前,Web服务器能够水平自动缩放,但瓶颈在MySQL服务器上。 我已经尝试过使用Amazon RDS Multi-AZ,但是12 GB数据库的升级大约需要15分钟,而停机时间则是几分钟。当我已经知道在某个特定时刻将会出现流量激增时,它就起到了很大的作用。 我也考虑过Xeround。尽管对于这种规模的数据库而言,这是非常昂贵的,但这可能是最好的解决方案。无论如何,这不是一个选择,因为我在法律上需要数据库位于欧盟。 我已经阅读了有关Scalr的内容,但不确定是否有帮助以及如何使用。 我已经看到许多云托管提供商都提供了垂直扩展解决方案,我认为停机时间为零(据我所知,他们使用Xen虚拟机管理程序无法确定这是否真的可能)。那可能是一个解决方案,但我想知道它是否没有停机时间,以及MySQL配置(以及操作系统上的许多其他功能)如何能够在没有停机时间的情况下进行升级。 我已经尝试过使用MySQL从属服务器,但这根本没有帮助。 我正在使用memcache,它可以提供很多帮助,但还不够。我需要升级的原因是写入,而不仅仅是读取。 有什么建议么?先感谢您
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.