发布时间

2025-04-01

1.12. 2025-04日记#

1.12.1. 2024-04-01#

1.12.1.1. MySQL和sysbench工具#

  1. 基准测试简介

    对于多数web应用,整个系统的瓶颈在于数据库。因为web应用中的其他因素,例如网络带宽、负载均衡节点、

    应用服务器(包括CPU、内存、硬盘灯、连接数等)、缓存,都很容易通过水平扩展(俗称加机器)来实现

    性能的提高。而对于MySQL,由于数据一致性的要求,无法通过增加机器来分散想数据库写数据带来的压力;

    虽然可以通过前置缓存(Redis等),读写分离、分库分表来减轻压力,但是于系统其它组件的水平扩展相比,

    受到太多限制。

    而对数据库的基准测试的作用,就是分析在当前的配置下(包括硬件配置、OS、数据库设置等),数据库的

    性能表现,从而找出MySQL的性能阈值,并根据实际系统的要求调整配置。

    常见的数据库指标包括:

    • TPS/QPS: 衡量吞吐量

    • 响应时间:包括平均响应时间、最小响应时间、时间百分比等,其中时间百分比参考意义较大,如前95%的 请求的最大响应时间。

    • 并发量: 同时处理的查询请求的数量。

对于MySQL的基准测试,有如下两种思路:
  • 针对整个系统的基准测试:通过http请求进行测试,如通过浏览器、APP或postman等测试工具。该方案的 优点是能够更好的针对整个系统,测试结果更加准确;缺点是涉及复杂实现困难。

  • 指针对MySQL的基准测试:优点和缺点与针对整个系统的测试恰好相反。

在针对MySQL进行基准测试时,一般使用专门的工具进行,例如mysqlslap、sysbench等。 其中,sysbench比 mysqlslap更通用、更强大,且更适合Innodb(因为模拟了许多Innodb的IO特性),下面介绍使用sysbench进行 基准测试的方法。

  1. sysbench简介

    sysbench时跨平台的基准测试工具,支持多线程,支持多种数据库;主要包括以下集中测试:

    • CPU性能

    • 磁盘IO性能

    • 调度程序性能

    • 内存分配及传输速度

    • POSIX线程性能

    • 数据库性能(OLTP基准测试)

    下载解压缩安装

    wget https://github.com/akopytov/sysbench/archive/1.0.zip -O "sysbench-1.0.zip"
    unzip sysbench-1.0.zip
    cd sysbench-1.0
    

    安装依赖

    yum install automake libtool –y
    
    ./autogen.sh
    ./configure
    export LD_LIBRARY_PATH=/usr/local/mysql/include #这里换成机器中mysql路径下的include
    make
    make install
    

1.12.2. 2025-04-16#

  1. rst支持中文搜索 Sphinx默认不支持中文搜索,需要安装中文分词扩展来支持中文搜索。

    pip install jieba
    

    修改配置文件, 在最后添加:

    html_search_language = 'zh'