很多人向我反映过留言慢的问题啦… 事实上我自己操作也很慢, 弄得我也没啥心思写东西了. 我也一直没有想到比较好的办法来解决这个问题, 谁能给点建议?
先用比较通俗的语言解释一下问题出在哪里.
九月份我把猫窝从加州的 Dreamhost 搬到了北京的那坨 CBN 的合租服务器, 为的是解决教育网用户不加代理不花钱无法访问海外站点的问题. 北京的服务器确实速度很快, 当时在教育网做过实验, 做完实验才买的..
但我只搬了前端的脚本和文件, 数据库没有搬. 没有把数据库搬到墙内来, 一个原因是懒, 再一个是暂时对数据的安全性没有太大信心 (欢迎 CBN 的管理员跳出来强化一下我的信心…). 反正就是现在猫窝的所有数据仍然放在加州的 dreamhost 服务器上.
形象地说, 这样子一来你打开猫窝上的每个页面的时候, 北京的服务器都要先往加州的服务器发若干数据库查询请求, 等待数据回来以后再生成页面给你. 瓶颈就在这个通讯时间, 生成页面要等待数分钟之久.
后来做了一点优化, 对页面进行了缓存, 所以现在你打开一些浏览量比较大的页面, 大部分时候应该是能在数秒之内加载完的. 但是像留言这样的必然要对数据库进行读写的操作, 还是绕不开.
解决这个问题我想有几个办法. 一个是在北京做个镜像数据库, 定期和加州同步. 比较现实的办法还是把数据库搬进来, 或者把前端搬回出去 (也就是恢复原状了). 两者的利弊都比较显而易见, 反正都不完美.
Any suggestions?
P.S. 暂时来说如果你能访问国际网, 建议你用 us.blog.wangjunyu.net 访问. 对了, 还有一种解决方法就是维持现在的架构, 但是在用户访问猫窝中国时侦测到用户能访问国际网, 就在猫窝中国上给个提示, 导到猫窝美国 :)
Update: 搞定啦.