Sysbench 开启超线程/关闭超线程性能损耗


摘要

Stress-NG 测试完之后
突然想 使用sysbenchen也进行一次压测
验证一把 超线程对数据的性能影响.

压测命令

./sysbench \
--db-driver=pgsql \
--pgsql-host=10.24.2x.xx \
--pgsql-port=5432 \
--pgsql-user=xxxx \
--pgsql-password=password \
--pgsql-db=postgres \
--threads=10 --time=30 \
--events=0 \
--report-interval=10 \
--percentile=99 ../share/sysbench/oltp_read_write.lua \
prepare ./sysbench \
--db-driver=pgsql \
--pgsql-host=10.24.2x.xx \
--pgsql-port=5432 \
--pgsql-user=xxxx \
--pgsql-password=password \
--pgsql-db=postgres \
--threads=10 --time=30 \
--events=0 \
--report-interval=10 \
--percentile=99 ../share/sysbench/oltp_read_write.lua \
run ./sysbench \
--db-driver=pgsql \
--pgsql-host=10.24.2x.xx \
--pgsql-port=5432 \
--pgsql-user=xxxx \
--pgsql-password=password \
--pgsql-db=postgres \
--threads=10 --time=30 \
--events=0 \
--report-interval=10 \
--percentile=99 ../share/sysbench/oltp_read_write.lua \
cleanup

结果分析

是否开启超线程 事务效率(每秒) 查询效率(每秒) 最小响应时间(ms) 平均响应时间 99%的响应时间
是 32核心/64线程 211.63 4329.45 20.03 47.22 102.97
否 32核心/32线程 217.78 4459.01 16.59 45.89 139.85
否 32核心/32线程 244.78 5011.98 14.43 40.82 97.55
关闭超线程提升 103% 103% 120% 103% 74%
本地部署vsdocker 112% 112% 115% 112% 143%

注意1 效率提示部分 我都换算成了越大越好

注意2 除了99%响应时间,关闭超线程对数据库都有大约3%的性能提升

注意3 使用apt 本地文件部署. 比使用docker部署性能提升12%

本地文件启动命令, 注意ubuntu的不挑一样

/usr/lib/postgresql/10/bin/pg_ctl -D /var/lib/postgresql/10/main -l logfile restart


事务效率


查询效率


响应时间


开启超线程的结果

[ 10s ] thds: 10 tps: 184.66 qps: 3794.17 (r/w/o: 2665.11/740.54/388.51) lat (ms,99%): 909.80 err/s: 4.90 reconn/s: 0.00
[ 20s ] thds: 10 tps: 204.91 qps: 4186.76 (r/w/o: 2938.01/819.93/428.82) lat (ms,99%): 114.72 err/s: 5.00 reconn/s: 0.00
[ 30s ] thds: 10 tps: 244.90 qps: 5016.71 (r/w/o: 3519.61/982.40/514.70) lat (ms,99%): 80.03 err/s: 6.30 reconn/s: 0.00
SQL statistics:
queries performed:
read: 91238
write: 25439
other: 13332
total: 130009
transactions: 6355 (211.63 per sec.)
queries: 130009 (4329.45 per sec.)
ignored errors: 162 (5.39 per sec.)
reconnects: 0 (0.00 per sec.) General statistics:
total time: 30.0274s
total number of events: 6355 Latency (ms):
min: 20.03
avg: 47.22
max: 1124.25
99th percentile: 102.97
sum: 300089.92 Threads fairness:
events (avg/stddev): 635.5000/10.03
execution time (avg/stddev): 30.0090/0.01

关闭超线程的结果

[ 10s ] thds: 10 tps: 185.66 qps: 3793.26 (r/w/o: 2662.08/740.56/390.62) lat (ms,99%): 893.56 err/s: 4.20 reconn/s: 0.00
[ 20s ] thds: 10 tps: 243.81 qps: 5002.51 (r/w/o: 3511.78/975.32/515.41) lat (ms,99%): 81.48 err/s: 6.40 reconn/s: 0.00
[ 30s ] thds: 10 tps: 223.70 qps: 4590.28 (r/w/o: 3222.39/893.50/474.40) lat (ms,99%): 144.97 err/s: 6.70 reconn/s: 0.00
SQL statistics:
queries performed:
read: 94010
write: 26123
other: 13815
total: 133948
transactions: 6542 (217.78 per sec.)
queries: 133948 (4459.01 per sec.)
ignored errors: 173 (5.76 per sec.)
reconnects: 0 (0.00 per sec.) General statistics:
total time: 30.0383s
total number of events: 6542 Latency (ms):
min: 16.59
avg: 45.89
max: 1103.25
99th percentile: 139.85
sum: 300197.16 Threads fairness:
events (avg/stddev): 654.2000/15.81
execution time (avg/stddev): 30.0197/0.01

关闭超线程以及本地文件部署的效果

[ 10s ] thds: 10 tps: 243.35 qps: 4991.08 (r/w/o: 3504.25/972.02/514.80) lat (ms,99%): 82.96 err/s: 6.10 reconn/s: 0.00
[ 20s ] thds: 10 tps: 288.50 qps: 5892.27 (r/w/o: 4134.45/1152.11/605.71) lat (ms,99%): 68.05 err/s: 6.90 reconn/s: 0.00
[ 30s ] thds: 10 tps: 202.30 qps: 4163.91 (r/w/o: 2923.90/814.10/425.90) lat (ms,99%): 893.56 err/s: 6.50 reconn/s: 0.00
SQL statistics:
queries performed:
read: 105658
write: 29400
other: 15475
total: 150533
transactions: 7352 (244.78 per sec.)
queries: 150533 (5011.98 per sec.)
ignored errors: 195 (6.49 per sec.)
reconnects: 0 (0.00 per sec.) General statistics:
total time: 30.0331s
total number of events: 7352 Latency (ms):
min: 14.43
avg: 40.82
max: 2938.61
99th percentile: 97.55
sum: 300120.33 Threads fairness:
events (avg/stddev): 735.2000/39.34
execution time (avg/stddev): 30.0120/0.01

Sysbench 开启超线程/关闭超线程以及容器运行数据库的性能损耗的更多相关文章

  1. 利用 bat 批量处理命令实现手动控制mysql /Oracle 服务的开启和关闭

    利用 bat 批量处理命令实现手动控制mysql /Oracle 服务的开启和关闭 因为最近在学习数据库的知识,主要学习的是oracle 数据库,然而好巧啊,java也是在学习,我们老师现在要我们做一 ...

  2. 程序中使用gc_enable() 和 gc_disable()开启和关闭

    在理解PHP垃圾回收机制(GC)之前,先了解一下变量的存储. php中变量存在于一个zval的变量容器中.结构如下: 类型 值 is_ref refcount zval中,除了存储变量的类型和值之外, ...

  3. win7系统服务print spooler 无法启动解决方法(开启及关闭方法)

    以下是小编从新浪博客一个大雕博客中找到的“print spooler 无法启动”解决方法,请您仔细参考. 在下的系统是Windows7正式版,因为经常要制作PDF文件,所以对虚拟打印机使用较多,在下的 ...

  4. jboss7的服务器开启和关闭命令

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  5. 使用外部容器运行spring-boot项目:不使用spring-boot内置容器让spring-boot项目运行在外部tomcat容器中

    前言:本项目基于maven构建 spring-boot项目可以快速构建web应用,其内置的tomcat容器也十分方便我们的测试运行: spring-boot项目需要部署在外部容器中的时候,spring ...

  6. 通过C#来开启、关闭、重启Windows服务

    通过C#开启服务需要这个C#程序有相应权限,比如服务的账户是Local System的就必须以管理员权限运行C#程序才能开启或关闭. 这里只写重启的方式(就是先关闭,后开启): // Security ...

  7. redis---安装和开启和关闭

    转redis---安装和开启和关闭 http://blog.csdn.net/xing_____/article/details/38457463 系统:centos6.4 redis下载:http: ...

  8. 使用python中的matplotlib 画图,show后关闭窗口,继续运行命令

    使用python中的matplotlib 画图,show后关闭窗口,继续运行命令 在用python中的matplotlib 画图时,show()函数总是要放在最后,且它阻止命令继续往下运行,直到1.0 ...

  9. service: no such service mysqld 与MySQL的开启,关闭和重启

    1.问题原因与解决办法 因为修改了MySQL临时文件的目录后,使用service mysqld restart重启MySQL出现如下错误: service: no such service mysql ...

  10. win7休眠的开启与关闭方法命令行操作和图文结合的鼠标操作

    win7休眠的开启与关闭方法 从開始菜单中找到"附件→命令提示符",手工输入例如以下命令:powercfg -a.从这里能够清楚的看到,计算机是支持休眠的.显示"尚未启用 ...

随机推荐

  1. 从中心到边缘,IoT正变为互联网之上的一张大网

    摘要:当我们从Cloud Native走到Edge Native,需要面临哪些挑战,它们各自的特点又是什么,IoT行业会迎来变革吗? 云原生.边缘计算,都是这两年的技术热词. 那么,当我们从Cloud ...

  2. LiteOS内核源码分析:静态内存Static Memory

    摘要:本文带领大家一起剖析了LiteOS静态内存模块的源代码,包含静态内存的结构体.静态内存池初始化.静态内存申请.释放.清除内容等. 内存管理模块管理系统的内存资源,它是操作系统的核心模块之一,主要 ...

  3. Kafka 源码解析:Server 端的运行过程

    摘要:Kafka网络模块之Server端,介绍Server端启动.接收请求和处理请求的过程. 本文分享自华为云社区<Kafka网络模块-Server端>,原文作者:中间件小哥 . Sock ...

  4. GaussDB NoSQL架构设计分享

    摘要:文章总结了当前数据库的发展趋势.GaussDB NoSQL关键技术解密以及核心竞争力. 本文分享自华为云社区<华为云GaussDB NoSQL云原生多模数据库的超融合实践>,作者:华 ...

  5. 火山引擎数智平台的这款产品,正在帮助 APP 提升用户活跃度

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 你有没有关注过 APP 给你推送的消息? 出于提升用户活跃度的考虑,APP 会定期在应用内面向用户进行内通推送,推 ...

  6. 火山引擎 EMR StarRocks 场景案例分享

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 日前 ,火山引擎数智平台(VeDI)旗下产品 E-MapReduce(简称"EMR")正式上线 ...

  7. 服务器上TIME_WAIT过多怎么处理

    正常情况下,TIME_WAIT是需要存在的 为了保证客户端发送的最后一个ACK报文能够到达服务器,因为这个ACK可能丢失,从而导致处在LAST-ACK状态的服务器收不到对FIN-ACK的确认报文,服务 ...

  8. LT01 创建转储单

    一.LT01创建转储单 采购订单--MIGO收货--虚拟仓位--LT01上架--实体仓位--LT01下架--虚拟仓位--MIGO发料--生产订单 二.参考代码 "-------------- ...

  9. 13、SpringBoot-配置文件里密码加密

    系列导航 springBoot项目打jar包 1.springboot工程新建(单模块) 2.springboot创建多模块工程 3.springboot连接数据库 4.SpringBoot连接数据库 ...

  10. vue学习笔记 二、环境搭建+项目创建

    系列导航 vue学习笔记 一.环境搭建 vue学习笔记 二.环境搭建+项目创建 vue学习笔记 三.文件和目录结构 vue学习笔记 四.定义组件(组件基本结构) vue学习笔记 五.创建子组件实例 v ...