并发和在线用户数的思考

  首先,在线用户数和并量之间的关系 需要搞清楚。

  根据先思考业务,得出业务特点

在系统架构时期不要着急去想那个地方会是瓶颈,怎么去优化,而是先根据业务逻辑进行分析系统的特点如下,

    业务的特点如是否上班时间使用?

    业务处理是否集中在某个固定的时间点,如早上9点为高峰期,临下班10分钟为高峰期?

    在线用户的活动特点,是半小时都不动,还是会不停的操作?

    操作的内容是什么有什么特点,是集中的系统的某一个模块还是整个系统平均承担点击?

    用户主要获取的内容是什么,纯文本、图片、视频?

    系统需要具备什么的服务水平?如响应时间,一致性需求,可靠性需求等指标,是否允许操作失败,失败的代价是什么?

    能否通过有损服务来提升系统的吞吐量?(如在100人的时候应该时间为0.1s,在1000人的时候为0.5s,用户的容忍量是什么,有损服务带来的代价是什么,能否忍受?)

根据业务特点,有针对性的设计方案

1.使用Squid或者Varnish做缓存代理,将经常访问的图片等静态内容缓存起来,提高访问速度;
2.使用CDN内容分发网络,减少主服务器的压力(附CDN相关内容:CDN通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近);
3.使用LVS服务器负载均衡,LVS服务器结合Keepalived做高可用;
4.LVS下面还可跟Nginx做负载均衡,再次分担压力,比如淘宝使用的再Nginx基础上改进的Tnginx。
5.DNS服务器上也可下功夫,比如做高级视图等等,这样可以解决不同网段访问Web服务器的速度问题;
6.最大的瓶颈还是在IO上,比如存储IO,比如数据库的IO。存储一方面需要保证数据不丢失,另一方面需要保证性能,比如做RAID、LVM;存储还需要考虑使用一套存储之间的数据同步(GFS、OCFS可以实现),数据的备份等等;数据库的话可以考虑使用查询缓存等等,这块我也正在学习中,展开有很多东西;
7.程序的话也可以优化,比如如果是Java Web程序,并且使用了Hibernate框架,就可以考虑使用查询缓存了;
8.硬件层:比如提高带宽,购买高转数性能好的硬盘等等;

摘自:(温国兵 http://www.zhihu.com/question/22002547)感觉回答的较衣详细^_^

补充:

  9.根据业务特点进行拆分,如不相关的业务拆分部署、采用无状态的服务,增加系统的水平扩展能力

10.采用针对短期变化不大的数据采用memcached,redis做缓期层,承载绝大多数的访问请求

  11.根据IT技术,优化业务流程,而不是仅仅是根据业务描述去凑方案

     12.记录系统运行过中真实数据,针对优化用数据说话而不是拍脑袋,不要为了技术而技术为了优化而优化

     13.采用业界成熟的方案而不闭门造车,但也不要迷失.

     14.和领导积极沟通,获得高层的支持和认可,并争取相应的资源,这个也是很重要的一点.

持续优化

                持续优化,不做面子工程

积累人才、技术、工具、流程和方法。

并发的比喻

      个人有个不太恰当的比喻,系统是一个写字楼,在线用户数就是里面办公的人数。并发可以指同时出门,同时乘坐电梯、上厕所、出门等的人数。

用户的满意度不仅仅取决于乘坐电梯、上厕所、出门的活动。更多的取决于能否方便到达写字楼,里面的配套设施是否够舒服、物业是否够贴心.....。

         写字楼高能够容纳的办公人数越多,理论上并发(电梯、上厕所、出门的)的压力也就越大。我们能做的就是在上、下班高峰期多开几个门,多搞几个电梯、每层多搞几个厕位^_^,把食堂放在中间的楼层;

根据人流适当调整电梯运行的楼层。对设备及时维修,减小故障率...

             

关于并发测试的术语:http://flymanhi.blog.51cto.com/1011558/1199053

  

并发和在线用户数的思考

时间: 2024-10-11 21:27:41

并发和在线用户数的思考的相关文章

“并发用户数”、“系统用户数”和“同时在线用户数”的计算公式

与并发用户数相关的概念还包括“并发用户数”.“系统用户数”和“同时在线用户数”,下面用一个实际的例子来说明它们之间的差别.         假设有一个OA系统,该系统有2000个使用用户——这就是说,可能使用该OA系统的用户总数是2000名,这个概念就是“系统用户数”,该系统有一个“在线统计”功能(系统用一个全局变量记数所有已登录的用户),从在线统计功能中可以得到,最高峰时有500人在线(这个500就是一般所说的“同时在线人数”),那么,系统的并发用户数是多少呢?         根据我们对业务

关于系统用户数,并发用户数,在线用户数,吞吐量

1.  关于系统用户数,并发用户数和在线用户数 系统用户数 侠义上来说,可以理解为系统注册用户数:广义上来说,可以理解为所有访问过系统的用户数 在线用户数 侠义上来说,可以理解为已登录系统的用户数:广义来说,可以理解为当前时间访问系统的用户数. 并发用户数 可以分两种: 1)同一时间点,执行同一(业务)操作的用户数 2)同一时间点,执行不同(业务)操作的用户数 注意:服务器实际承受的压力并不完全取决于并发用户数,详情见下面的例子. 例子(以51测试论坛为例): 作为专业软件测试论坛,会有很多测试

在线用户数与并发用户数的区别和比例关系

在线用户数:用户同时在一定时间段的在线数量 并发用户数:某一时刻同时向服务器发送请求的用户数 一般而言,我们习惯以5-20的比率来推算并发用户与在线用户之间的关系.即,并发与在线的比例约为5%-20% 比如,某网站存在注册用户数为10W人,但同时在线最多1W人,但这1W个人,可能只有500人会浏览帖子,500人会进行发帖,只有这1000个人对服务器才有交易,那我们计算并发量的时候,就可以以1000为标准! =============================================

基于express+redis高速实现实时在线用户数统计

作者:zhanhailiang 日期:2014-11-09 本文将介绍怎样基于express+redis高速实现实时在线用户数统计. 1. 在github.com上创建项目uv-tj.将其同步到本地: [root@~/wade/nodejs]# git clone [email protected]:billfeller/uv-tj.git 2. 使用npm init初始化node项目(本例不须要复杂的操作,所以暂不使用express工具来生成express应用程序骨架): [root@~/wa

关于使用HttpSessionBindingListener获取在线用户数,同一用户登陆一次

原创地址:http://blog.csdn.net/jiaoxueli/article/details/2226134 考虑到项目中统计在线用户数量和同一用户只能登陆一次的需求,查询联系 HttpSessionBindingListener接口的使用,记录以备后用,也供同样需要的同仁参考. 下面为我的测试例子,首先建个web工程,例子中程序包括:OnLineUser.java  ,login.jsp ,logout.jsp,onLineUser.jsp四个文件 OnLineUser.java清单

对mysql的高并发优化配置的一些思考

对mysql的高并发优化配置的一些思考 mysql的高并发优化配置方案很多,但是适应你自己的就变得很少了,我们对数据库的优化,无非就是为了应对mysql的高并发情况罢了.随着大数据的时代的到来和网络用户的增多,很多企业中,可能每天应对的数量达百万,千万,甚至上亿的pv量,这样的量已经是超过普通配置的mysql所承受的量,所以应对日益增长的pv量,我们需要对mysql做出相应的对策,进一步优化mysql,达到我们所预期的效果,预防因为高并发所引起的mysql宕机,通过调试优化mysql,我们便可以

关于并发用户数的思考-通过PV量换算并发

首先介绍一下pv量:PV(访问量):即Page View, 即页面浏览量或点击量,用户每次刷新即被计算一次.UV(独立访客):即Unique Visitor,访问您网站的一台电脑客户端为一个访客.00:00-24:00内相同的客户端只被计算一次.IP(独立IP):即Internet Protocol,指独立IP数.00:00-24:00内相同IP地址之被计算一次.***************************问题:一个系统的日均pv量是8000,那么并发用户数应该是多少? 1.首先,我觉

关于Java并发编程的总结和思考

编写优质的并发代码是一件难度极高的事情.Java语言从第一版本开始内置了对多线程的支持,这一点在当年是非常了不起的,但是当我们对并发编程有了更深刻的认识和更多的实践后,实现并发编程就有了更多的方案和更好的选择.本文是对并发编程的一点总结和思考,同时也分享了Java5以后的版本中如何编写并发代码的一点点经验. 为什么需要并发 ??并发其实是一种解耦合的策略,它帮助我们把做什么(目标)和什么时候做(时机)分开.这样做可以明显改进应用程序的吞吐量(获得更多的CPU调度时间)和结构(程序有多个部分在协同

多 “维” 优化——前端高并发策略的更深层思考

作者:徐嘉伟,腾讯web前端开发 高级工程师 商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处. WeTest 导读 一项指标的变好,总少不了相应优化策略的实施.优化并不是简单的一蹴而就,而是个不断迭代与推翻的过程.更深层的优化方案,往往是在某种思维策略之下,对问题场景和基本策略优缺的深刻理解后做出的当下最优的权衡结果.本文笔者从前端高并发优化这一具体点出发,逐步向大家阐述笔者在优化的"术"之上思维层面的一些思考.希望能给各位带来共鸣和感悟. 背景: 之所以会以前端高并发这