微信号:infoqchina

介绍:有内容的技术社区媒体

影响可扩展性的十宗罪

2013-06-25 16:32 InfoQ

Sean Hull是一名工作于纽约的技术咨询顾问,同时也是Oracle & Open Source一书的作者。最近,他在自己的博客上发布了一篇文章,指出5种“罪过”会对可扩展性产生致命影响。他在2011年发布过一篇文章,其中也提到5种罪。加起来,正好是影响可扩展性的“十宗罪”。


第一宗:磁盘I/O慢,使用RAID5,使用多租户EBS


Raid 5有什么问题?


Raid 5是为了用更少磁盘提供更多的空间。常常用于磁盘插槽比较少的服务器,或者就是因为运维人员不知道它对性能的影响有大。在数据库服务器上用会特别不好。


多租户的问题是尼玛怎么回事?


在云上,可以共享服务器、网络和磁盘,就像共享某间公寓一样。Amazon的EBS(Elastic Block Storage,弹性块存储)是对这个比喻的扩展,为你提供存储网络令人欣喜的灵活性。但是你的瓶颈就是:与其他租户争抢同一个存储网络。


第二宗:用数据库处理队列


MySQL在很多地方都做得很好,但是在处理应用程序排队方面却并不理想。


第三宗:用数据库进行全文搜索


最好采用Apache Solr等经过验证的搜索解决方案,它专门用作搜索,有非常好的库,开发者可以使用多种现代web语言进行开发,并且非常容易扩展。


第四宗:每个层次的缓存不够


缓存,缓存,及更多的缓存。Memcache,varnish,浏览器缓存。


第五宗:太多技术欠债


技术欠债总有一天要还的。


第六宗:对象关系映射器


如果用ORM实现SQL查询,数据库将无法优化复杂的查询。而且ORM不允许对查询的简单调整,拖慢调优过程。


第七宗:同步、串行、耦合或锁定进程


在web应用里,锁相当于现实世界中的交通信号灯。如果将交通灯换成环形交通枢纽可以显著提升流量。因为如果你去一个交通流量很小的地方,没有人会在交通灯下做无用的等待。更重要的是:如果有车流量很大,环形枢纽可以让车辆保持流动。


第八宗:只有一份数据库拷贝


如果没有复制机制,那么你的数据库就只有一份。所有的web服务器只能使用唯一的后端数据存储,它就会成为漏斗或瓶颈。


第九宗:没有定量衡量标准


没有衡量标准是可扩展性的一剂毒药,因为你无法以可视化方式看见系统中发生了什么。


第十宗:缺乏功能标志


如果你的网站流量猛增,而你不能施展魔法来扩展和提升流量,有内建的功能标志,运维团队就可以在不让网站宕机的前提下,降低服务器负载。


***********************************

点击“阅读原文”查看更多内容

喜欢请点右上角分享到朋友圈:)

InfoQ微信公众账号:infoqchina

***********************************

 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 8年了,没想到我们是这样的开源中国…… Box公司65岁高龄Android工程师给创业者的忠告! web前端 【开发】到底是什么? udacity机器学习三步曲 Apple的App Analytics统计平台你必须知道的