mysql性能优化工具–tuner-primer使用介绍

Mysql性能优化工具 - tuner-primer使用介绍

Mysql数据库是Web应用程序最常用的数据库之一,但是如果在高负载下使用不当,可能会降低系统性能。因此,优化MySQL数据库服务器的配置至关重要。MySQL性能优化工具如tuner和primer是帮助管理员达到最大化服务器性能的好工具。本文将介绍tuner和primer的基本用法。

1. Mysql性能优化工具 - tuner

tuner是一个Shell脚本,它会从正在运行的MySQL实例中检索一些关键系统参数,然后输出一些建议的更改。tuner使用经验丰富的专业人员开发的一组标准分析规则,这些规则基于服务器规模、负载类型、硬件和其他因素。管理员不需要改变tuner的代码就能使用它。

安装tuner

  • 下载tuner:
mkdir -p /opt/tuner && cd $_ && wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl
  • 更改脚本权限,使其可以执行:
chmod +x /opt/tuner/mysqltuner.pl

运行tuner

  • 运行tuner:
cd /opt/tuner && ./mysqltuner.pl
  • tuner将输出当前MySQL实例运行的统计信息和分析结果,如下所示:
>> MySQLTuner 1.7.17 - Major Hayden <major@mhtx.net>
>> Bug reports, feature requests, and downloads at http://mysqltuner.com/
>> Run with '--help' for additional options and output filtering
[--] Skipped version check for MySQLTuner script
[OK] Logged in using credentials from debian maintenance account.
[OK] Currently running supported MySQL version 10.3.29-MariaDB-0+deb10u1
[OK] Operating on 64-bit architecture

-------- Log file Recommendations ----------------------------------------------------------------------
[--] Log file: /var/log/mysql/mariadb-slow.log(0B)
[OK] Log file /var/log/mysql/mariadb-slow.log exists.
[OK] Log file /var/log/mysql/mariadb-slow.log is readable.
[OK] Log file /var/log/mysql/mariadb-slow.log is not empty.
[OK] Log file /var/log/mysql/mariadb-slow.log is smaller than 32 Mb.
[!!] /var/log/mysql/error.log : !!!!!!1MB (>= 1MB)Log file size seems excessive, should be limited to 25% of buffer pool size 
[!!] /var/lib/mysql/ibdata1: File exists but is not readable..

-------- Storage Engine Statistics -----------------------------------------------------------------
[--] Status: +InnoDB +MEMORY +Aria
[--] Data in InnoDB tables: 164.2G (Tables: 484)
[--] Data in MEMORY tables: 2.9M (Tables: 11)
[--] Data in Aria tables: 16.0M (Tables: 10)
[OK] Total fragmented tables: 0

[OK] Up for 15:21:47 (23K q [0.002 qps], 5.2K conn, TX: 929M, RX: 5G)

[--] Uptime / reliability => 15:21:47 / 99%
[--] Uptime since flush_status was reset / Avg uptimes => 89,101s / 89,101s
[--] Total buffers: 5.0G global + 8.2M per thread (200 max threads)
[OK] Maximum reached memory usage: 6.6G (26.41% of installed RAM)
[OK] Maximum possible memory usage: 6.6G (26.41% of installed RAM)
[!!] Slow queries: 1% (273/23K)
[OK] Highest usage of available connections: 29% (59/200)
[OK] Aborted connections: 0.69%  (36/5190)
[!!] name resolution is active : a reverse name resolution is made for each new connection and can reduce performance
[!!] Query cache may be disabled by default due to mutex contention.
[OK] Query cache efficiency: 34.5% (3K cached / 10K selects)
[OK] Query cache prunes per day: 0
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 3 sorts)
[!!] Joins performed without indexes: 19
  • tuner所做的更改建议将显示在屏幕下方。

2. Mysql性能优化工具 - primer

primer是一个用PHP写的Web应用程序,它可以使用类似tuner的方式分析正在运行的MySQL实例,并提供建议。不同的是,primer将结果呈现为直观易懂的界面,更容易让管理员查看遗漏,因此,primer是一个不错的辅助选项。

安装primer

  • 安装PHP-
apt-get install php-cli php-mysql
  • 下载primer:
cd /var/www/html && git clone https://github.com/Grokzen/mysql-primer.git
  • 更改MySQL管理员密码:
    在MySQL命令行界面下进行:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
  • 配置该应用:
cd /var/www/html/mysql-primer/ && cp includes/config.sample.inc.php includes/config.inc.php
  • 更改配置:
    将应用的MySQL凭证设置为刚刚更改的凭证,可以打开用文本编辑器打开配置文件,如vim:
vim /var/www/html/mysql-primer/includes/config.inc.php
## 修改以下几段
define("MYSQL_HOST", "localhost"); 
define("MYSQL_PORT", "3306"); 
define("MYSQL_USER", "root"); 
define("MYSQL_PASS", "新密码");

运行primer

  • 打开primer:
    在Web浏览器中访问http://[服务器IP]/mysql-primer/,如http://127.0.0.1/mysql-primer/

  • 输入MySQL凭证:
    在访问primer后,将弹出一个窗口,询问您的MySQL凭证。输入您最近更改的MySQL凭证,并单击“提交”。

  • primer分析当前运行的MySQL实例:
    完成凭证验证后,primer将显示您的MySQL服务器的运行状态和性能建议列表。

示例

示例1

管理员运行tuner并遵循tuner提供的建议进行调整。tuner建议修改MySQL安装实例的InnoDB磁盘I/O设置,因此管理员在MySQL配置中添加以下行:

innodb_flush_log_at_trx_commit=0
innodb_buffer_pool_size=4G
innodb_io_capacity=4000

示例2

管理员运行primer并遵循primer提供的建议进行调整。primer建议增加服务器的最大连接数,因此管理员通过以下方式调整:

  • 在/etc/mysql/mysql.conf.d/mysqld.cnf中添加以下行:
max_connections=10000
  • 重新启动MySQL:
sudo systemctl restart mysql

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mysql性能优化工具–tuner-primer使用介绍 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • MySQL利用procedure analyse()函数优化表结构

    MySQL提供了procedure analyse()函数,可以用于优化表结构。它可以将表的数据类型、字符集、NULL值、默认值、注释等信息进行统计,帮助开发者了解表的特点以及基于这些信息优化表结构。 下面介绍如何利用procedure analyse()函数优化表结构,具体步骤如下: 执行procedure analyse()函数 SELECT * FRO…

    MySQL 2023年5月19日
    00
  • 关于MySQL查询语句的优化详解

    关于MySQL查询语句的优化详解 MySQL是一种关系型数据库管理系统,广泛应用于各种web应用系统中。为了提高MySQL查询的效率和响应速度,需要进行查询语句的优化。本文将从查询语句本身、索引优化、服务器硬件优化等方面对MySQL查询语句进行详细讲解。 查询语句本身的优化 对于一个查询语句,如果语句本身存在优化空间,那么对其进行优化也能有效减少数据库服务器…

    MySQL 2023年5月19日
    00
  • MySQL常见内存不足启动失败的完美解决方法

    MySQL常见内存不足启动失败的完美解决方法 MySQL启动时,如果出现内存不足的错误,导致无法启动,这是一个常见的问题。以下是几种解决方法。 1. 修改MySQL配置文件 在MySQL的配置文件my.cnf中,可以修改一些参数,以减少内存占用。具体可以修改以下参数: key_buffer_size = 32M thread_cache_size = 4 m…

    MySQL 2023年5月18日
    00
  • MySQL索引,备份和还原

    1.索引  1.索引是占硬盘空间 ,也是按页存放的 。 思考题:一个索引页,(数据页)  占用多少个字节  。SQL Server 8192个字节   2.索引:是一种有效组合数据的方式,为了快速查找指定记录   3.唯一索引: 主键索引:如果一列是主键列,那么该列自动会提升成主键索引。   4.索引分类    普通索引    唯一索引    主键索引   …

    MySQL 2023年4月12日
    00
  • mysql优化连接数防止访问量过高的方法

    MySQL 是一个非常流行的关系型数据库管理系统,它支持多个客户端连接到同一个数据库实例,因此在高访问量的情况下,优化 MySQL 连接数是一项非常重要的工作。以下是 MySQL 优化连接数防止访问量过高的方法的完整攻略: 1. 调整 MySQL 最大连接数限制 MySQL 的最大连接数对服务器承受高并发有着非常重要的影响,如果设置太小,可能导致访问量过高时…

    MySQL 2023年5月19日
    00
  • MySQL 一次执行多条语句的实现及常见问题

    MySQL可以通过两种方式一次执行多条语句,分别是批处理和事务处理。 批处理 批处理是指一次性向MySQL发送多个SQL语句,MySQL依次执行这些语句。批处理可以优化代码性能,减少交互次数,提高效率。在PHP等服务器端语言中,可以通过mysqli类中的multi_query方法来进行批处理。 以下是一个例子,假设我们要在一个事务中执行三个INSERT语句买…

    MySQL 2023年5月18日
    00
  • 远程连接mysql错误代码1130的解决方法

    远程连接MySQL错误代码1130的解决方法 在进行远程连接MySQL时,有时会遇到ERROR 1130 (HY000): Host ‘xxx.xxx.xxx.xxx’ is not allowed to connect to this MySQL server的错误提示。这个错误提示通常表示,当前MySQL服务器拒绝了远程主机的连接请求。在本篇文章中,我们…

    MySQL 2023年5月18日
    00
  • 分析Mysql表读写、索引等操作的sql语句效率优化问题

    当我们的应用程序需要处理大量的数据时,优化Mysql表的读写、索引等操作的效率就非常重要。以下是一些分析和优化Mysql表的方法: 1.使用EXPLAIN来排查查询问题使用EXPLAIN可以帮助我们分析查询的执行计划并确定哪些索引被使用了,从而找出查询中可能存在的问题。例如,我们可以执行以下命令来查看查询的执行计划: EXPLAIN SELECT * FRO…

    MySQL 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部