Monthly Archives: June 2008

InfoQ 数据库架构采访文字修正稿

InfoQ 对我的采访发布后,我看到已经有网站在转载文字稿。其实口头的东西转换到文字,自己的话难免有些辞不达意的地方,征求 InfoQ 泰稳的意见后,我在这里就部分问答作一下修正,以免误导。

以下是正文:

InfoQ中文站: 作为一名资深的 DBA,大辉却在自己的 BLOG 上边写了不少关于网站架构这方面的一些文章,能不能谈谈 DBA 跟网站架构这方面的关系呢?

Fenng: 好多朋友和我开玩笑,说我做一个DBA,却总去写一些架构相关的东西,”是不是这个厨子不看菜谱,看兵法了?” 其实这二者之间我觉得是有些关系的。像数据库的维护,甚至设计、架构相关的工作,做到一定程度上还是要向前再走几步:也就是说要把我们架构相关的一些事情融合进来。当然作为一个 DBA 没必要一定要像我们的相关架构师这样,去做一些编码之类的实际工作,不过一些和 DB 结合的比较紧密的东西是一定要关注一下的,这也是我在 BLOG 上写了不少与架构相关文章的一个主要原因。

InfoQ中文站: 一般来说要提升网站的性能,瓶颈主要都有哪些,如果要解决这些瓶颈,又都存在哪些最佳实践呢?

Fenng: 在以前,可能瓶颈多数会在数据库上,也即最后瓶颈会落在 IO 上面。但是现在随着一些 Web2.0 发展而涌现出相关的技术解决方案,当前一个网站真正能否应付大流量、高并发,主要的问题还在于 Cache 能够充分、灵活、正确使用上,这点十分重要。【补充,因为这个整个话题基本是面向 Web 2.0 方面的,所以这里说 Cache 会是主要问题,如你所知,电子商务站点的话,事务处理能力无疑是比较棘手的事情】

InfoQ中文站: 一个要经受住大规模、高并发、访问量考验的成功 Web2.0 网站在设计的架构中要注意哪些东西呢?

Fenng: 这个在前期的规划中肯定是需要做一些预防性的措施,比如说选择适合的技术架构。这是第一步应该必须要考虑的事情。另外还有在产品设计上也会有很多需要注意的地方,现在我们的很多 Web 2.0 网站,包括国内的这些新兴的一些 Web 2.0 网站,多多少少存在一些过度设计的现象。这些设计不经意之间可能会对后台带来灾难性的影响,这就会对开发人员、架构师,甚至维护人员都带来很大的压力。

另一方面呢,参考当前业界上一些已经相对比较成熟的技术 DIY 搭建架构还是很关键的。我们做一个网站就好比造汽车一样,不一定非要造得像奔驰这样顶级豪华的(那成本会非常高),我们只需造一辆能跑起来,跑得很好的汽车,这可能就已经达到成功的一半了。

InfoQ中文站: 那刚才在网站性能和调优这方面,你刚才也提到了,缓存的作用是非常重要的,那么它到底处于怎么样一个重要的地位呢?如何对缓存进行优化从而提升性能?

Fenng: 就我以前的相关经验,基于 Oracle 环境的一些实践,一方面是在应用程序高并发的设计上有一些必须注意的事项,另外一个就是能否充分利用 Oracle 自己的内存,最后实质上看其是能否充分利用自己的 Cache 机制。对于 Web 2.0 网站,可能很少有使用 Oracle 数据库(多是 MySQL),但在MySQL上,一方面 MySQL 有自己的 Cache 机制,应该说还做得不错,再一个,绝大多数网站都会考虑使用像 Memcached 这样的外部组件进来,然后在这个地方,其实我们最后考量的是命中率,衡量命中率的高低,这是大家必须要注意的扩展性、性能指标。

命中丢失的 I/O 实际上最后压到我们的数据库上,到数据库的 I/O 命中再丢失有可能会压到最下面的磁盘上,这样磁盘【或存储】一定要能支撑住我们当前的最低需求。举个最简单的例子,我们的应用 Memcached,可能前面的 I/O 命中率是 80%,那么有剩下的 20% 会压到后面的 DB 上,这个 DB 的命中率有可能达到95%,剩下的5%,乘以前面那个 20%,总体 I/O 量 x 20% x 5%,这个 I/O 量会打到最后端的硬盘【或存储】上。而硬盘【乃至存储】的整体响应能力又是有限的…我们或许是做 RAID,也甚至可能出现单块硬盘支撑应用这样的情况。从这个基础往前推,就能计算出我们当前的系统能承载 Cache 的瓶颈,进一步知道整体 I/O 的处理能力。在设计的时候,一定要考虑到这样的情况,否则当压力突然增加到我们不能承受的时候,临时做一些扩展的手段,可能就会比较麻烦。

InfoQ中文站: 你刚才说到Cache命中率,那对于一个比较成功的这种网站,它Cache命中率一般会在多少呢?

拿 Oracle 来说,它本身的命中率做到 90% 甚至是 99.99 这样的情况,在MySQL的环境下可能做不到这样, Memcached 据我所知,可能70%~80%已经不错了【不同的应用表现差异很大,比如豆瓣的朋友告诉我他们命中率是 97% ! 】。当然命中率只是一个表面的现象,我们还要看实际真正的应用程序到底是怎样,可能不同的 Web 应用类型所能承载的访问频率也不大一样,所以并没有固定的比例,这里只能是凭一些经验。总体来说肯定是命中率越高,会越好一些。

第一部分先到这里。明天有时间修正剩下的部分。

此文作者:, 位于 Arch 分类 标签: , on .
转载须以超链接形式标明文章原始出处和作者信息及版权声明.

个人技术学习路上的那些事儿

上个礼拜三下班后和同事东哥闲聊,说起各自走的技术路线,回忆了不少以前学习路上走的弯路。今天想起来,越发觉得有意思。

最近好几个同事都对 Python 感兴趣,由这个开聊。我开玩笑说,当初我还搞过几天 Python 呢,如果坚持到现在…嘿,可能都饿死了。几年前,Python 新手估计真的养活不了自己。这倒幸亏自己没有坚持下去。其实还在学校那会儿,自己也不知道学什么好,好比没头苍蝇乱窜,东一耙子,西一扫帚,现在看来,这倒是个好事情,起码自己知道了那些东西不适合自己。

要说那会儿学习热情可真是高啊,节衣缩食买了好多图书回来,可真正啃完的其实没几本。我经常自欺的说,每本书学到一个知识点,如果累计起来也不少了。谁让咱是非科班的呢。每次搬家,那些舍不得扔掉的书都是一层灰…

如果怨天尤人一点的话,最坑人的是谭浩强的那两本 BASIC 和 C 的教材,绝对是坑了一大群学生,尤其是 C 语言那本书,把好好的 C 变成了数学算法实现工具,说起来不怕丢人,对于 C 我现在还是门外汉。倒是东哥说的这句话让我感觉很是欣慰,”并不是某个语言太难了,很可能这个语言不适合你” — 当年可能大家都干过类似的事儿。还记得当年学校的一景: 一个菜鸟掤着本厚厚的 Delphi ,对着书上的例子在计算机前狂敲代码(上机时间有限嘛)。可是,那些人到哪里去啦?

最近有两三位朋友给我发邮件来,要我说说怎么能做个 DBA。我想每个人的经验可能都是不可复制的,正如一路走来,沿途的风景也不尽相同。刚开始工作的时候,很难确定什么是自己真正感兴趣的,作数据库管理也是这样,没有把你扔到实际的环境中,你不会知道自己是否喜欢这份工作的。如果要我说点经验,那可能最主要的一句是“隔河观景的心态应该尽量避免”

EOF

此文作者:, 位于 Geek 分类 标签: on .
转载须以超链接形式标明文章原始出处和作者信息及版权声明.

Vista 下支付宝控件、证书的相关使用问题

整理一下 Windows Vista 下使用支付宝控件、证书的常见问题。

问题:错误提示 “Cenroll 为空或不是对象,错误代码 800A138F

场景:安装支付宝数字证书时出现。

解决办法:
1) 确保 Windows Vista 服务 Protected Storage 是启动的。开始->控制面板(经典视图) -> 服务–Protected Storage
2) 确保 https://www.alipay.com 在 IE 的信任站点中。
3) 下载微软 Cenroll 控件

另一个同事告诉我,降低 IE 安全级别也可能解决问题。但这毕竟也会带进来新的隐患。

问题:浏览器页面自动关闭

场景:Vista 操作系统,IE7 浏览器,在登陆支付宝的时候出现页面自动关闭。

解决办法:开始->控制面板(经典视图) -> 用户账户 -> 打开或关闭”用户账户控制” ->
“使用用户帐户控制(UAC)帮助保护您的计算机” ,点击把”对号” 去掉,确定。

按提示重启电脑。严格来说,这不是个很彻底的解决方案,但是目前 Vista 的 UAC 机制并不是很灵活。我们可以针对 IE 设置下面提到的 “Configure an application to always run elevated” 模式,这样安全性稍微好点。

附注:UAC 关闭是否安全? 见仁见智的问题。UAC 是个好东西,但是过份作为就变成了对用户的干扰。另外,说一下这个 Vista 上的一个很关键的特性,熟悉 Ubuntu 的朋友会发现这和 Ubuntu 的设计哲学(或者 Unix 的 sudo 机制)有些神似.

友情提示

遇到类似的问题,第一入手点是查找 Windows 系统日志,然后根据日志中的关键词进行搜索引擎查询。尽量不要用
“自动关闭”之类的信息去查,耽误时间。

BTW: 针对这个贴只算整理者,将持续更新。尽管转载。有相关问题可以在这个帖子下面提问,也便于我整理出更多的问题。

EOF

哪有那么多云计算

或许没几个人能说明白到底什么算是云计算(Cloud Computing),但这并不妨碍大家讨论他的热情,并且热心的与之套近乎,恨不得分身两处,自己给自己隔着虚空贴上云计算的标签。

云计算,离不开规模吧? 每家公司都把自己网站弄得和信息孤岛差不多,突然就喊着云计算? 要用户怎么相信呢? Amazon 早在抛出云计算概念之前多少年,就已经提供 Web Service,这个预热过程几乎是不可避免的。对比国内,还是要补一点课的吧。

云计算,离不开核心基础架构吧? Google 有 Bigtable + MapReduce ,Amazon 有 Dynamo ,国内有那家公司弄个自己的架构并形成论文给业界看看呢? 简单的弄个名字出来怕是也没什么意义的。

另一个类似的例子是 Facebook 的开放带来的业界跟风,现在甚至天涯社区开始东施效颦…看看天涯那烂页面结构吧,谁好意思吧内容引到自己的站点上呢?

以前都说中美互联网差距有点距离,但单从嘴皮子上看,其实没什么距离–几乎是同步的的嘛。人人都言必称云计算的时候,不妨给这东西泼点冷水。该喝豆浆喝豆浆,该吃油条吃油条。满汉全席大可作为文化给大家熏陶一下就成了。

EOF