这是一个纯粹的理论问题,但是如果我有一个通常每天只能获得几千次点击的网站,但是每个月的几天可能会在一个月的时间内达到几十万甚至几百万次点击-3天。 该网站将是相当简陋(如在总共2-3页,每个页面上有1-2个MySQL查询和一些PHP),所以带宽不会是问题,但是绝对数量会减less网站主要关心。 云主机似乎是最好的方式,但像这样的事情,像Amazon EC2,MediaTemple,或其他东西是正确的select?
我们有一个Win2K3服务器托pipe30多个网站。 每个站点都被configuration为拥有自己独特的应用程序池 – 这样我们就可以手动回收特定站点(如果需要),而不会为其他站点中断会话。 从我读到的,这种设置的结果是,每个应用程序池工作进程得到一个桌面堆(通常是512 kb的),我们限制我们可以服务的应用程序池的数量。 http://blogs.msdn.com/b/david.wang/archive/2006/01/25/security-considerations-of-usesharedwpdesktop-on-iis6.aspx 问题: 我们所看到的是,偶尔COM +错误会被触发,大概是通过达到桌面堆的512 kb限制 – 而某些站点在我们手动回收特定应用程序池之前会变得没有响应(或者有错误)。 我知道我可以将桌面堆的限制增加到1024,并做出其他的调整/调整,但是我的任务是查明究竟是什么导致一个站点的堆最大化而不是另一个。 看来,当我们开始看到COM +的错误,它影响的网站是随机的 – 小网站或大网站(使用较多)。 它是基于进程ID吗? 交通? 任何关于理解这一点的指针都会非常好。 谢谢! JG
我是一名具有丰富经验的软件开发人员,他们为小型应用程序设置托pipe环境,每天的点击量不超过5k次。 我刚刚构build了一个SaaS应用程序,我想知道如何设置和规划我的服务器configuration,以便随业务扩展和增长。 我想从一开始就这样做,所以我需要正确的方式来build立和托pipe一个SaaS Web应用程序的build议。 信息: SaaS网站应用程序将成为业务的主要网站,因此需要处理这种stream量。 单个和单独的数据库为每个网站。 (有特定的原因,它不是所有网站的单一数据库) 我的想法: 可以在最大的AWS服务器上安装,并在单个实例上托pipe数百个站点? 如果是这样,我应该使用最大的内存服务器或CPU? 我caching了大量的数据,所以我倾向于记忆。 可以设置亚马逊更小的服务器和负载平衡整个堆栈? 我应该在实际的networking服务器本身上设置数据库,还是应该在RDS上执行? 我应该甚至使用亚马逊? 感谢您的时间和帮助。
我提供了解决以下问题的方法,并要求您的networking和服务器pipe理员专业人员validation它或在其中打洞。 我感兴趣的任何明显的攻击媒介或可扩展性问题,你可能会看到。 谢谢! 要求: HTTPS支持,由每个应用程序服务器独立处理 接近线性的水平可伸缩性 分布在不同服务器上的带宽(响应数据不全都通过LB或代理服务器返回) 像应用程序服务器和负载平衡器的故障转移 客户端 – 服务器关系 Linux友好(解决scheme不是封闭源代码) 引导友好! (即初始成本低) scheme: PUBLIC NETWORK +—–+——+——–+—–+——-> | | | | vvvv +—+ +—+ +–+ +–+ |LB1| |LB2| … |S1| |S2| … +—+ +—+ +–+ +–+ 冗余负载平衡器(LB *,通过类似DNS RR的方式,或者仅仅是故障切换):它们唯一的目的是为客户提供一些应用服务器实例的URI,然后客户端永远使用它来请求它。 最初的分配将是随机的或循环的。 应用程序服务器实例(S *)各自独立处理来自客户端的请求。 无状态架构可以让个人服务器停机。 如果客户端分配的服务器发生故障,客户端将从负载均衡器请求新的服务器。 新的应用程序服务器可以启动,向负载平衡器注册,并可以很快分配给客户端。 所有S *都将有一个子域DNS条目来共享通配符证书。 一个天真的实现可以完全在一个零冗余的服务器上完成,并根据需要委托职责进行扩展。 即时关注 防火墙和DDoS防护必须在每台服务器上进行pipe理,而不是像使用负载均衡反向代理那样进行集中pipe理。 集中configurationpipe理就像我想到的那样。 这种scheme不像Anycast DNS那样利用地理位置或服务器响应时间。 这是一个有意识的权衡服务器的亲和力的可能性,并可能在稍后被嘲笑。
我在stackoverflow问这个问题,并build议我在这里尝试: 我正在build立一个网站,用户可以上传照片,我也会把上传的照片转换成缩略图。 提前计划,如果网站变得stream行起来,我该如何扩大规模,使图像(包括原始图像和缩略图)能够存储在多台服务器上,并从多台服务器上提供服务? 也许是一个集群? 有没有开源软件可以帮助我? 谢谢。
我正在寻找开源软件来创build我自己的云计算环境,例如Ubuntu UEC或Eucalyptus。 我需要的是每个虚拟机可以使用来自多个节点(CPU,RAM)的资源。 显然,UEC和Eucalyptus都没有提供这个function。 一个例子: 我有5个硬件节点,每个2x Quadcore。 我希望一台虚拟机最多可以使用20个内核(在这种情况下)。 我的问题 哪个开源软件可以满足这个要求? #编辑# 起初,我认为现在的技术是可能的,用千兆networking连接电脑。 像VPS.net这样的公司提供的服务可以使多个节点的资源形成单个虚拟机。 (至less它似乎是如此) 这只是VPS.net的抽象? 这种方法build议吗?
我正在使用Ruby开发的现有Web应用程序和MySQL后端,但我认为通用硬件拓扑问题将适用于各种服务器体系结构。 我正在寻找一个文档/networking资源来解释和详细说明当前有关在服务器场中组织硬件的最佳做法,以便在数据库后端交付基于Web的应用程序。 目前的架构如下; HTTP Server (Apache) | Application Servers x 8 (Unicorn / Ruby-on-Rails) | MySQL Back-end (Master) \ \ MySQL Slave (primarily for performing backups) 所提出的体系结构需要比以上更具可扩展性,包括在多个HTTP服务器之前的负载平衡器,在HTTP服务器之间,多个MySQL从服务器到服务器只读请求之间分离应用服务器(将通过改变来控制在应用软件内) 主要目标是通过使用目前的最佳实践来build立一个更有弹性的系统,这是迄今为止所提出的。 但是,如果任何人都可以在这种types的环境中build议一个最佳实践的资源,或者提出一个能够赋予我们以后的弹性,性能和可伸缩性的体系结构,我将不胜感激:) 戴夫
我正在努力扩展memcached。 从他们的网站: Memcached操作几乎都是O(1)。 连接到它并发出get或stat命令不应该滞后。 如果连接滞后,您可能会达到最大连接限制。 有关要监视的统计信息的详细信息,请参阅ServerMaint。 如果发布命令滞后,则可能有许多调整问题。 最常见的是硬件问题,没有足够的RAM(交换),networking问题(带宽,丢包,半双工连接)。 在罕见的情况下,操作系统错误或memcached错误可以贡献。 那么..对我来说,这绝对不是一个O(1)的操作。 在我们站点的低到正常的负载下,memcached get和set操作的响应时间大约是0.001秒。 不错。 但是如果我们将负载增加了三倍,那么我们就会得到100倍(或极less数情况下为1000倍)的exception值。 我甚至有一个例子,memcached用了2.2442秒来存储一个值。 显然这是杀害我们的网站。 这是Memcached-> getStats在缓慢期间的输出: [pid] => 18079 [uptime] => 8903 [threads] => 4 [time] => 1332795759 [pointer_size] => 32 [rusage_user_seconds] => 26 [rusage_user_microseconds] => 503872 [rusage_system_seconds] => 125 [rusage_system_microseconds] => 477008 [curr_items] => 42099 [total_items] => 422500 [limit_maxbytes] => 943718400 [curr_connections] […]
我正在为房地产业务开发一个广告网站。 问题是,这是一个创业公司,我不太积极,认为我会很快得到很多用户。 所以,我担心的是,如果在一台机器(例如一台VPS)中首先安装所有的应用程序(webserver + appserver + db),然后随着时间的推移将系统扩展到更多的服务器或集群(如果需要的话)。 最棒的是,我喜欢这个网站。
有数百万用户在谷歌,雅虎等search这么多的东西。 服务器如何处理这么多的同时search? 我不知道他们是如何使它如此可扩展的。 任何洞察他们的架构将受到欢迎。