最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL 壓測實戰(zhàn)之sysbench 從入門到精通(最新)

 更新時間:2025年12月19日 16:27:28   作者:高并發(fā)吃面  
本文詳細介紹了如何使用sysbench對MySQL進行壓測,包括安裝、常用壓測場景、參數(shù)配置和結果解讀,感興趣的朋友跟隨小編一起看看吧

你想全面了解如何使用 sysbench 對 MySQL 進行壓測,包括安裝、常用壓測場景、參數(shù)配置和結果解讀,我會從基礎到實戰(zhàn)一步步給你講清楚。

一、sysbench 基礎介紹

sysbench 是一款開源的、跨平臺的多線程性能測試工具,支持對 CPU、內存、磁盤 I/O、數(shù)據(jù)庫(主要是 MySQL)等進行壓測,尤其在數(shù)據(jù)庫壓測中應用廣泛,能模擬真實的讀寫負載,評估數(shù)據(jù)庫的性能極限。

1. 安裝 sysbench

環(huán)境說明:以 Linux(CentOS 7/8 或 Ubuntu)為例,推薦安裝 1.0 及以上版本(新版語法更清晰)。

方式 1:包管理器安裝(簡單)

# CentOS/RHEL
yum install -y epel-release
yum install -y sysbench
# Ubuntu/Debian
apt update
apt install -y sysbench

方式 2:源碼編譯安裝(最新版本)

# 安裝依賴
yum install -y make automake libtool pkgconfig libaio-devel mysql-community-devel git
# 克隆源碼
git clone https://github.com/akopytov/sysbench.git
cd sysbench
# 編譯安裝
./autogen.sh
./configure --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib64/mysql
make -j$(nproc)
make install
# 驗證安裝
sysbench --version

二、sysbench 壓測 MySQL 核心流程

sysbench 壓測 MySQL 分為 3 個核心步驟:準備測試數(shù)據(jù)執(zhí)行壓測清理測試數(shù)據(jù)

1. 核心參數(shù)說明(通用)

先熟悉常用的連接和壓測參數(shù),后續(xù)所有場景都會用到:

參數(shù)說明
--mysql-hostMySQL 服務器地址(默認 127.0.0.1)
--mysql-portMySQL 端口(默認 3306)
--mysql-user連接 MySQL 的用戶名
--mysql-password連接 MySQL 的密碼
--mysql-db測試用的數(shù)據(jù)庫名(需提前創(chuàng)建)
--table-size每個測試表的行數(shù)(核心參數(shù),決定數(shù)據(jù)量)
--tables測試表的數(shù)量
--threads并發(fā)線程數(shù)(模擬并發(fā)用戶數(shù))
--time壓測持續(xù)時間(秒,默認 10)
--report-interval每隔幾秒輸出一次壓測進度(秒)

2. 提前準備 MySQL 環(huán)境

-- 1. 創(chuàng)建測試數(shù)據(jù)庫
CREATE DATABASE IF NOT EXISTS sysbench_test;
-- 2. 創(chuàng)建有足夠權限的用戶(避免用 root 壓測)
CREATE USER 'sysbench'@'%' IDENTIFIED BY 'Sysbench@123';
GRANT ALL PRIVILEGES ON sysbench_test.* TO 'sysbench'@'%';
FLUSH PRIVILEGES;

三、常用壓測場景實戰(zhàn)

sysbench 對 MySQL 的壓測主要有 4 個核心場景:只讀(oltp_read_only)、只寫(oltp_write_only)讀寫混合(oltp_read_write)、純插入(oltp_insert),以下以最常用的「讀寫混合」為例講解完整流程。

場景 1:讀寫混合壓測(oltp_read_write)

步驟 1:準備測試數(shù)據(jù)

sysbench oltp_read_write \
--mysql-host=127.0.0.1 \
--mysql-port=3306 \
--mysql-user=sysbench \
--mysql-password=Sysbench@123 \
--mysql-db=sysbench_test \
--table-size=1000000 \  # 每個表 100 萬行
--tables=10 \            # 共 10 個表(總數(shù)據(jù)量 1000 萬行)
--db-driver=mysql \
prepare  # 準備數(shù)據(jù)的核心指令
  • 執(zhí)行后,sysbench 會在 sysbench_test 庫中創(chuàng)建 10 張名為 sbtest1~sbtest10 的測試表;
  • 數(shù)據(jù)量根據(jù)服務器配置調整:低配服務器(1C2G)建議 table-size=100000,高配服務器(8C16G)可設 table-size=5000000

步驟 2:執(zhí)行壓測

sysbench oltp_read_write \
--mysql-host=127.0.0.1 \
--mysql-port=3306 \
--mysql-user=sysbench \
--mysql-password=Sysbench@123 \
--mysql-db=sysbench_test \
--table-size=1000000 \
--tables=10 \
--threads=64 \  # 64 并發(fā)線程(根據(jù) CPU 核心數(shù)調整,一般為 CPU 核心數(shù)的 2 倍)
--time=60 \     # 壓測持續(xù) 60 秒
--report-interval=10 \  # 每 10 秒輸出一次進度
--db-driver=mysql \
run  # 執(zhí)行壓測的核心指令

步驟 3:清理測試數(shù)據(jù)(壓測完成后)

sysbench oltp_read_write \
--mysql-host=127.0.0.1 \
--mysql-port=3306 \
--mysql-user=sysbench \
--mysql-password=Sysbench@123 \
--mysql-db=sysbench_test \
--tables=10 \
--db-driver=mysql \
cleanup  # 清理數(shù)據(jù)的核心指令

場景 2:其他常用場景(僅替換核心參數(shù))

  • 只讀壓測:將 oltp_read_write 替換為 oltp_read_only
  • 只寫壓測:替換為 oltp_write_only;
  • 純插入壓測:替換為 oltp_insert
  • 刪改混合壓測:替換為 oltp_deleteoltp_update_index。

四、壓測結果解讀(核心指標)

壓測結束后會輸出詳細結果,重點關注以下核心指標(以讀寫混合壓測為例):

SQL statistics:
    queries performed:
        read:                            103200  # 讀請求總數(shù)
        write:                           29486   # 寫請求總數(shù)
        other:                           14743   # 其他請求(如事務提交)
        total:                           147429  # 總請求數(shù)
    transactions:                        7371   (122.83 per sec.)  # 核心:TPS(每秒事務數(shù))
    queries:                             147429 (2456.60 per sec.) # QPS(每秒查詢數(shù))
    ignored errors:                      0      (0.00 per sec.)
    reconnects:                          0      (0.00 per sec.)
General statistics:
    total time:                          60.0010s  # 實際壓測時長
    total number of events:              7371      # 總事務數(shù)
    total time taken by event execution: 3836.1251s # 所有線程執(zhí)行事件的總耗時
    response time:
         min:                                  19.02ms  # 事務最小響應時間
         avg:                                  520.43ms # 事務平均響應時間
         max:                                 2980.15ms # 事務最大響應時間
         95th percentile:                     1200.50ms # 95%事務的響應時間(重點關注)
  • 核心指標:TPS(每秒事務數(shù))、QPS(每秒查詢數(shù))越高越好;95th percentile(95%響應時間)越低越好;
  • 參考標準:8C16G 服務器 + MySQL 8.0,讀寫混合壓測 TPS 一般能達到 1000+,QPS 20000+,95% 響應時間 < 1s 為正常。

五、壓測注意事項

  1. 壓測環(huán)境隔離:不要在生產庫直接壓測,單獨搭建和生產配置一致的測試環(huán)境;
  2. 參數(shù)調優(yōu):壓測前可先優(yōu)化 MySQL 核心參數(shù)(如 innodb_buffer_pool_size、max_connectionsinnodb_flush_log_at_trx_commit);
  3. 逐步增加并發(fā):從低并發(fā)(如 8、16)開始,逐步增加到 64、128,找到數(shù)據(jù)庫的性能拐點;
  4. 監(jiān)控配套:壓測時用 top、iostatvmstat 監(jiān)控服務器 CPU、磁盤 IO、內存使用,定位性能瓶頸(如 IO 打滿則需優(yōu)化磁盤,CPU 打滿則需優(yōu)化 SQL 或數(shù)據(jù)庫參數(shù))。

總結

  1. sysbench 壓測 MySQL 的核心流程是「準備數(shù)據(jù) → 執(zhí)行壓測 → 清理數(shù)據(jù)」,核心參數(shù)需關注 table-size(單表行數(shù))、tables(表數(shù)量)、threads(并發(fā)數(shù));
  2. 核心壓測指標為 TPS(每秒事務數(shù))、QPS(每秒查詢數(shù))、95% 響應時間,前兩者越高、后者越低,數(shù)據(jù)庫性能越好;
  3. 壓測時需隔離環(huán)境、逐步增加并發(fā),并結合服務器監(jiān)控定位性能瓶頸,而非僅看數(shù)值。

到此這篇關于MySQL 壓測實戰(zhàn):sysbench 從入門到精通的文章就介紹到這了,更多相關mysql sysbench入門內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Windows下使用Cygwin編譯MySQL客戶端

    Windows下使用Cygwin編譯MySQL客戶端

    這篇文章主要介紹了Windows下使用Cygwin編譯MySQL客戶端,本文詳細的講解了編譯過程,需要的朋友可以參考下
    2015-04-04
  • Mysql 聚合函數(shù)嵌套使用操作

    Mysql 聚合函數(shù)嵌套使用操作

    這篇文章主要介紹了Mysql 聚合函數(shù)嵌套使用操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • MySQL慢查詢分析工具pt-query-digest詳解

    MySQL慢查詢分析工具pt-query-digest詳解

    pt-query-digest是用于分析mysql慢查詢的一個工具,它可以分析binlog、General?log、slowlog,也可以通過SHOWPROCESSLIST或者通過tcpdump抓取的MySQL協(xié)議數(shù)據(jù)來進行分析,這篇文章主要介紹了MySQL慢查詢分析工具pt-query-digest詳解,需要的朋友可以參考下
    2023-01-01
  • Ubuntu 18.04配置mysql以及配置遠程連接的步驟

    Ubuntu 18.04配置mysql以及配置遠程連接的步驟

    這篇文章主要給大家介紹了關于Ubuntu 18.04配置mysql以及配置遠程連接的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-07-07
  • MySql的樂觀鎖和冪等性問題解決方案及場景示例

    MySql的樂觀鎖和冪等性問題解決方案及場景示例

    在分布式系統(tǒng)中,樂觀鎖、冪等性設計和數(shù)據(jù)插入失敗處理是保障數(shù)據(jù)一致性和系統(tǒng)可靠性的三大核心機制,它們共同協(xié)作以解決并發(fā)沖突、重復請求和網(wǎng)絡異常等問題,這篇文章主要介紹了MySql的樂觀鎖和冪等性問題解決方案及場景示例,需要的朋友可以參考下
    2025-05-05
  • mysql?8.0.29?winx64.zip安裝配置方法圖文教程

    mysql?8.0.29?winx64.zip安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了mysql?8.0.29?winx64.zip安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 配置Mysql主從服務實現(xiàn)實例

    配置Mysql主從服務實現(xiàn)實例

    這篇文章主要介紹了配置Mysql主從服務實現(xiàn)實例的相關資料,需要的朋友可以參考下
    2017-05-05
  • 一條 SQL 語句執(zhí)行過程

    一條 SQL 語句執(zhí)行過程

    這篇文章主要介紹了一條 SQL 語句執(zhí)行過程的相關資料,沒人詳細具有一的的參考價值,需要的小伙伴可以參考一下,希望對你的學習和工作有所幫助
    2022-03-03
  • mysql創(chuàng)建存儲過程實現(xiàn)往數(shù)據(jù)表中新增字段的方法分析

    mysql創(chuàng)建存儲過程實現(xiàn)往數(shù)據(jù)表中新增字段的方法分析

    這篇文章主要介紹了mysql創(chuàng)建存儲過程實現(xiàn)往數(shù)據(jù)表中新增字段的方法,結合實例形式對比分析了通過存儲過程新增字段相關操作技巧,需要的朋友可以參考下
    2018-12-12
  • MySQL?聚合函數(shù)、分組、聯(lián)合查詢詳解

    MySQL?聚合函數(shù)、分組、聯(lián)合查詢詳解

    本文介紹了MySQL中的聚合函數(shù)、分組查詢和聯(lián)合查詢,并通過多個示例題目進行鞏固,聚合函數(shù)用于計算匯總統(tǒng)計值,分組查詢用于將數(shù)據(jù)分成組并應用聚合函數(shù),聯(lián)合查詢用于從多個表中組合數(shù)據(jù),通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2026-01-01

最新評論

沾益县| 屯门区| 彭泽县| 武威市| 涟源市| 蓬莱市| 上饶市| 长顺县| 广宁县| 枣强县| 霞浦县| 吴旗县| 文水县| 资溪县| 合川市| 蓬安县| 安平县| 商城县| 平昌县| 云阳县| 盐亭县| 万源市| 祁东县| 浪卡子县| 南城县| 磐安县| 明溪县| 鲁山县| 长汀县| 鄯善县| 湘潭市| 七台河市| 广平县| 潜江市| 襄汾县| 会同县| 大城县| 余庆县| 开原市| 漳平市| 仁化县|