[转帖]linux sysbench (一): CPU性能测试详解

linux,sysbench,cpu,性能,测试,详解 · 浏览次数 : 0

小编点评

## sysbench CPU 测试参数和结果详解 这篇文章对 sysbench 中 CPU 测试参数和结果进行详解,并附录了执行命令的相关分析。 **1. sysbench CPU 测试参数** * **`events per second`**: 平均每个线程完成的事件数量。 * **`total time`**: 总时间,单位秒。 * **`total number of events`**: 总事件数量。 * **`latency (ms)`**: 完成一个事件的平均延迟时间(毫秒)。 * **`95th percentile`**: 95% 的事件完成时间。 * **`execution time (avg/stddev)`**: 每个线程平均运行时间和标准差。 * **`events (avg/stddev)`**: 平均每个线程完成事件的数量和标准差。 * **`execution time (avg/stddev)`**: 每个线程平均运行时间和标准差。 **2. 示例结果分析** 该案例的结果显示了在两个服务器上对相同 CPU 测试参数的性能对比: * 对于相同素数上限和线程数,相同时间,比较`events相同event`、`latency相同event`和`stddev(标准差)`这三个指标时,两个服务器结果基本一致。 * 这说明多个线程对同一个事件计算的效率基本相同。 **3. 其他参数说明** * `--cpu-max-prime`: 设定素数生成数量的上限,默认值为 10000。 * `--threads`: 指定线程数,默认值为 1。 * `--time`: 指定运行时间的单位,默认值为秒。 * `--events`: 设置事件上限次数,默认值为 100。 * `--concurrency`: 设置并发执行线程数,默认值为 1。 **4. 总结** 该案例说明了 sysbench 中 CPU 测试参数和结果的含义,以及如何通过分析结果进行性能比较和优化。

正文

  • http://t.zoukankan.com/fzxiaomange-p-sysbench-cpu.html

     

    网上sysbench教材众多,但没有一篇中文教材对cpu测试参数和结果进行详解。
    本文旨在能够让读者对sysbench的cpu有一定了解。

    小慢哥的原创文章,欢迎转载


    1.sysbench基础知识

    sysbench的cpu测试是在指定时间内,循环进行素数计算

    素数(也叫质数)就是从1开始的自然数中,无法被整除的数,比如2、3、5、7、11、13、17等。编程公式:对正整数n,如果用2到根号n之间的所有整数去除,均无法整除,则n为素数。

    2.sysbench安装

    # CentOS7下可使用yum安装
    yum install sysbench
    

    3.CPU压测命令

    # 默认参数,素数上限10000,时间10秒,单线程
    sysbench cpu run
    

    4.常用参数

    --cpu-max-prime: 素数生成数量的上限

    - 若设置为3,则表示2、3、5(这样要计算1-5共5次)
    - 若设置为10,则表示2、3、5、7、11、13、17、19、23、29(这样要计算1-29共29次)
    - 默认值为10000
    

    --threads: 线程数

    - 若设置为1,则sysbench仅启动1个线程进行素数的计算
    - 若设置为2,则sysbench会启动2个线程,同时分别进行素数的计算
    - 默认值为1
    

    --time: 运行时长,单位秒

    - 若设置为5,则sysbench会在5秒内循环往复进行素数计算,
      从输出结果可以看到在5秒内完成了几次,
      比如配合--cpu-max-prime=3,则表示第一轮算得3个素数,
      如果时间还有剩就再进行一轮素数计算,直到时间耗尽。
      每完成一轮就叫一个event
    - 默认值为10
    - 相同时间,比较的是谁完成的event多
    

    --events: event上限次数

    - 若设置为100,则表示当完成100次event后,即使时间还有剩,也停止运行
    - 默认值为0,则表示不限event次数
    - 相同event次数,比较的是谁用时更少
    

    5.案例结果分析

    执行命令

    # 素数上限2万,默认10秒,2个线程
    sysbench cpu --cpu-max-prime=20000 --threads=2 run
    

    结果分析

    sysbench 1.0.9 (using system LuaJIT 2.0.4)
    Running the test with following options:
    Number of threads: 2 // 指定线程数为2
    Initializing random number generator from current time
    Prime numbers limit: 20000 // 每个线程产生的素数上限均为2万个
    Initializing worker threads...
    Threads started!
    
    CPU speed:
        events per second: 650.74 // 所有线程每秒完成了650.74次event
    
    General statistics:
        total time: 10.0017s // 共耗时10秒
        total number of events: 6510 // 10秒内所有线程一共完成了6510次event
    
    Latency (ms):
             min: 3.03 // 完成1次event的最少耗时3.03秒
             avg: 3.07 // 所有event的平均耗时3.07毫秒
             max: 3.27 // 完成1次event的最多耗时3.27毫秒
             95th percentile: 3.13 // 95%次event在3.13秒毫秒内完成
             sum: 19999.91 // 每个线程耗时10秒,2个线程叠加耗时就是20秒
    
    Threads fairness:
        events (avg/stddev): 3255.0000/44.00 // 平均每个线程完成3255次event,标准差为44
        execution time (avg/stddev): 10.0000/0.00 // 每个线程平均耗时10秒,标准差为0
    

    event: 完成了几轮的素数计算
    stddev(标准差): 在相同时间内,多个线程分别完成的素数计算次数是否稳定,如果数值越低,则表示多个线程的结果越接近(即越稳定)。该参数对于单线程无意义。

    6.结果分析

    如果有2台服务器进行CPU性能对比,当素数上限和线程数一致时:

    • 相同时间,比较event
    • 相同event,比较时间
    • 时间和event都相同,比较stddev(标准差)

与[转帖]linux sysbench (一): CPU性能测试详解相似的内容:

[转帖]linux sysbench (一): CPU性能测试详解

http://t.zoukankan.com/fzxiaomange-p-sysbench-cpu.html 网上sysbench教材众多,但没有一篇中文教材对cpu测试参数和结果进行详解。本文旨在能够让读者对sysbench的cpu有一定了解。 小慢哥的原创文章,欢迎转载 1.sysbench基础

【转帖】Linux性能优化(十三)——CPU性能测试

一、CPU上下文切换测试场景 使用sysbench模拟多线程调度: sysbench --threads=10 --time=300 threads run 使用vmstat查看CPU上下文切换: cs列上下文切换次数超过150万次。 r列就绪队列长度最大达到8,超过系统CPU的个数4,存在大量的C

[转帖]Linux 磁盘I/O 调度算法 说明

2022-08-23 13:031361转载Linux 1 Linux 4.0 IO协议栈框架图 I/O 调度算法在各个进程竞争磁盘I/O的时候担当了裁判的角色。他要求请求的次序和时机做最优化的处理,以求得尽可能最好的整体I/O性能。 Linux 4.0 IO协议栈框架图 I/O调度程序的总结 当向

[转帖]Linux中常见IO调度器

https://www.jianshu.com/p/3c16e39a005a 单队列调度算法多队列调度算法 deadline mqdeadlines cfq bfq noop none kyber 对于磁盘I/O,Linux提供了cfq, deadline和noop三种调度策略 cfq: 这个名字是

[转帖]Linux 平台使用shc 工具加密shell 脚本

2021-08-03 20:4510030原创Linux 本文链接:https://www.cndba.cn/dave/article/4642 1 shc 工具说明 shell 脚本是常用脚本,运维中经常使用,但有时候在shell 脚本中会包含一些敏感的信息,比如密码或者特殊的参数,此时我们就可以

[转帖]Linux系统多网卡环境下的路由配置

https://www.cnblogs.com/connect/p/linux-static-route.html Linux下路由配置命令 1. 添加主机路由 route add -host 192.168.1.11 dev eth0 route add -host 192.168.1.12 gw

[转帖]linux命令行下如何格式化json并进行各种json处理操作

https://blog.csdn.net/penriver/article/details/122016563 有时需要在linux 的命令行下,需要查看json的内容或针对json进行各种操作,本文针对此进行梳理、总结。 在Linux系统下基于python json.tool可以格式化json,

[转帖]Linux grep、egrep使用命令详解

https://segmentfault.com/a/1190000040654123?utm_source=sf-similar-article grep egrep区别 grep 默认不支持扩展 但可以通过-E 选择来支持扩展正则egrep 支持扩展正则 关于正则与扩展正则的区别可以看我另一篇s

[转帖]Linux kill & Java shutdownhook

https://www.jianshu.com/p/8001a66d37c9 shutdown-hook 建议加上shutdown的钩子 如果程序出现了内存溢出crash 则现在代码是没有任何保护措施的 或者说运维不小心关闭了服务器等 或者运维不小心kill了游戏服务器进程等 无法避免kill -9

[转帖]linux 调优篇 :硬件调优(BIOS配置)* 壹

https://blog.csdn.net/tony_vip?type=blog 一. 设置内存刷新频率为Auto二. 开启NUMA三. 设置Stream Write Mode四. 开启CPU预取配置五. 开启SRIOV六. 开启SMMU 通过在BIOS中设置一些高级选项,可以有效提升虚拟化平台性能