:author: johnny
:date: 2025-04-01

.. list-table::


    * - 发布时间
      - 2025-04-01

2025-04日记
^^^^^^^^^^^^^^^^^^^^

2024-04-01
===============

MySQL和sysbench工具
-----------------------------

#. 基准测试简介
   
   对于多数web应用，整个系统的瓶颈在于数据库。因为web应用中的其他因素，例如网络带宽、负载均衡节点、
   
   应用服务器（包括CPU、内存、硬盘灯、连接数等）、缓存，都很容易通过水平扩展（俗称加机器）来实现

   性能的提高。而对于MySQL，由于数据一致性的要求，无法通过增加机器来分散想数据库写数据带来的压力；
   
   虽然可以通过前置缓存（Redis等），读写分离、分库分表来减轻压力，但是于系统其它组件的水平扩展相比，

   受到太多限制。

   而对数据库的基准测试的作用，就是分析在当前的配置下（包括硬件配置、OS、数据库设置等），数据库的

   性能表现，从而找出MySQL的性能阈值，并根据实际系统的要求调整配置。

   常见的数据库指标包括：
   
     - TPS/QPS： 衡量吞吐量

     - 响应时间：包括平均响应时间、最小响应时间、时间百分比等，其中时间百分比参考意义较大，如前95%的
       请求的最大响应时间。

     - 并发量： 同时处理的查询请求的数量。

  对于MySQL的基准测试，有如下两种思路：
    - 针对整个系统的基准测试：通过http请求进行测试，如通过浏览器、APP或postman等测试工具。该方案的
      优点是能够更好的针对整个系统，测试结果更加准确；缺点是涉及复杂实现困难。

    - 指针对MySQL的基准测试：优点和缺点与针对整个系统的测试恰好相反。

  在针对MySQL进行基准测试时，一般使用专门的工具进行，例如mysqlslap、sysbench等。 其中，sysbench比
  mysqlslap更通用、更强大，且更适合Innodb（因为模拟了许多Innodb的IO特性），下面介绍使用sysbench进行
  基准测试的方法。

#. 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

2025-04-16
====================

#. rst支持中文搜索
   Sphinx默认不支持中文搜索，需要安装中文分词扩展来支持中文搜索。 ::

    pip install jieba

   修改配置文件， 在最后添加::

    html_search_language = 'zh'     