Movable Type 的性能问题

我算得上是 Movable Type 的忠实用户。这两年来,WordPress 快成为 独立 Blog 的标准配置了,MT 可以说每况愈下。自从升级到 MT4 之后,明显感觉 Blog 性能糟糕了很多,每一次发文章都要与 HTTP 500 错误战斗半天才能成功,读者留言也非常费劲,有段时间非常灰心丧气,都不想继续写下去了。如果说 MT 3 之前是与 SPAM 战斗,到了 MT 4 就完全是折腾性能问题了。虽然 MT 4 之后的每次小版本发布都宣称性能上有很大改进,实际表现总是欠佳。

一些常规的 MT 优化技巧 其实作用都不大,我还把 MT 用的数据库索引分析了一遍,删掉了好几个价值不大的索引,虽然不是无用功,但也解决不了问题,因为瓶颈根本不在 DB 这里。大多数 Movable Type 用户的应用场景是在 Dreamhost 上,在这个环境里要想找到应用的瓶颈还真的是个技术活。缺乏 Profiling 工具不说,如果调用某个命令消耗了资源稍微过份一点,立刻被系统 Kill 掉。

其实 MT 的设计思想还是很不错的,大部分页面都 Build 成静态页面,减少对数据库的压力。一般来说,这比 WordPress 频繁调用数据库的方式(当然 WP 是可以起用 Cache 的),应该在性能上有更好的表现才是。问题是 Dreamhost 对每个用户提供的硬件资源其实是很差的,尤其是磁盘 I/O 。我的所有页面加起来也不过几千个,如果只是访问静态页面或是数据库其实问题都不大的,麻烦出现在构建页面或者是遇到留言行为的时候,MT 会调用若干个磁盘上的模版文件,加上 Perl 本身的系统开销,消耗的资源就到了 Dreamhost 的极限,然后进程就被无情的 Kill 掉了。估计是用户群抱怨太多,从 MTOS 4.1.1 版本开始总算有了一个性能框架 专门用以分析性能问题(并且号召用户提供性能数据以便协助解决性能问题)。启用了一段时间后,收集到的 Log 响应时间典型是这样的:

MT::Template::build[Comment Response]=0.60070
MT::App::Comments::run=28.24320
Total=28.85665

或许在 I/O 不错的系统上,表现会好吧。Dreamhost 上文件都是放置在 NFS 上的,而且众多用户共用一个系统,只能将就一下。

今天看到 4.15 的改进中,已经可以 Cache Template Module 了。甘愿作小白鼠,升级。盼望这次能有效解决特定应用场景的性能问题。不过开启了性能 Log 看了半天,效果并非很显著,

后记:

经验证的有效办法之一

通过Cache提升MT基于Tag搜索的速度,只在第一次构建需要的 Tag 时候会占用平时一样的系统资源。再次搜索时,开销大大降低。”抱怨的同时要有解决办法”。

EOF


11 thoughts on “Movable Type 的性能问题

  1. 伊兹拉莱

    我是去年才加入MT家族的,很喜欢,之前在PlusRegister主机上会遇到500错误,不过后来用DreamHost和现在用的HostMonster都没遇到过类似的情况。就是最近网页打开速度很慢。MT还可以了。

    Reply
  2. dimlau

    我一直不用Tag
    另外我还开启了后台重建,8分钟执行一次,评论速度飕飕的,当然评论后得(最多)8分钟才能显示

    Reply
  3. Shu Cho

    你好,為什麼我的mt回覆(mt-comments.cgi)很慢,大約幾十秒的樣子,我都把spam過濾插件都禁止了。

    Reply
  4. ymjzj1986

    楼主,希望你能最近看到我帖子,
    我最近才开始弄MT 有点不太懂,装的时候就出现了很多问题~现在开始使用的时候,那个网页的表示打不开,我这个网页做了要来交毕业的,现在很烦恼,希望楼主能帮我下,加我QQ 79115800.MSN [email protected]

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *