当前位置: 首页 > article >正文

【SysBench】从零到一:在Linux上部署sysbench-1.20进行数据库压测

1. 为什么你需要sysbench如果你正在使用MySQL或PostgreSQL这类数据库迟早会遇到一个灵魂拷问我的数据库到底能扛住多少并发请求这时候sysbench就该登场了。这个工具就像数据库的体能测试仪能模拟真实业务场景的压力帮你发现数据库的性能瓶颈。我去年给一个电商项目做性能优化时用sysbench发现了MySQL在高并发下单时的响应时间突然飙升。后来发现是索引没建对优化后QPS每秒查询数直接翻倍。这种问题光靠人眼读代码根本看不出来必须靠压测工具。sysbench有三大杀手锏多面手不仅能测数据库OLTP还能测CPU、内存、文件IO、线程调度低开销哪怕开上千个并发线程监控开销也很小可编程用Lua脚本自定义测试场景想测什么就测什么2. 两种安装方式怎么选2.1 二进制安装适合快速上手如果你只是想快速体验sysbench用二进制安装最省事。这就像下载一个现成的APP解压就能用。以CentOS为例curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash sudo yum -y install sysbench但二进制安装有个小缺点版本可能不是最新的。我有次需要测试PostgreSQL 14的新特性结果二进制版还不支持只能自己编译。2.2 源码编译适合定制化需求想要最新版本或者特殊功能比如PostgreSQL支持就得自己编译。这就像自己下厨材料新鲜还能加配料。先装依赖包yum -y install make automake libtool pkgconfig libaio-devel yum -y install mysql-community-devel.x86_64 openssl-devel yum -y install postgresql-devel这里有个坑要注意安装mysql-community-devel时可能会报GPG密钥错误。这是因为MySQL的密钥文件过期了。解决办法是手动更新密钥rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022然后就可以愉快地编译了./autogen.sh ./configure --with-pgsql # 需要PostgreSQL支持就加这个参数 make -j4 # -j后面跟你的CPU核数编译更快 make install编译完默认安装到/usr/local/bin可以用which sysbench确认位置。我习惯把编译好的二进制文件备份到云存储换机器时直接下载就能用。3. 常见安装问题排雷3.1 依赖包冲突有次在Ubuntu上编译时遇到libmysqlclient版本冲突报错信息看得一头雾水。后来发现是系统自带的MariaDB库在搞鬼。解决办法是先卸载冲突的包apt remove libmariadb-dev3.2 权限问题如果make install时报权限拒绝别急着用sudo。先试试指定安装目录./configure --prefix$HOME/.local这样就不用root权限所有文件都会安装到用户目录下。3.3 版本验证安装完一定要验证版本我有次发现sysbench --version输出不对结果发现是系统自带的旧版本在PATH里优先级更高。用绝对路径执行就正常了/usr/local/bin/sysbench --version4. 第一次压测该注意什么虽然下一篇才会详细介绍压测方法但新手常犯的几个错误我得提前预警不要一上来就开1000线程先从10-20线程开始慢慢加压测试时间别太短建议至少跑5分钟短时间测试可能有误差关注延迟而不只是吞吐量我见过QPS很高但99%延迟超过1秒的系统记得预热数据库冷启动时性能不稳定先跑1分钟预热5. 进阶技巧自定义Lua脚本sysbench自带的OLTP测试脚本在/usr/local/share/sysbench目录下。想自定义测试逻辑的话可以复制一个现有脚本修改。比如模拟电商下单场景function event() -- 模拟查询商品 db_query(SELECT * FROM products WHERE id .. random_id()) -- 模拟下单 db_query(BEGIN) db_query(INSERT INTO orders VALUES(...)) db_query(COMMIT) end这种灵活性是其他压测工具很难比拟的。去年我们就是用自定义脚本发现了Redis集群在跨机房调用时的性能瓶颈。6. 性能数据怎么看sysbench输出的报告里这几个指标最关键指标说明健康参考值QPS每秒查询量越高越好平均延迟请求平均响应时间100ms较理想99%延迟99%请求的响应时间上限不能超过SLA要求错误率失败请求占比必须接近0%我一般会把这些数据导入Grafana做趋势分析比单次测试更有参考价值。7. 真实案例一次OOM排查上个月用sysbench压测时遇到一个典型问题测试开始很顺利5分钟后MySQL突然挂掉。查看日志发现是OOM内存不足。但服务器明明有64G内存啊用sysbench的memory测试模块单独检测sysbench memory --memory-block-size1K --memory-total-size100G run发现内存带宽只有预期的一半。最后查出是NUMA配置问题加上numactl --interleaveall启动MySQL后就稳定了。这种底层问题不靠工具根本发现不了。

相关文章:

【SysBench】从零到一:在Linux上部署sysbench-1.20进行数据库压测

1. 为什么你需要sysbench? 如果你正在使用MySQL或PostgreSQL这类数据库,迟早会遇到一个灵魂拷问:我的数据库到底能扛住多少并发请求?这时候sysbench就该登场了。这个工具就像数据库的"体能测试仪",能模拟真实…...

Windows Cleaner终极指南:3分钟解决C盘爆满,让电脑重获新生![特殊字符]

Windows Cleaner终极指南:3分钟解决C盘爆满,让电脑重获新生!🚀 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你是…...

别再为JDK版本头疼了!用Adoptium JRE 13搞定OpenTCS 5.11开发环境(附完整变量配置)

开源AGV调度系统OpenTCS 5.11开发环境配置实战指南 在自动化物流系统开发领域,OpenTCS作为一款功能强大的开源交通控制系统,正逐渐成为AGV(自动导引车)调度解决方案的热门选择。然而对于初次接触该系统的开发者而言,J…...

别再手动导数据了!用PostgreSQL FDW把ClickHouse和MongoDB变成你的“超级外挂”数据仓库

异构数据联邦实战:用PostgreSQL FDW构建零延迟数据枢纽 当业务数据散落在多个异构数据库中时,传统ETL方案就像用卡车在不同仓库之间搬运货物——不仅耗时耗力,数据新鲜度也难以保证。想象一下:用户画像在PostgreSQL,行…...

Claude Code质量崩了?Anthropic认错;3人+100个AI月烧130万美元,炸了

每天更新,带你读懂科技圈。 今日看点: Anthropic正式发布Claude Code质量事故复盘;OpenClaw之父晒出130万美元月账单——3人100个AI agent震撼业界;Hermes团队砍掉预训练六成成本;GitHub Copilot推桌面应用狙击AI编程对…...

Windows Subsystem for Android终极指南:5大核心优势与完整开发实战

Windows Subsystem for Android终极指南:5大核心优势与完整开发实战 【免费下载链接】WSA Developer-related issues and feature requests for Windows Subsystem for Android 项目地址: https://gitcode.com/gh_mirrors/ws/WSA Windows Subsystem for Andr…...

冥想第一千八百八十二天(1882)

1.周六,醒的很早,然后去锦和公园转了一圈,一直在等待大雨,结果到了傍晚才下,浪费了一天,不过天气很不好,就不适合外出了。敬畏大自然。 2.感谢父母,感谢朋友,感谢家人&am…...

Keil MDK中HEX文件未生成的8.3路径问题解析

1. 问题现象与背景解析 在嵌入式开发领域,Keil MDK(Microcontroller Development Kit)是广泛使用的集成开发环境,尤其针对C166系列微控制器。最近遇到一个典型问题:开发者在Vision1环境中配置了L166链接器和OH166 HEX转…...

对比ubuntu本地直接调用与通过taotoken调用的开发便捷性

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比 Ubuntu 本地直接调用与通过 Taotoken 调用的开发便捷性 在 Ubuntu 等 Linux 开发环境中集成大模型能力,开发者通常…...

终极指南:3分钟快速安装Windows官方包管理器Winget

终极指南:3分钟快速安装Windows官方包管理器Winget 【免费下载链接】winget-install Install WinGet using PowerShell! Prerequisites automatically installed. Works on Windows 10/11 and Server 2019/2022. 项目地址: https://gitcode.com/gh_mirrors/wi/win…...

明日方舟自动化:用MAA重构你的游戏体验,告别重复劳动

明日方舟自动化:用MAA重构你的游戏体验,告别重复劳动 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: h…...

别再只盯着大厂光环了:聊聊外包经历对技术人真正的价值与局限

外包经历的技术价值辩证:从职业跳板到能力陷阱的深度思考 当招聘网站上"大厂外包"的职位描述与诱人薪资同时出现时,很多技术人都会面临职业选择的十字路口。我们习惯性地将外包岗位视为"二等公民",却鲜少客观分析这段经历…...

Windows Cleaner:免费开源的系统优化神器,彻底告别C盘爆红烦恼

Windows Cleaner:免费开源的系统优化神器,彻底告别C盘爆红烦恼 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你是否经常被Windows系统C盘…...

Armv9内存拷贝指令优化与性能调优

1. Arm架构内存拷贝指令深度解析在Armv9架构中,内存拷贝操作通过FEAT_MOPS(Memory Operations)特性得到显著增强。这套指令集专为高效内存操作设计,其中CPYFP/CPYFM/CPYFE系列指令实现了分阶段的内存拷贝机制。与传统的循环拷贝相比,这种设计…...

从零到部署:用VirtualBox免费搭建你的第一个Linux服务器(CentOS 7 + 静态IP + Xshell连接)

从零到部署:用VirtualBox免费搭建你的第一个Linux服务器(CentOS 7 静态IP Xshell连接) 在技术学习与开发实践中,拥有一个稳定可靠的Linux服务器环境是每个开发者成长的必经之路。对于预算有限的个人开发者、学生群体或刚接触运维…...

ContextMenuManager:5分钟掌握Windows右键菜单管理的终极免费方案

ContextMenuManager:5分钟掌握Windows右键菜单管理的终极免费方案 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否厌倦了每次右键点击文件时&a…...

初创团队如何利用 Taotoken 模型广场快速进行 AI 技术选型

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 初创团队如何利用 Taotoken 模型广场快速进行 AI 技术选型 对于资源有限的初创团队而言,在产品原型阶段快速验证想法是…...

3步深度解决方案:彻底修复Krita AI Diffusion插件IP-Adapter缺失问题

3步深度解决方案:彻底修复Krita AI Diffusion插件IP-Adapter缺失问题 【免费下载链接】krita-ai-diffusion Streamlined interface for generating images with AI in Krita. Inpaint and outpaint with optional text prompt, no tweaking required. 项目地址: h…...

别再只认Revit了!盘点7种主流BIM数据格式(RVT/IFC/FBX...)的优缺点与选型指南

建筑数字化进阶指南:7大BIM数据格式深度解析与实战选型策略 在建筑信息模型(BIM)与地理信息系统(GIS)加速融合的今天,数据格式的选择直接影响着项目协同效率与成果交付质量。当设计院的Revit模型需要与施工…...

可定制尺寸的工业烤盘公司

江苏台烁是专注为大中型食品生产企业提供可定制尺寸全品类工业烤盘的专业厂商,核心竞争优势为全尺寸高精度定制能力搭配智能生产体系,可提供节能耐用、适配产线的工业化烘焙器具解决方案。核心优势与关键数据生产与资质基础:拥有4.8万㎡智能工…...

【LangChain 】从一行 LCEL 代码,理解 LangChain 管道操作符 `|` 的自动转换机制

从一行 LCEL 代码,理解 LangChain 管道操作符 | 的自动转换机制一、从一个代码片段说起 先看这段处理用户反馈的 LCEL 代码: processing_chain (extract_chain| RunnablePassthrough.assign(analysislambda x: analysis_chain.invoke(x["original_…...

别再只会用menuconfig了!手把手教你为ESP32项目定制专属Kconfig配置菜单

从配置使用者到设计者:ESP32项目中的Kconfig高级定制指南 在ESP-IDF开发环境中,menuconfig几乎是每个开发者每天都要接触的工具。但大多数开发者仅仅停留在"使用者"层面——他们知道如何勾选选项、调整参数,却很少思考这些配置菜单…...

告别Keil报错!手把手教你用MDK为国民技术N32G030K8L7搭建标准工程模板

国民技术N32G030K8L7开发实战:从零构建MDK工程模板的避坑指南 引言:为什么你的Keil工程总是编译失败? 刚拿到国民技术N32G030K8L7开发板时,许多开发者会直接套用STM32的工程模板习惯,结果在MDK环境下遭遇各种"玄学…...

从直流平衡到时钟恢复:深入剖析8B10B编码在高速串行链路中的核心作用

1. 8B10B编码:高速串行通信的"交通警察" 第一次接触PCIe调试时,我拿着示波器看到波形图上那些密集的跳变信号完全摸不着头脑。直到前辈指着屏幕说:"看见这些有规律的0/1跳变了吗?这就是8B10B在指挥交通。"这个…...

如何彻底解决C盘空间不足:Windows Cleaner终极清理指南

如何彻底解决C盘空间不足:Windows Cleaner终极清理指南 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你是否经常遇到C盘空间不足的困扰?…...

5步掌握VideoDownloadHelper:让网页视频下载变得简单高效

5步掌握VideoDownloadHelper:让网页视频下载变得简单高效 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 你是否曾经遇到过这样的…...

30+输入法词库互转:一站式零门槛解决方案真的存在吗?

30输入法词库互转:一站式零门槛解决方案真的存在吗? 【免费下载链接】imewlconverter ”深蓝词库转换“ 一款开源免费的输入法词库转换程序 项目地址: https://gitcode.com/gh_mirrors/im/imewlconverter 你是否曾因更换输入法而不得不放弃多年积…...

从零打造3D打印外壳:精准适配Adafruit Trellis控制器全流程

1. 项目概述与核心思路如果你手头有一块Adafruit Trellis按钮板,想把它变成一个握感扎实、外观专业的独立设备,比如一个迷你音乐控制器或者游戏手柄,那么为它设计并打印一个专属外壳,几乎是必经之路。这个项目远不止是把电路板塞进…...

别再为调试发愁!FreeRTOS下STM32串口打印的三种实用方案(含USART3重定向避坑)

FreeRTOS下STM32串口调试的三大实战方案与深度优化指南 在嵌入式开发中,调试信息的输出如同黑夜中的灯塔,为开发者指明程序运行的轨迹。当FreeRTOS遇上STM32,串口打印这个看似基础的功能却可能成为项目推进的绊脚石。本文将带您深入探索三种经…...

电容触摸传感与微控制器互动:打造万圣节智能蝙蝠装饰

1. 项目概述:当电容触摸遇上万圣节蝙蝠又到了一年一度可以名正言顺“吓唬人”的季节。每年万圣节,除了南瓜灯和糖果,我总想搞点不一样的、能和人互动的装饰。市面上的那些一动就吱呀乱叫的塑料道具,总觉得少了点灵魂和“技术含量”…...