设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客

龙芯2F平台Web性能测试报告(下)

2008-8-19 01:56| 发布者: joejoe0332| 查看: 2027| 评论: 2

  上期我们发布的龙芯2F平台Web性能测试报告引起了广泛关注,许多热心读者通过各种方式向我们表达了自己的看法与建议,在此表示感谢。一些读者也指出,单凭静态页面的处理能力评估处理器和硬件平台,并不具备完整性。的确,在这个Web 2.0大行其道的时代,静态页面的应用范围越来越小,这是无可争议的事实。本次测试的下半部分,我们就通过3个相对复杂的测试用例,考察了两个硬件平台承载动态页面时的性能。

  动态页面的基础是对象脚本语言和数据库,我们首先要做的是搭建一个满足需求的测试环境。在之前的测试中,两个平台都已装好Linux和Apache,实验室工程师直接在此基础上安装了PHP和MySQL,构建了一个完整的LAMP(Linux/Apache/MySQL/PHP)环境。以高性能、低成本著称的LAMP是当前主流的开发和应用环境之一,我们也希望这次测试能为诸多开源平台下的开发者和用户带来帮助。考虑到基于PHP的应用中经常涉及到对图像的处理,我们也安装了GD库的所有组件,并建立了必要的关联。

  测试环境搭建完成,接下来就是应用环境和测试用例的选择。对此,实验室工程师的原则是,既能充分考察硬件平台的性能,又要具备实用性和代表性。应用环境的最终选择是Discuz!网络论坛,它有足够多的部署基础,程序结构和算法又相对复杂,操作模型也便于测试仪实现。基于它我们可以打造很多与实际应用紧密关联的测试用例,通过考察HTTP最大新建连接能力,全面地反映出被测平台的Web性能。

 

  Discuz!(6.0.0_SC_UTF8)的安装过程很简单,并且安装完毕后的默认配置已经在保证兼容性的前提下对性能进行了优化。工程师很快就在两个平台上成功搭建出新论坛,虽然只有一个用户、一个默认板块并且从未发表过帖子,但论坛首页的正常显示意味着LAMP四大组件已经全部处于带负载的工作状态。这个首页就是我们第一个测试用例,龙芯平台每秒最大可以处理11个访问请求,而对比平台则可以处理20个。

  打开论坛的验证码模块,利用GD库实时生成图片验证码,增加处理器运算单元的负担,是我们计划中的第二个测试用例。但在实施过程中,我们发现Discuz!为提高运行效率,只有在使用鼠标点击验证码输入框时,才会生成随机验证码图片,而测试仪很难模拟这个行为。程序的复杂结构为代码分析制造了很大障碍,我们最终放弃了寻找并提取功能模块的想法,转而在首页的源文件中编写了一段原理、功能相似的代码作为替代。这一次,龙芯平台每秒最大事务处理能力降到9,而对比平台则降为16。

  从降幅中可以看出,通过GD库输出随机验证码图片对处理器造成的负载并不大,大量资源被论坛复杂的脚本解析和数据库操作所占用。为了证明这一点,我们把刚才编写的代码单独保存成一个脚本进行了测试,即第三个测试用例。龙芯平台每秒最大可以处理43个访问请求,而对比平台的每秒最大事务处理能力则高达104,与之前的推测相吻合。

 

  整理一下三次的测试数据,发现一个很有意思的情况。从脚本的复杂程度来说,随机验证码图片的生成最简单,论坛首页次之,两者结合最复杂,这也可以从两个平台测试成绩的纵向比对中被证明。再横向比对一下,单独考察随机验证码图片的生成,龙芯平台的性能约为对比平台的41%;单独考察论坛首页,龙芯平台的性能是对比平台的55%;而在两个测试用例相结合的情况下,龙芯平台性能约为对比平台的56%。脚本越复杂,两个平台的性能差距越小。

  我们推断,造成这种情况的罪魁祸首主要是处理器流水线级数的差异。处理的事务模型越复杂,中断流水线操作的可能性就越大。而事务模型相同的情况下,流水线越长,中断流水线操作的代价就越大。Northwood核心的 Celeron处理器流水线高达21级,是龙芯2F的两倍多,也就不难理解为何测试脚本越复杂,两个平台的性能差距越小。如果有机会,我们一定找一颗31级流水线的Prescott核心Celeron处理器来验证这个推断。

  客观地讲,龙芯2F平台在测试中的综合表现是基本令人满意的。静态页面的处理能力体现出I/O、缓存等架构方面的先进性;动态页面的测试结果表明运算单元的性能还有待提高,这可以通过提高频率等方式解决。物理特性是优势所在,低功耗带来了低发热,在恒温28度的实验室环境下,龙芯处理器连续满载工作24小时后散热片温度仅为57度,被动散热就足以满足需求,环境适应性比较突出。

 

  随着应用范围的逐步扩展,我们认为龙芯要优先解决的已不再是处理器的问题,而是编译器的问题。对于通用处理器来说,一个适用的编译器不但可以最大限度地发挥硬件平台的性能,更可以有针对性地弥补某些性能弱项。应用层面越高,这一点越重要,毕竟处理复杂事物时影响性能的关键因素就是最短的那块木板。

  缺乏自己的编译器,这个问题已经开始制约龙芯平台性能的发挥。我们注意到,ST在相关文档中提到龙芯2F处理器已具有类SSE形式的SIMD指令集,没有相应的编译器,又如何能让这些指令发挥作用?进一步讲,如果通用编译器现在还基本能发挥龙芯2号处理器的性能,又能让即将面世的龙芯3号多核处理器发挥出多少性能呢?如果那个时候才开始做相应的工作,恐怕为时已晚。

酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部