文档
注册
评分
提单
论坛
小智

使用Sysbench测试MySQL时,服务端和客户端连接不对等的解决方法

问题现象描述

使用Sysbench测试MySQL,当压测的num-threads大于500时,可能会出现服务端和客户端的连接状态不对等的情况,服务端会有许多TIME_WAIT状态的进程。

关键过程、根本原因分析

持续的高并发场景导致资源耗尽。

结论、解决方案及效果

  1. 修改MySQL配置中的最大连接数限制。修改配置文件“/etc/my.cnf”,在文件中的[mysqld]字段下增加如下信息:
    max_connections=2000
  2. 调整网络相关参数。
    1. 执行如下命令,修改所能接受SYN同步包的最大客户端数量。
      echo 8192 >/proc/sys/net/ipv4/tcp_max_syn_backlog
    2. 执行如下命令,修改服务端所能处理数据的最大客户端数量。
      echo 1024 >/proc/sys/net/core/somaxconn
  3. 修改限制资源使用的配置文件“/etc/security/limits.conf”,配置用户可打开的最大文件数和最大进程数,将以下参数的值分别修改为65535。
    * soft nofile 65535
    * hard nofile 65535
    * soft nproc 65535
    * hard nproc 65535
  4. 修改“/etc/security/limits.d/90-nproc.conf”文件,配置进程最大限制参数,将nproc参数的值设置为65535。
    * soft nproc 65535
  5. 重新执行Sysbench测试命令。
    ./src/sysbench --num-threads=500 --test=./tests/include/oltp_legacy/update_non_index.lua --oltp-table-size=2180000 --oltp-tables-count=10 --percentile=99 --report-interval=1 --mysql-host=172.253.33.194 --mysql-user=szjr --mysql-password=szjr --mysql-port=3306  --mysql-db=summertest --max-time=300 --max-requests=0  run
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词