sysbench命令小记

2024-02-23 20:58
文章标签 命令 小记 sysbench

本文主要是介绍sysbench命令小记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、命令介绍

  sysbench是一个是一个开源的、模块化的、跨平台的多线程性能测试工具,它支持CPU运算性能、磁盘IO性能、调度程序性能、内存分配及传输速度、POSIX线程性能和数据库性能(OLTP基准测试)。

Usage:sysbench [options] [testname] [command]1、支持的testname fileio - 文件IO测试cpu - CPU性能测试memory - 内存功能速度测试threads - 线程性能测试mutex - 互斥锁性能测试
常规选型含义
–threads=N运行的线程数
–events=N事件上限次数
–time=N运行时长,以秒为单位

二、CPU测试

(1)常用参数


--cpu-max-prime=N: 素数生成数量的上限如果设置为3,则表示2、3、5(要计算1-5共5次);如果设置为10,则表示2、3、5、7、11、13、17、19、23、29(要计算1-29共29次),默认值为10000。--threads=N: 线程数如果设置为1,则sysbench仅启动1个线程进行素数的计算;如果设置为2,则sysbench会启动2个线程,同时分别进行素数的计算。默认值为1,即单线程。--time=N: 运行时长,单位秒。默认值为10如果设置为5,则sysbench会在5秒内循环往复进行素数计算,从输出结果可以看到在5秒内完成了几次;比如配合--cpu-max-prime=3,则表示第一轮算得3个素数,如果时间还有剩就再进行一轮素数计算,直到时间耗尽。相同时间,比较的是谁完成的event多。--events=N: event上限次数每完成一轮就叫一个event,设置为100,则表示当完成100次event后,即使时间还有剩,也停止运行。默认值为0,则表示不限event次数,相同event次数,比较的是谁用时更少。
(2)实例
[root@cp ~]# sysbench --cpu-max-prime=10000 --threads=2 --time=30 cpu run
sysbench 1.0.17 (using system LuaJIT 2.0.4)Running the test with following options:
Number of threads: 2                                        ## 运行的线程数
Initializing random number generator from current timePrime numbers limit: 10000                      ## 每个线程的素数上限Initializing worker threads...Threads started!CPU speed:events per second:   932.57                 ## 所有线程平均每秒完成event的个数General statistics:total time:                          30.0015s                   ## 总共运行时间total number of events:              27980                      ## 总共完成的event个数Latency (ms):min:                                    1.05               ## 完成1次event的最少耗时avg:                                    2.14               ## 完成所有event的平均耗时max:                                   19.26               ## 完成1次event的最多耗时95th percentile:                        7.17               ## 95%的event完成的时间sum:                                59945.85               ## 所有线程的时间综合Threads fairness:events (avg/stddev):           13990.0000/3.00                  ## 平均每个线程完成envet的次数,后一个值是标准差execution time (avg/stddev):   29.9729/0.01                     ## 平均每个线程平均耗时,后一个值是标准差注:stddev(标准差): 在相同时间内,多个线程分别完成的素数计算次数是否稳定,如果数值越低,则表示多个线程的结果越接近(即越稳定)。该参数对于单线程无意义。如果有2台服务器进行CPU性能对比,当素数上限和线程数一致时:相同时间,比较event;相同event,比较时间;时间和event都相同,比较stddev(标准差)。

三、线程测试

(1)常用参数

--thread-yields=N : 指定每个请求的压力,默认为1000--thread-locks=N : 指定每个线程的锁数量,默认为8
  (2)实例
[root@cp ~]# sysbench --threads=2 --thread-yields=1000 --thread-locks=1 threads runGeneral statistics:total time:                          10.0031stotal number of events:              4217Latency (ms):min:                                    2.18avg:                                    4.74max:                                10002.5495th percentile:                        2.48sum:                                19999.84Threads fairness:events (avg/stddev):           2108.5000/2107.50execution time (avg/stddev):   9.9999/0.00[root@cp ~]# sysbench --threads=2 --thread-yields=1000 --thread-locks=10 threads runGeneral statistics:total time:                          10.0005stotal number of events:              14193Latency (ms):min:                                    1.21avg:                                    1.41max:                                    2.2295th percentile:                        1.50sum:                                19989.23Threads fairness:events (avg/stddev):           7096.5000/8.50execution time (avg/stddev):   9.9946/0.00##对比锁的限制

这篇关于sysbench命令小记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/739905

相关文章

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作

ZOJ Monthly, August 2014小记

最近太忙太忙,只能抽时间写几道简单题。不过我倒是明白要想水平提高不看题解是最好的了。 A  我只能死找规律了,无法证明 int a[50002][2] ;vector< vector<int> > gmax , gmin ;int main(){int n , i , j , k , cmax , cmin ;while(cin>>n){/* g

Codeforces Round #261 (Div. 2)小记

A  XX注意最后输出满足条件,我也不知道为什么写的这么长。 #define X first#define Y secondvector<pair<int , int> > a ;int can(pair<int , int> c){return -1000 <= c.X && c.X <= 1000&& -1000 <= c.Y && c.Y <= 1000 ;}int m

2014 Multi-University Training Contest 8小记

1002 计算几何 最大的速度才可能拥有无限的面积。 最大的速度的点 求凸包, 凸包上的点( 注意不是端点 ) 才拥有无限的面积 注意 :  凸包上如果有重点则不满足。 另外最大的速度为0也不行的。 int cmp(double x){if(fabs(x) < 1e-8) return 0 ;if(x > 0) return 1 ;return -1 ;}struct poin

2014 Multi-University Training Contest 7小记

1003   数学 , 先暴力再解方程。 在b进制下是个2 , 3 位数的 大概是10000进制以上 。这部分解方程 2-10000 直接暴力 typedef long long LL ;LL n ;int ok(int b){LL m = n ;int c ;while(m){c = m % b ;if(c == 3 || c == 4 || c == 5 ||

2014 Multi-University Training Contest 6小记

1003  贪心 对于111...10....000 这样的序列,  a 为1的个数,b为0的个数,易得当 x= a / (a + b) 时 f最小。 讲串分成若干段  1..10..0   ,  1..10..0 ,  要满足x非递减 。  对于 xi > xi+1  这样的合并 即可。 const int maxn = 100008 ;struct Node{int

利用命令模式构建高效的手游后端架构

在现代手游开发中,后端架构的设计对于支持高并发、快速迭代和复杂游戏逻辑至关重要。命令模式作为一种行为设计模式,可以有效地解耦请求的发起者与接收者,提升系统的可维护性和扩展性。本文将深入探讨如何利用命令模式构建一个强大且灵活的手游后端架构。 1. 命令模式的概念与优势 命令模式通过将请求封装为对象,使得请求的发起者和接收者之间的耦合度降低。这种模式的主要优势包括: 解耦请求发起者与处理者

linux 判断某个命令是否安装

linux 判断某个命令是否安装 if ! [ -x "$(command -v git)" ]; thenecho 'Error: git is not installed.' >&2exit 1fi

jenkins 插件执行shell命令时,提示“Command not found”处理方法

首先提示找不到“Command not found,可能我们第一反应是查看目标机器是否已支持该命令,不过如果相信能找到这里来的朋友估计遇到的跟我一样,其实目标机器是没有问题的通过一些远程工具执行shell命令是可以执行。奇怪的就是通过jenkinsSSH插件无法执行,经一番折腾各种搜索发现是jenkins没有加载/etc/profile导致。 【解决办法】: 需要在jenkins调用shell脚