随笔分类 -  性能架构

摘要:http://software.intel.com/zh-cn/blogs/2011/12/26/400009546/?cid=sw:prccsdn2127 看到这个题目的时候,读者可能会诧异:代码也有节能与不节能之分?我们说,是的,本质上,程序所调度的是硬件资源,不合理的硬件调度,会使得设备调度效率不高,从而产生更高的能耗。实际上,随着移动终端的流行,功耗比已然成为比较处理器的重要参数。在已经上市,可能大放光彩的超级本上(Ultrabook),功耗更成为重要的考虑因素。实际上英特尔已经大量考虑了硬件层面的功耗优化,微软将在Windows8中增强功耗优化,第三方软件也将不可避免的影响到功耗,. 阅读全文
posted @ 2013-03-04 17:27 balaamwe 编辑
摘要:http://my.oschina.net/chenzuoping/blog/37747sharding恶梦国内的很多大型的网站应该都有过sharding的经验。sharding貌似是使用mysql的网站进行性能升级的最重要的手段。weibo.com,youku.com,douban.com,这此网站都是用sharding作为其性能升级的手段。sharding看起来不错,而且从weibo youku douban的用户体验来说sharding确实给发挥了作用。sharding一般都是通过把一个数据集非常巨大的表,按主键切割成多个数据表,甚至是把一个数据库分割成多个数据库。这样数据的读写压力就分 阅读全文
posted @ 2012-09-12 16:08 balaamwe 编辑
摘要:作者:Fenng|可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址:http://www.dbanotes.net/arch/taobao_arch.html日前参加了一场淘宝网架构师黄裳带来的技术分享,在最后他总计了淘宝这几年来的架构经验,这里和大家分享一下:1、适当放弃一致性2、备份和隔离解决稳定性问题3、分割和异步解决性能问题(类似 eBay 的 Asynchrony Everywhere)4、自动化降低人力成本(类似 eBay 的 Automate Everything)5、产品化管理在这里不妨对比一下 eBay 的架构经验:1、 Partition Everyt 阅读全文
posted @ 2012-09-12 15:58 balaamwe 编辑
摘要:作者:Fenng|可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址:http://www.dbanotes.net/database/database_sharding.html注:此文首发于 《程序员》杂志 2008 年 7 月刊。从 Shard 到 Sharding"Shard" 这个词英文的意思是"碎片",而作为数据库相关的技术用语,似乎最早见于大型多人在线角色扮演游戏(MMORPG)中。"Sharding" 姑且称之为"分片"。Sharding 不是一门新技术,而是一个相对简朴的软件理 阅读全文
posted @ 2012-09-12 15:54 balaamwe 编辑
摘要:在eBay,可伸缩性是我们每天奋力抵抗的一大架构压力。我们所做的每一项架构及设计决策,身前身后都能看到它的踪影。当我们面对的是全世界数以亿计的用户,每天的页面浏览量超过10亿,系统中的数据量要用皮字节(1015或250)来计算——可伸缩性是生死交关的问题。在一个可伸缩的架构中,资源的消耗应该随负载线性(或更佳)上升,负载可由用户流量、数据量等测量。如果说性能衡量的是每一工作单元所需的资源消 耗,可伸缩性则是衡量当工作单元的数量或尺寸增加时,资源消耗的变化情况。换句话说,可伸缩性是整个价格-性能曲线的形状,而不是曲线上某一点的取值。可伸缩性有很多侧面——事务的方面、运营的方面、还有开发的方面。我 阅读全文
posted @ 2012-08-29 19:01 balaamwe 编辑
摘要:http://www.infoq.com/cn/news/2008/03/ebaybase系统架构师角色关键的一方面就是衡量相互冲突的需求、决定解决方案,常常要牺牲一个方面来换取另一个方面。随着系统变得越来越大、越来越复杂,越来越多关于如何构建应用的传统智慧正在受到挑战。比如说,去年3月在伦敦召开的QCon会议上,Dan Pritchard谈论了eBay的架构。他的介绍随后得到了很多的报道,其中一个主要的结论就是eBay不使用事务,用数据一致性上的损失来换取系统整体伸缩性和性能上相当大的改进。InfoQ接着Dan Pritchard在QCon会议上的谈话与他继续讨论,以获得更多信息:为什么eB 阅读全文
posted @ 2012-08-29 19:00 balaamwe 编辑
摘要:http://duanple.blog.163.com/blog/static/7097176720101122604254/Brewer’s CAP Theorem中文版http://pt.alibaba-inc.com/wp/dev_related_728/brewers-cap-theorem.html原版:http://www.julianbrowne.com/article/viewer/brewers-cap-theorem可伸缩性最佳实践:来自eBay的经验NoSQL数据库笔谈http://www.yankay.com/wp-content/uploads/2010/02/NoS 阅读全文
posted @ 2012-08-29 18:59 balaamwe 编辑
摘要:云计算平台是非常巨大的分布式系统,需要处理庞大的处理请求,因此任何小概率事件在此平台中都必然发生。DBMS强调ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性 (Durability)。其中的一致性强调当程序员定义的事务完成时,数据库处于一致的状态,如对于转帐来说,事务完成时必须是A少了多少钱B就多了多少钱。而对于很多互联网应用来说,对于一致性和隔离性的要求可以降低,而可用性(Availability)的要求则更为明显。从而产生了两种弱一致性的理论:BASE和CAP。BASE:Basically Availble --基本可用;So 阅读全文
posted @ 2012-08-29 18:58 balaamwe 编辑
摘要:I/O bound 指的是系统的CPU效能相对硬盘/内存的效能要好很多,此时,系统运作,大部分的状况是 CPU 在等 I/O (硬盘/内存) 的读/写,此时 CPU Loading 不高。CPU bound 指的是系统的 硬盘/内存 效能 相对 CPU 的效能 要好很多,此时,系统运作,大部分的状况是 CPU Loading 100%,CPU 要读/写 I/O (硬盘/内存),I/O在很短的时间就可以完成,而 CPU 还有许多运算要处理,CPU Loading 很高。计算密集型 (CPU-bound)在多重程序系统中,大部份时间用来做计算、逻辑判断等CPU动作的程序称之CPU bound。例如 阅读全文
posted @ 2012-07-27 13:19 balaamwe 编辑
摘要:http://blog.csdn.net/yanghua_kobe/article/details/7561016本篇和大家谈谈一种通用的设计与处理模型——Pipeline(管道)。Pipeline简介Pipeline模型最早被使用在Unix操作系统中。据称,如果说Unix是计算机文明中最伟大的发明,那么,Unix下的Pipe管道就是跟随Unix所带来的另一个伟大的发明【1】。我认为管道的出现,所要解决的问题,还是软件设计中老生常谈的设计目标——高内聚,低耦合。它以一种“链式模型”来串接不同的程序或者不同的组件,让它们组成一条直线的工作流。这样给定一个完整的输入,经过各个组件的先后协同处理,得 阅读全文
posted @ 2012-07-24 14:21 balaamwe 编辑
摘要:SEDA(Staged Event-Driven Architecture)的核心思想是把一个请求处理过程分成几个Stag,不同资源消耗的Stag使用不同数量的线程来处理,Stag间使用事件驱动的异步通信模式。 更进一步,在每个Stage中可以动态配置自己的线程数,在超载时降级运行(如输出纯文字页面)或拒绝服务。 在每个Stage的通常有如下组件: Incoming Event Queue ,事件队列。 Admission Controller 阀门,拒绝服务。 Dynamically sized Thread Pool, 线程池。 Event Handler ,实际处理业务的Com... 阅读全文
posted @ 2012-01-12 11:14 balaamwe 编辑
摘要:http://www.itivy.com/ivy/archive/2011/3/7/634351294385186067.htmlFlickr.com 是网上最受欢迎的照片共享网站之一,还记得那位给Windows Vista拍摄壁纸的Hamad Darwish吗?他就是将照片上传到Flickr,后而被微软看中成为Vista壁纸御用摄影师。Flickr.com 是最初由位于温哥华的Ludicorp公司开发设计并于2004年2月正式发布的,由于大量应用了WEB 2.0技术,注重用户体验,使得其迅速获得了大量的用户,2007年11月,Flickr迎来了第20亿张照片,一年后,这个数字就达到了30亿, 阅读全文
posted @ 2011-12-25 18:08 balaamwe 编辑
摘要:作者: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 编辑
摘要:搞技术的人,时间长了,就经常会听人说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 编辑
摘要:在实际应用中,我们可能不想仅仅是把客户端的服务请求平均地分配给内部服务器,而不管服务器是否宕机。而是想使Pentium III服务器比Pentium II能接受更多的服务请求,一台处理服务请求较少的服务器能分配到更多的服务请求,出现故障的服务器将不再接受服务请求直至故障恢复等等。 选择合适的负载均衡策略,使多个设备能很好的共同完成任务,消除或避免现有网络负载分布不均、数据流量拥挤反应时间长的瓶颈。在各负载均衡方式中,针对不同的应用需求,在OSI参考模型的第二、三、四、七层的负载均衡都有相应的负载均衡策略。 负载均衡策略的优劣及其实现的难易程度有两个关键因素:一、负载均衡算法,二、对网络... 阅读全文
posted @ 2011-12-24 19:41 balaamwe 编辑
摘要:中国首届微博开发者大会在北京举行,这是国内微博行业的首场技术盛宴。作为国内微博市场的绝对领军者,新浪微博将在此次大会上公布一系列针对开发者的扶持政策,以期与第三方开发者联手推动微博行业的整体发展。图为微博平台首席架构师杨卫华演讲。以下为演讲实录:大家下午好,在座的大部分都是技术开发者,技术开发者往往对微博这个产品非常关心。最晚的一次,是12点多收到一个邮件说想了解一下微博底层是怎么构架的。很多技术人员对微博的构架非常感兴趣,就是一个明星他有300万粉丝,这个技术怎么来实现?今天在这里跟大家分享一下微博的底层机构,让大家对微博的底层技术有更好的了解。另外不管是做客户端、1.0、2.0、论坛、博客 阅读全文
posted @ 2011-12-08 16:19 balaamwe 编辑