设为首页 加入收藏

TOP

Linux 线程库性能测试与分析(二)
2011-03-21 13:23:03 来源:IBM 作者:杨沙洲 【 】 浏览:1831
Tags:Linux 线程 性能 测试 分析
,甚至有一点损失,毕竟抢占锁的开销不可忽略;
  • 升级内核并不会对LinuxThreads线程库性能带来多少变化,因此,对于服务器系统而言,不能指望仅仅编译使用新内核就能提高性能。

  • 图7
    图7 

    图8
    图8 

    从图3、图4我们已经知道,打开超线程支持对线程创建/销毁性能几乎没有影响,而这两张图表也进一步说明,超线程技术对于线程切换开销也没有明显的影响。超线程技术是CPU内部的优化技术,和真正的双CPU完全不同。大量研究表明,如果没有内核与用户应用相结合的专门优化措施,超线程并不会带来很大的性能变化。除非是高负载综合服务器系统(例如繁忙的数据库系统),购买超线支持的CPU并不能带来多少好处。

    4. 综合性能


    图9

    图9
    图9 

    前面几节分析让我们了解了线程库性能改进的细节,通过volanomark测试,我们可以近似得到在综合应用环境下,特别是网络服务需求中线程库以及内核对系统整体性能的影响程度。

    图9综合了不同内核、不同处理机数条件下,两种线程库的volanomark结果。从图中可以观察到以下三点:

    • NPTL能极大提高SMP环境下服务器系统的整体性能(超过65%),相对而言,对单处理机系统影响较小(10%左右);
    • 2.6内核的抢占特性对系统性能影响很小(不超过±1%),某些情况下甚至有所下降;
    • 超线程技术在LinuxThreads中的影响是负面的,在NPTL中是正面的,但影响幅度都很小(5%-6%)。

    以上结论中前两点与LMBench针对性测试结果完全吻合,第三点的偏差实际上反映了超线程技术对于综合服务器环境还是有一定加速的。

     


    五、 总结

    我们的评测为广大Linux用户,特别是服务器用户提供了一点有价值的参考:

    • 如果你的是多处理机系统,那么毫不犹豫地升级你的内核,并记住,一定要同时升级你的线程库,它通常与glibc紧密耦合;
    • 如果你的系统并没有实时应用,不要打开"内核可抢占"开关,它只会让你的系统更慢;
    • 慎重考虑是否使用超线程技术,即使你已经购买了支持超线程的CPU,有时关闭它可能更适合你的需求。
    首页 上一页 1 2 下一页 尾页 2/2/2
    】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
    分享到: 
    上一篇云计算基础 下一篇在 POSIX 线程编程中避免内存泄漏