为什么留言这么慢

很多人向我反映过留言慢的问题啦… 事实上我自己操作也很慢, 弄得我也没啥心思写东西了. 我也一直没有想到比较好的办法来解决这个问题, 谁能给点建议?

先用比较通俗的语言解释一下问题出在哪里.

九月份我把猫窝从加州的 Dreamhost 搬到了北京的那坨 CBN 的合租服务器, 为的是解决教育网用户不加代理不花钱无法访问海外站点的问题. 北京的服务器确实速度很快, 当时在教育网做过实验, 做完实验才买的..

但我只搬了前端的脚本和文件, 数据库没有搬. 没有把数据库搬到墙内来, 一个原因是懒, 再一个是暂时对数据的安全性没有太大信心 (欢迎 CBN 的管理员跳出来强化一下我的信心…). 反正就是现在猫窝的所有数据仍然放在加州的 dreamhost 服务器上.

形象地说, 这样子一来你打开猫窝上的每个页面的时候, 北京的服务器都要先往加州的服务器发若干数据库查询请求, 等待数据回来以后再生成页面给你. 瓶颈就在这个通讯时间, 生成页面要等待数分钟之久.

后来做了一点优化, 对页面进行了缓存, 所以现在你打开一些浏览量比较大的页面, 大部分时候应该是能在数秒之内加载完的. 但是像留言这样的必然要对数据库进行读写的操作, 还是绕不开.

解决这个问题我想有几个办法. 一个是在北京做个镜像数据库, 定期和加州同步. 比较现实的办法还是把数据库搬进来, 或者把前端搬回出去 (也就是恢复原状了). 两者的利弊都比较显而易见, 反正都不完美.

Any suggestions?

P.S. 暂时来说如果你能访问国际网, 建议你用 us.blog.wangjunyu.net 访问. 对了, 还有一种解决方法就是维持现在的架构, 但是在用户访问猫窝中国时侦测到用户能访问国际网, 就在猫窝中国上给个提示, 导到猫窝美国 :)

Update: 搞定啦.

“为什么留言这么慢” 有 7 条回复;


  1. 1 peiyu

    我每次留言都是在提示之前就关掉了。也能成功。只是显得不怎么稳妥而已

  2. 2 心思

    终于就此问题出现官方解释了,尽管解决毫无进展……

  3. 3 长天暮鼓

    这就要看你对数据库安全性的担心是哪方面的了,技术方面的话肯定是没有问题的,其实现在CPH服务器的数据在加州也有备份的,呵呵,另外北京还有两份,所以基本上是不用担心的。:)

  4. 4 forcey

    留言不要同步提交到数据库,先写到本地的log里面,没事的时候再异步往数据库里提交?
    orz好像很麻烦的样子

  5. 5 ssgg

    我访问速度还可以

  6. 6 Paveo

    我跳出来了 ;)

    解释几个问题:1,CPH的数据安全是我们最关心的,不能泄露用户的隐私,也得防着服务器遭毒手,所以我们对服务器上的所有数据做了20天左右的备份,所以数据绝对可靠。2,Remote DB肯定非常慢。中国的网络环境太复杂,平时CPH到Dreamhost的ping就在200多,夸张的时候可能达到500-600。所以速度肯定就慢。

    我的建议就是:把数据库搬回CPH主机,完全没有必要担心安全问题(欢迎你来参观我们的ARK数据中心 :) )。

  7. 7 Luna

    @@...哇 还真的跳出来了...

我来说两句