Articles of 可伸缩性

用于邮件,文件和数据库存储的理想服务器规格/软件

我试图找出理想的设置将为几个服务器。 1)网站 1)邮件服务器 1)数据库服务器 1)文件服务器 在这个给定的情况下,假设有一个网站将为每个用户提供5GB的文件存储空间以及电子邮件和专用数据库。 从我对服务器如何工作的了解有限,我得出的结论是,每个function有1个服务器将是最好的select,所以如果脱机,其他数据不会受到影响。 什么将是一个聪明和有效的方式来处理呢? 这是我的理解 1)该网站由1个主服务器托pipe,用于处理用户注册并提供小文件。 为此,我认为一个简单的服务器设置是绰绰有余的权利? 2)对于邮件服务器,处理等量的注册用户,将主要处理电子邮件和电子邮件附件 3)数据库的大小不会受到限制,只能存储每个客户端的联系人和configuration文件设置,因此每次用户login设置时都会从数据库中提取出来。 我打算把这些设置加载到$ _SESSIONs中,这样每次页面重新加载时都不会查询数据库。但是每一个动作都会从服务器查询联系信息。 4)文件服务器将只提供文件没有CPU或内存密集型 就软件而言,我倾向于CentOs 5.5和Plesk 10.2来处理数据库服务器的网站服务器和MySQL 5,可能是邮件服务器的Atmail。 软件方面build议在每台服务器上加载哪些内容? 我没有这方面的经验,但是我每天都在获得一些经验。 我需要得到明智的通知,以便在我聘请某人为我处理设置的情况下,我知道我在处理什么。 在你的经验,什么是一个理想的硬件和软件configuration设置? 另外,请考虑5000个客户的示例用户群。 所以每个都有5GB的空间,电子邮件和自己的数据库。

在EC2上设置Rails 2.3.x应用程序,以便于扩展

我正在一台专用机器上运行一个简单的铁轨堆栈。 我们达到了我们的全部容量,并且完全没有缩放的设置,只有一台机器上只有一个应用程序。 我做了一些研究,并提出了一个可扩展性的潜在堆栈。 我不是专业pipe理员,但是我已经就如何处理EC2做了一些想法。 我仍然对文件系统共享有些不确定,这是我的主要问题。 首先,这是我正在处理的。 当前堆栈: 铁轨2.3.11 PostgreSQL的 乘客+ nginx的 delayed_job的 sphinx + thinking_sphinx imagemagick(沉重的image processing) 雅克(将解释) 我们的应用程序的function 我们的应用程序使用ImageMagick进行大量的图像上传和繁重的image processing。 它还与jaxer讨论冗长的canvas-to-image转换。 所有这一切都在延迟工作。 我们希望确保这个东西可以特别扩展。 所以我们正在谈论快速增长的文件存储需求和后台作业中的繁重image processing。 我迄今的决定: 使用橡胶gem帮助部署/pipe理 从delayed_job移动到redis / resque,以方便工作者(客户端/服务器),多个队列和sinatra Web界面的解耦 起初有一些ec2实例的应用程序,db,web,redis,resque等angular色,但是很快将redis / resque分成了单独的实例,可能更多的是 问题: 主要的实际问题是:所有的文件会发生什么? 如果我决定将应用程序angular色分成多个实例,那么如何获得共享的文件系统访问权? 另外,听到关于我的设置的一些想法总是很棒的。

SQL服务器可以处理多less个数据库?

我正在运行一个SQL EXPRESS 2005服务器,目前托pipe~50个数据库。 数据库服务于客户的CMS /电子商务网站。 连接是一个实例,没有用户连接的实例正在使用。 数据库中位数为5MB,最大为20MB。 该网站大多stream量低,CPU利用率<10%,SQL过程使用最多350MB的RAM。 现在我已经在1CPU / 1GB RAM的SQL Server Express限制之内了。 在即将到来的扩展中,数据库的数量可能翻番。 如果我假设需求线性增长,则1GB的限制仍然不会达到。 但是我担心数据库的数量(> 100)可能成为一个问题。 我不确定这种使用情况是否是微软想要expression的。 有没有关于SQL服务器快速处理大量小型数据库的信息或最好是真实世界的经验? 我可以期望它运行150个数据库,还是应该开始迁移到其他数据库服务器/基于文件的数据库?

Windows中的RSS(接收端缩放)是否被认为是不稳定的?

当要求客户在他们的数据中心启用RSS来提高networking性能(每秒很高的UDP数据包速率)时,我被告知他们通常会closures它,因为在过去的各种问题之后,Microsoft和硬件供应商(我认为是惠普)经常会要求他们closuresRSS,因为这可能会使事情变得不稳定。 这个珍闻,以及另外一个观察,即虽然RSS默认情况下在Windows 2008(我在2008 R2validation了这一点)全球启用,2012年(在R2 R2validation),默认情况下已更改为“禁用”,让我相信这种不稳定的主张可能会有一些事实。 但谷歌似乎并不是我的朋友在这里。 在Windows 2012的TechNet RSS改进页面上,似乎RSS岩石(我自己testing了一个非常高规格的Win2012R2系统上的UDP接收确认),并且仍然是扩展的方式。 这里有没有人有与RSS和稳定性分享的好/坏的经验,或一些指向问题呢?

扩展我的Web应用程序以适应大量用户的最佳策略是什么?

我想获得一些关于如何开发扩展我的Web应用程序的策略的build议/最佳实践。 我在这里华而不实,performance出我有限的知识,但想填补我的知识空白。 尽可能多地学习这些东西是很有吸引力的,但是要意识到我需要寻求一些外部的帮助,所以作为一个普遍的问题,知道外包最简单的东西是很好的。 我的背景 – 我是一名开发人员,主要从事开发用户界面,并一直致力于Flash和PHP开发应用程序的function,使用户上传图像和video以在线共享。 系统架构如下 – 一个单一的networking服务器,也充当数据库服务器(MySQL)。 这台服务器是一个托pipe托pipe包与信任和可靠的托pipe公司。 Web服务器提供PHP页面和Flash SWF,它们是主要的UI组件 Amazon S3存储桶用于存储用户的图像,video和audio文件。 用户界面组件可以是PHP页面,也可以是Flash SWF,例如通过Flash swfs查看图像和video,通过AMFPHP服务查询数据库以加载图像和video文件的URL。 然后从Amazon S3存储桶中接收这些数据。 另一个FLash SWF将上传和POSTS文件处理为在Amazon Cloud上的EC2实例上运行的PHP脚本。 上传服务器用于pipe理图像,video和audio上传。 这是在Elastic Load Balancer后面运行的Amazon EC2实例,当它看到CPU容量达到80%时,会添加更多的实例。 我们还使用在Amazon EC2上运行的第三方服务来转码video文件。 所以对于大部分我认为事情设置好可以扩大。 但是我并没有经验,如何扩大或pipe理高stream量的Web应用程序,所以将依靠我们的Web服务器托pipe公司来pipe理Web /应用服务器和数据库服务器的可扩展configuration的设置。 硬件/体系结构缩放 – 据我了解,这里的第一步是将Web服务器和数据库分开,并让数据库服务器自己运行,将Web服务器放在负载平衡器的后面,最后为数据库服务器configuration主/从configuration。 我应该问什么我的虚拟主机公司做? 什么是这样做的问题和什么是对我的AMFPHP服务,不同types的查询 – 写入和读取? 我有一个单独的脚本,其中包含数据库连接的详细信息,它包含在globals.php脚本中,因此我可以轻松地在一个步骤中更新连接详细信息。 我是正确的,在主/从configuration所有写入通常去主服务器和读取从奴隶? 这是否意味着我需要查看所有数据库查询,并确保它的“UPDATE”或“DELETE”查询发送到主数据库服务器? 在我的PHP代码中,数据库查询遍布在脚本中,并根据需要从函数内部调用。 我已经读了一些关于数据库抽象的知识,但并不完全理解这种方法的重要性。 缩放代码优化 – 我需要考虑如何改变代码以使其更具可伸缩性? PHP中有什么常见的东西受到缩放的影响? 安全 – 在考虑大量处理时,我需要注意哪些与安全有关的常见事项。 数据库优化,备份和恢复程序 – 为大型数据库的MySQL数据库实现自动数据库备份和恢复策略的最佳方式是什么? 我应该考虑拆分我的数据库 […]

在大规模的nagios自动化

我想知道你是否有经验或有关如何大规模build立nagios的任何想法。 以前我们使用nagios和nagiosql进行手动设置,对于less数几台服务器来说,这是相当舒服的。 最近服务器的数量已经改变,由nagiosql手动configuration变得不舒服。 我们使用厨师开始新的实例,我想知道是否有好的做法,一起使用厨师和nagios。 作为一种select,我们每次启动新实例时,只能使用nagios并重写nagios的configuration文件(基于服务器angular色)。 例如,情况可能是这样的,已经开始新的MySQL服务器,有一个专门的改写nagios设置文件的配方。 食谱可以从每个服务器获取厨师数据包的所有数据,并根据厨师angular色构build设置。

我需要nodejs和mongodb每秒处理5000个请求

如标题所示,我需要nodejs和mongodb来处理每秒5000个请求。 马上就是蝙蝠 我们最终会成长很多次。 我最初的想法是把每个机器放在不同的机器上,但我不确定是否应该从小机器开始,准备很快地扩展,或者从较大的机器开始,然后扩展。 无论哪种方式,我完全期望最终扩大这两个,但我想知道高档触发器会是什么。 我会扩大CPU或内存使用量吗? 如果在CPU上,我应该尝试保持平均CPU使用率? 哦,是的,我会从10gen购买支持,以便他们可以审查我的文档模型,并确保我以最有效的方式存储数据。

Nginx worker_connections的最佳值

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

有一个可扩展的开源Web BB /论坛?

有些地方说phpBB不能扩展5000个并发用户。 有没有可以进一步说FK论坛软件,说7k-10k或更多?

SVN限制 – 用户和存储库的数量?

我想知道SVN是否能够支持多less用户和存储库的特定限制? 谢谢。