你服务的站点有多少用户?

6 views
Skip to first unread message

Ray Yu

unread,
Dec 28, 2008, 7:52:38 AM12/28/08
to TopLanguage
最近看到很多问架构的帖子,我想问下,你们服务的网站有多少用户?你们的预计和实现的并发数是多少?你们一天的pv是多少?你们主服务多少台服务器?给
连接供大家学习。

仅仅是调查文章,并非探听内幕。

bi xuan

unread,
Dec 28, 2008, 8:42:14 AM12/28/08
to pon...@googlegroups.com
我这边有个小频道每秒4W的request,我告诉你这个,你认为有多少意义?
2008/12/28 Ray Yu <coffe...@gmail.com>

最近看到很多问架构的帖子,我想问下,你们服务的网站有多少用户?你们的预计和实现的并发数是多少?你们一天的pv是多少?你们主服务多少台服务器?给
连接供大家学习。

仅仅是调查文章,并非探听内幕。



--

Ray Yu

unread,
Dec 28, 2008, 9:11:01 AM12/28/08
to TopLanguage
只是想了解一下,如果阁下认为无意义可以不做回答

On 12月28日, 下午9时42分, "bi xuan" <bix...@gmail.com> wrote:
> 我这边有个小频道每秒4W的request,我告诉你这个,你认为有多少意义?

> 2008/12/28 Ray Yu <coffeef...@gmail.com>

沈晓鹏

unread,
Dec 28, 2008, 10:05:16 PM12/28/08
to pon...@googlegroups.com
4w request,如果是http request,呵呵,那我真的不知道是哪个小频道这么牛叉了

2008/12/28 Ray Yu <coffe...@gmail.com>

pi1ot

unread,
Dec 28, 2008, 10:34:44 PM12/28/08
to TopLanguage
仅仅访问数量没有任何意义,关键要看这些访问都做什么事情.

bi xuan

unread,
Dec 28, 2008, 10:37:17 PM12/28/08
to pon...@googlegroups.com
呵呵,我觉得你该补一句:做到多少负载的时候,发生了哪些问题,然后是如何解决的:)
然后负载的评定标准是什么...比较乱了..

2008/12/28 Ray Yu <coffe...@gmail.com>



--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
徐建红  Bixuan Xu
升东网络科技发展(上海)有限公司  运维中心  
上海浦东新区张衡路180号3号楼5F 邮编 201204
Tel: +86(021)58815151-8046 Fax: +86(021)58815151-8335
MSN: jh...@hotmail.com  
Email: xu...@mail.51.com    
Visit us:http://www.51.com

Ray Yu

unread,
Dec 29, 2008, 1:57:07 AM12/29/08
to TopLanguage
麻烦问一下,每秒4万个请求,你们是通过什么检测的??当每秒4万个请求的时候,你们服务器有多少台进行响应?

On 12月28日, 下午9时42分, "bi xuan" <bix...@gmail.com> wrote:

> 我这边有个小频道每秒4W的request,我告诉你这个,你认为有多少意义?
> 2008/12/28 Ray Yu <coffeef...@gmail.com>

IChocolateU

unread,
Dec 29, 2008, 3:18:46 AM12/29/08
to TopLanguage
人就是随便一说。
重点在后面。。。

chao lu

unread,
Dec 29, 2008, 3:32:40 AM12/29/08
to pon...@googlegroups.com
也想学习一下这个。

2008/12/29 Ray Yu <coffe...@gmail.com>



--
Terry Lu
Department of Service Science and Engineering
Peking University
M.P: 0086-134-886-90089
Email: luc...@pku.edu.cn
MSN Messenger: luch...@126.com

尤寒

unread,
Dec 29, 2008, 6:13:36 AM12/29/08
to pon...@googlegroups.com
关于服务器负载,处理多少并发连接需要多少CPU资源,集群这些,有什么资料可以分享没,或者书?

bi xuan

unread,
Dec 29, 2008, 8:46:25 AM12/29/08
to pon...@googlegroups.com
这样吧,我们抛出一个案例来分析可能会比较好:
案例1:
一个频道,特性如下:文件平均文件大小在10K左右,源数据1T左右,每秒请求4Wreq,根据这样特点的频道,大家来设计一下架构,请稍微详细点。比如:使用什么软件(具体到版本号),什么硬件(具体到什么型号的cpu,多大内存),什么操作系统(具体到版本号),请说明为什么要选择这些!


2008/12/29 尤寒 <cold...@gmail.com>

关于服务器负载,处理多少并发连接需要多少CPU资源,集群这些,有什么资料可以分享没,或者书?



--

pi1ot

unread,
Dec 29, 2008, 8:52:01 AM12/29/08
to TopLanguage
最关键的不是什么系统,什么硬件,而是这4W次访问如何分配到1T/10K个文件中,是否有明显的冷热数据区别.

On 12月29日, 下午9时46分, "bi xuan" <bix...@gmail.com> wrote:
> 这样吧,我们抛出一个案例来分析可能会比较好:
> 案例1:

> 一个频道,特性如下:文件平均文件大小在10K左右,源数据1T左右,每秒请求4Wreq,根据这样特点的频道,大家来设计一下架构,请稍微详细点。比如:使用 什么软件(具体到版本号),什么硬件(具体到什么型号的cpu,多大内存),什么操作系统(具体到版本号),请说明为什么要选择这些!
>
> 2008/12/29 尤寒 <coldl...@gmail.com>

bi xuan

unread,
Dec 29, 2008, 8:57:51 AM12/29/08
to pon...@googlegroups.com
这个就是你要考虑的问题了!
--

pi1ot

unread,
Dec 29, 2008, 9:05:40 AM12/29/08
to TopLanguage
数据的更新和读取规律直接影响系统结构设计方向,没有明确的描述就没法设计这个系统,就算勉强设计出来也是个摆设。

On 12月29日, 下午9时57分, "bi xuan" <bix...@gmail.com> wrote:
> 这个就是你要考虑的问题了!
>
> 2008/12/29 pi1ot <pilot...@gmail.com>

bi xuan

unread,
Dec 29, 2008, 9:15:46 AM12/29/08
to pon...@googlegroups.com
那我补充一下:
更新:每天大概200W个文件更新,同名覆盖!
读取:(其实自己可以算了)
--

pi1ot

unread,
Dec 29, 2008, 9:47:34 AM12/29/08
to TopLanguage
典型web系统前提下,90%左右的读取集中在5%左右的热点数据上,同时假设读取方可以忍受因缓存造成的短时数据不一致,进而考虑成本的话,
最简单的做法是找10台内存8G~16G的pc服务器用memcached拼出一个内存池,用文件名hash作key,每次文件更新时主动更新
mecached,或者文件更新只删除memcached中的数据,下次读取动作再被动触发cache动作,这取决于一个刚被更新的文件会有多大概率会
接下来被请求到。
另外如果这200W个文件的更新时间集中在一天的某个时段的话,必须要考虑一次集中更新是否会导致cache系统的恶性循环颠簸,具体问题具体解决。
剩下的焦点就是实现一个能处理4w/s的前端分派server,这方面我不是很在行,不发表意见。

你也看到了,大量的假设和前提,所以我说一个充分优化和适用的系统都是在完成详细需求分析前提下才能做到的。

On 12月29日, 下午10时15分, "bi xuan" <bix...@gmail.com> wrote:
> 那我补充一下:
> 更新:每天大概200W个文件更新,同名覆盖!
> 读取:(其实自己可以算了)
>

> 2008/12/29 pi1ot <pilot...@gmail.com>

pi1ot

unread,
Dec 29, 2008, 9:52:12 AM12/29/08
to TopLanguage
补充一下,如果client能接受异步的读取返回流程,server端的在读取高峰时能好过一些。
这么多文件是肯定不能直接放fs上的,如果只有有限的服务器资源,无论怎么hash分散,文件系统都会死掉。

bi xuan

unread,
Dec 29, 2008, 9:55:27 AM12/29/08
to pon...@googlegroups.com
静态文件存在内存吗?如果机器宕机了怎么办?如何保证数据安全?
其实很多实际情况下,你完全不知道压力,更多的时候靠经验。
--

pi1ot

unread,
Dec 29, 2008, 9:58:13 AM12/29/08
to TopLanguage
实际情况就是你没有提供任何真正有用的实际情况的描述,无法详细设计。

On 12月29日, 下午10时55分, "bi xuan" <bix...@gmail.com> wrote:
> 静态文件存在内存吗?如果机器宕机了怎么办?如何保证数据安全?
> 其实很多实际情况下,你完全不知道压力,更多的时候靠经验。
>

> 2008/12/29 pi1ot <pilot...@gmail.com>

pi1ot

unread,
Dec 29, 2008, 10:06:58 AM12/29/08
to TopLanguage
如果这是一个交给我的工作,至少我还要知道我能使用多大的成本资源来达到什么样的效果?
交易系统和wiki/bbs系统的设计目标和实现方法完全不同,自然花费的成本和实现的效果也不一样。
最最happy的情况下,成本不限,每台mecached配2个实时更新的跨机房backup,来上1000台,啥也不说了,不过也只能在梦里。

On 12月29日, 下午10时55分, "bi xuan" <bix...@gmail.com> wrote:

> 静态文件存在内存吗?如果机器宕机了怎么办?如何保证数据安全?
> 其实很多实际情况下,你完全不知道压力,更多的时候靠经验。
>

> 2008/12/29 pi1ot <pilot...@gmail.com>

Jeffrey Zhao

unread,
Dec 29, 2008, 10:38:04 AM12/29/08
to pon...@googlegroups.com
memcached主要用于后台使用编程的交互,看这说法更像是纯静态文件的host,那么一个典型的做法是前端做负载均衡到缓存服务器(例如经典的Squid,现在好像Varnish有点慢慢替代Squid的样子)集群,使用一个合适的负载均衡策略(例如一个合适的hash函数)可以保证缓存的一定命中率,后端即是FS或MogileFS这种“所谓的”分布式FS(没有贬义,MogileFS可是好东西)。至于负载均衡方案的选择,从数据上看尚在Nginx的承受范围内。


Jeffrey Zhao

--------------------------------------------------
From: "pi1ot" <pilo...@gmail.com>
Sent: Monday, December 29, 2008 10:47 PM
To: "TopLanguage" <pon...@googlegroups.com>
Subject: [TopLanguage] Re: 你服务的站点有多少用户?

pi1ot

unread,
Dec 29, 2008, 8:59:40 PM12/29/08
to TopLanguage
如果client是一次读取大批连续文件而不是一次读取一个随机文件,前后台的数据结构马上就会完全不同.
所以大家都在做假设,无非你我都各自假设了一个自己熟悉的语境而已,这个命题没有继续深入讨论的必要

On 12月29日, 下午11时38分, "Jeffrey Zhao" <je...@live.com> wrote:
> memcached主要用于后台使用编程的交互,看这说法更像是纯静态文件的host,那么一个典型的做法是前端做负载均衡到缓存服务器(例如经典的Squid ,现在好像Varnish有点慢慢替代Squid的样子)集群,使用一个合适的负载均衡策略(例如一个合适的hash函数)可以保证缓存的一定命中率,后端即是 FS或MogileFS这种"所谓的"分布式FS(没有贬义,MogileFS可是好东西)。至于负载均衡方案的选择,从数据上看尚在Nginx的承受范围内。
>
> Jeffrey Zhao
>
> --------------------------------------------------
> From: "pi1ot" <pilot...@gmail.com>

bi xuan

unread,
Dec 30, 2008, 3:02:07 AM12/30/08
to pon...@googlegroups.com
简单的说吧,这个就是用户头像,刚才也说了,这个是静态文件,用memcache显然不可以。
用mogilefs可能是不错的,但是多了db层的开销,比较浪费!
--

pi1ot

unread,
Dec 30, 2008, 3:15:28 AM12/30/08
to TopLanguage
用户头像那就具体多了,我可以肯定频繁更换头像的绝定是少数,大部分用户常年不变甚至根本不用头像。
更新用户头像时他的好友是3分钟还是5分钟后看到更新消息也不重要,实时性要求也不高。
如果是客户端产品的话自己就能根据好友id算出其头像的hash分布节点,连前端那个分派服务都不需要了。
总结来说方案可以有很多,只要硬件资源不太拮据就不是什么问题。

On 12月30日, 下午4时02分, "bi xuan" <bix...@gmail.com> wrote:
> 简单的说吧,这个就是用户头像,刚才也说了,这个是静态文件,用memcache显然不可以。
> 用mogilefs可能是不错的,但是多了db层的开销,比较浪费!
>

> 2008/12/30 pi1ot <pilot...@gmail.com>

Davies Liu

unread,
Dec 30, 2008, 4:07:06 AM12/30/08
to pon...@googlegroups.com
继续讨论,不对之处欢迎指正。

每秒钟4W请求的话,假设每个连接存活时间是10秒(网速慢,或者keepalived的因素导致),则总体并发数是40W, 400k。
一台Linux服务器的本地端口数约是60k,至少需要7台前端Web服务器。

LVS似乎不能处理超过60k的并发连接吧?那就需要采用至少7个域名,或者一个域名随机解析到7个IP上。

每个Web服务器都是同构的,每个处理约40k*10k/7(不到500MB)的流量。它其实是七层负载均衡器,根据URL的哈希将请求传递到后端的缓存服务器上(可以跟前端的Web服务器公用)。

假设这些请求的热点很好,95%的请求集中在5%的内容上。那么需要至少50G内存做缓存,每秒仍然要从硬盘读取2k个文件。一个普通SATA硬盘每秒钟能随机读100个小文件的话,需要约20个硬盘。系统缓存和memcached本身的效率会低于理想状况,100G内存会更合适。

那么10台16G内存2个500G SATA盘的集群,使用10个独立的IP进行轮询,每个上面用Nginx+mod_hash模块根据URL进行分配,后端用varnish(malloc, 10G), 最后是分布式存储系统,也是基于HASH规则,存储节点可以用WebDAV。

Best regards,
Davies Liu

Hongzhang Liu

unread,
Dec 30, 2008, 4:30:54 AM12/30/08
to pon...@googlegroups.com
问个外行点的问题,头像不能在客户端缓存吗?为什么会有这么高的请求数?

2008/12/30 Davies Liu <davie...@gmail.com>:


> 继续讨论,不对之处欢迎指正。
> 每秒钟4W请求的话,假设每个连接存活时间是10秒(网速慢,或者keepalived的因素导致),则总体并发数是40W, 400k。
> 一台Linux服务器的本地端口数约是60k,至少需要7台前端Web服务器。
> LVS似乎不能处理超过60k的并发连接吧?那就需要采用至少7个域名,或者一个域名随机解析到7个IP上。
> 每个Web服务器都是同构的,每个处理约40k*10k/7(不到500MB)的流量。它其实是七层负载均衡器,根据URL的哈希将请求传递到后端的缓存服务器上(可以跟前端的Web服务器公用)。
> 假设这些请求的热点很好,95%的请求集中在5%的内容上。那么需要至少50G内存做缓存,每秒仍然要从硬盘读取2k个文件。一个普通SATA硬盘每秒钟能随机读100个小文件的话,需要约20个硬盘。系统缓存和memcached本身的效率会低于理想状况,100G内存会更合适。
> 那么10台16G内存2个500G
> SATA盘的集群,使用10个独立的IP进行轮询,每个上面用Nginx+mod_hash模块根据URL进行分配,后端用varnish(malloc,
> 10G), 最后是分布式存储系统,也是基于HASH规则,存储节点可以用WebDAV。
>
> Best regards,
> Davies Liu
>

> 2008/12/29 pi1ot <pilo...@gmail.com>

lxcypp

unread,
Dec 30, 2008, 5:42:08 AM12/30/08
to pon...@googlegroups.com


2008/12/30 Davies Liu <davie...@gmail.com>

继续讨论,不对之处欢迎指正。

每秒钟4W请求的话,假设每个连接存活时间是10秒(网速慢,或者keepalived的因素导致),则总体并发数是40W, 400k。
一台Linux服务器的本地端口数约是60k,至少需要7台前端Web服务器。

头像文件都很小,应该不需要10秒的连接存活时间,另外,如果采用UDP的协议就没有端口数限制。
 

LVS似乎不能处理超过60k的并发连接吧?那就需要采用至少7个域名,或者一个域名随机解析到7个IP上。

每个Web服务器都是同构的,每个处理约40k*10k/7(不到500MB)的流量。它其实是七层负载均衡器,根据URL的哈希将请求传递到后端的缓存服务器上(可以跟前端的Web服务器公用)。

假设这些请求的热点很好,95%的请求集中在5%的内容上。那么需要至少50G内存做缓存,每秒仍然要从硬盘读取2k个文件。一个普通SATA硬盘每秒钟能随机读100个小文件的话,需要约20个硬盘。系统缓存和memcached本身的效率会低于理想状况,100G内存会更合适。

如果有50G的热点内容,那么可以考虑使用SSD了,相对来说成本比较低了。
 

Hongzhang Liu

unread,
Dec 30, 2008, 6:10:58 AM12/30/08
to pon...@googlegroups.com
端口数限制指的是什么?

2008/12/30 lxcypp <lxc...@gmail.com>:

lxcypp

unread,
Dec 30, 2008, 7:15:16 AM12/30/08
to pon...@googlegroups.com
Davies Liu的意思是如果采用TCP的连接,每个连接要占用一个TCP的端口,系统可用的端口数量在系统中是有一个最大数量限制的(unsigned short)
UDP不存在每个连接占用1个端口的问题。

2008/12/30 Hongzhang Liu <hongzh...@gmail.com>
端口数限制指的是什么?

Davies Liu

unread,
Dec 30, 2008, 9:53:50 AM12/30/08
to pon...@googlegroups.com
使用LVS的DR模式,Load Director上的并发连接数并不受64K的限制,因此最前端的用一台LD就可以了,通过LVS随机把流量分发给多个Web Server。后面还是一样的,省去了DNS轮询的麻烦。

豆瓣的各种图片文件差不多就是这么部署的,只不过流量没这么大,还不到5k/s,用了两台服务器。

SSD 确实爽,尤其在部署静态文件方面。

Best regards,
Davies Liu


2008/12/30 lxcypp <lxc...@gmail.com>

LS

unread,
Dec 30, 2008, 10:15:08 AM12/30/08
to TopLanguage
其实我也比较关心这个问题,因为如果想在做WEB开发之前有个概念,有经验的人给这样一些数据会让我们少走一些弯路的。
有些问题没有一个感性的认识总是感觉不可捉摸

Hongzhang Liu

unread,
Dec 30, 2008, 8:20:31 PM12/30/08
to pon...@googlegroups.com
为啥你越解释我越不明白呢?TCP连接是使用四元组标志的,就算是200K个连接,服务器上除了80,还会占用啥端口?TCP连接数的限制更多的应该是由系统可用的核心内存决定的,因为每个socket都占用一定的缓冲区(大约在4k左右)。如果使用64位的操作系统,插上足够的内存,足够强劲的CPU,理论上几乎没有任何限制。

2008/12/30 lxcypp <lxc...@gmail.com>:

尤寒

unread,
Dec 30, 2008, 8:49:11 PM12/30/08
to pon...@googlegroups.com
有什么好点的这方面的书推荐下?

闫永刚

unread,
Jan 6, 2009, 12:55:26 AM1/6/09
to pon...@googlegroups.com
Tiny fool,您好!
 
  貌似我给讨论组所有人都发了一份,还有没发的么?再发一次。。。
 
======== 2009-01-05 21:32:10 您在来信中写道: ========
 
给我一份,谢谢

2009/1/5 Wang Tian Yao <tianya...@gmail.com>
Please Share me a copy, Thanks a lot.

Tim Wang


2009/1/5 杨宏 <yh547...@gmail.com>

我也要一份 谢谢

2009/1/4 闫永刚 <yan...@163.com>
尤寒,您好!

       Load Server balance 还好。我有电子版本。如有需要发邮件给我。

======= 2008-12-29 19:13:36 您在来信中写道:=======


>关于服务器负载,处理多少并发连接需要多少CPU资源,集群这些,有什么资料可以分享没,或者书?

= = = = = = = = = = = = = = = = = = = =



礼!


闫永刚
yan...@163.com
2009-01-04




--
行到水穷处,坐看云起时




--
--------------
Gmail: tiny...@gmail.com
Gtalk:   tiny...@gmail.com
Msn:     tiny...@hotmail.com
Phone: 13520711089

银杏技术咨询公司
http://www.yinxingtech.com/

Tinyfool的开发日记
http://www.tinydust.net/prog/diary/diary.htm

TV的Google观察
http://www.tinydust.net/tinygoogle/

= = = = = = = = = = = = = = = = = = = = = =

        致
礼!

 
              闫永刚
              yan...@163.com
               2009-01-06
 
Server Load Balancing.rar

Tiny fool

unread,
Jan 6, 2009, 12:58:43 AM1/6/09
to pon...@googlegroups.com
谢谢

2009/1/6 闫永刚 <yan...@163.com>

chao lu

unread,
Jan 6, 2009, 1:17:37 PM1/6/09
to pon...@googlegroups.com
多谢!

2009/1/5 Tiny fool <tiny...@gmail.com>



--
Terry Lu
Department of Service Science and Engineering
Peking University
M.P: 0086-134-886-90089
Email: luc...@pku.edu.cn
MSN Messenger: luch...@126.com
Reply all
Reply to author
Forward
0 new messages