摘要: 转自http://www.cnblogs.com/owenliang/archive/2011/12/05/2276264.html众所周知, 因为现在各个UNIX分支均提供了高效了"I/O复用"接口, 比如Linux下常用的epoll, 支持N万连接仍可保证高效的事件通知 .也正是因为从以前select这种传统的事件驱动接口的存在, 所以依靠的事件驱动思想进行异步服务器开发的思想遍地开花 .Apache是靠进程/线程的数量来撑起并发接入量的, 也就是绝大多数初次接触网络编程的朋友常用的技巧, 一个Client对应一个Thread提供服务.但Apache随着时代的进步也在不 阅读全文
posted @ 2011-12-24 21:01 balaamwe 阅读(526) 评论(0) 推荐(0) 编辑
摘要: 作者:Fenng|可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址:http://www.dbanotes.net/arch/c10k_c500k.html还在谈C10K的问题?这个已经过时了,现在大家已经开始说C500K。国外的Urban Airship公司的工程师在其官方网志上发文章介绍他们在产品环境中做到 50 万并发客户端,Java + Pure NIO 的实现,最近又有文章介绍针对 Linux Kernel 调优的经验:Linux Kernel Tuning for C500k。并且指出了"单个IP最大并发数量上限为64K" 只是一个误解。硬 阅读全文
posted @ 2011-12-24 20:10 balaamwe 阅读(319) 评论(0) 推荐(0) 编辑
摘要: 作者:Fenng|可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址:http://www.dbanotes.net/arch/facebook_arch_note.html在 QCon 2008 (旧金山站) 上Facebook 做的这个技术分享有不少值得借鉴的东西。所以,暂停对 QCon 北京的回顾,临时插播一贴。设计原则尽可能的使用开源软件,并且在需要优化的时候进行优化Unix 哲学。包括,模块化原则;整合化原则;清晰化原则等任何组件具备扩展性最小化故障影响简化,简化,简化!架构概览Facebook 是 LAMP 的坚定支持者,也差不多是用 LAMP (或许用 LAM 阅读全文
posted @ 2011-12-24 20:07 balaamwe 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 来自http://www.cnblogs.com/fll/archive/2008/05/17/1201540.htmlThe C10K problem如今的web服务器需要同时处理一万个以上的客户端了,难道不是吗?毕竟如今的网络是个big place了。现在的计算机也很强大了,你只需要花大概$1200就可以买一个1000MHz的处理器,2G的内存, 1000Mbit/sec的网卡的机器。让我们来看看--20000个客户,每个为50KHz,100Kbyes和 50Kbit/sec,那么没有什么比为这两万个客户端的每个每秒从硬盘读取4千字节然后发送到网络上 去更消耗资源的了。可以看出硬件不再是瓶 阅读全文
posted @ 2011-12-24 20:06 balaamwe 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 搞技术的人,时间长了,就经常会听人说san,nas,到底这两个有什么区别呢?我就知道一点,san比较贵,(当时记不住,后来想sun的服务器也是最贵的,刚好san也是贵的)看了这篇文章,总算明白了san,和nas的区别了http://bbs.51cto.com/thread-28029-1-1.html他们最大的区别就是SAN结构中,文件管理系统(FS)还是分别在每一个应用服务器上;而NAS则是每个应用服务器通过网络共享协议(如:NFS、CIFS)使用同一个文件管理系统。换句话说:NAS和SAN存储系统的区别是NAS有自己的文件系统管理。(我的理解不知道对不对,如果是san,系统是2003,那么 阅读全文
posted @ 2011-12-24 19:54 balaamwe 阅读(273) 评论(0) 推荐(0) 编辑
摘要: LVS和Nginx都可以用作多机负载的方案,它们各有优缺,在生产环境中需要好好分析实际情况并加以利用。 首先提醒,做技术切不可人云亦云,我云即你云;同时也不可太趋向保守,过于相信旧有方式而等别人来帮你做垫被测试。把所有即时听说到的好东西加以钻研,从而提高自己对技术的认知和水平,乃是一个好习惯。下面来分析一下两者:一、lvs的优势: 1、抗负载能力强,因为lvs工作方式的逻辑是非常之简单,而且工作在网络4层仅做请求分发之用,没有流量,所以在效率上基本不需要太过考虑。在我手里的 lvs,仅仅出过一次问题:在并发最高的一小段时间内均衡器出现丢包现象,据分析为网络问题,即网卡或linux2.4... 阅读全文
posted @ 2011-12-24 19:43 balaamwe 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 在实际应用中,我们可能不想仅仅是把客户端的服务请求平均地分配给内部服务器,而不管服务器是否宕机。而是想使Pentium III服务器比Pentium II能接受更多的服务请求,一台处理服务请求较少的服务器能分配到更多的服务请求,出现故障的服务器将不再接受服务请求直至故障恢复等等。 选择合适的负载均衡策略,使多个设备能很好的共同完成任务,消除或避免现有网络负载分布不均、数据流量拥挤反应时间长的瓶颈。在各负载均衡方式中,针对不同的应用需求,在OSI参考模型的第二、三、四、七层的负载均衡都有相应的负载均衡策略。 负载均衡策略的优劣及其实现的难易程度有两个关键因素:一、负载均衡算法,二、对网络... 阅读全文
posted @ 2011-12-24 19:41 balaamwe 阅读(364) 评论(0) 推荐(0) 编辑
摘要: http://basiccoder.com/memcached-memory-mamagement.htmlMemcached的内存管理在网上也可以搜集到不少不错的文章,新浪的这篇《Memcached深度分析》讲得不错,读别人的文章还是不如自己直接去读源码分析源码来得直接,这里写一下我阅读Memcached源码时对于Memcached内存管理机制的理解。Memcached的代码结构很简单,从main()函数入口进去之后便是几个模块的初始化函数,和内存管理相关的主要有两个函数,一个是assoc_init(),这个是用来初始化哈希表的,关于这个哈希表的作用留在外面讨论,另一个是slabs_init 阅读全文
posted @ 2011-12-24 18:12 balaamwe 阅读(881) 评论(0) 推荐(0) 编辑
摘要: http://basiccoder.com/thread-model-and-state-machine-of-memcached.htmlMemcached是一种应用较广泛的分布式内存对象缓存系统,应用之余总想了解它的实现机理,这也就是开源的好处,以至于每接触一款优秀的开源软件都有去阅读它源代码的冲动,Memcached-1.4.7的代码量还是可以接受的,只有10K行左右,我比较关心的两个方面还是它的进程(线程)管理机制和内存管理机制,这里先简单写一下我对Memcached进程管理方面的理解。Memcached使用libevent实现事件循环,libevent在Linux环境下默认采用epo 阅读全文
posted @ 2011-12-24 18:10 balaamwe 阅读(716) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://blog.csdn.net/helenhf/archive/2007/03/20/1534573.aspx根据APUE,程序分为下面的段:.text, data (initialized), bss, stack, heap。data/bss/text:text段在内存中被映射为只读,但.data和.bss是可写的。bss是英文Block Started by Symbol的简称,通常是指用来存放程序中未初始化的全局变量的一块内存区域,在程序载入时由内核清0。BSS段属于静态内存分配。它的初始值也是由用户自己定义的连接定位文件所确定,用户应该将它定义在可读写的RAM区内 阅读全文
posted @ 2011-12-24 15:41 balaamwe 阅读(269) 评论(0) 推荐(0) 编辑