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

yizhihongxing

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中常见的排名问题

    当我们处理与数据库的交互时,涉及到数据的排序和排名是非常常见的情况。MySQL作为常用的关系型数据库管理系统,它提供了多种排序和排名的函数和语法。接下来我将详细讲解几种MySQL中常见的排名问题。 一、基于单一字段排序 最简单的排序方式就是基于单一字段排序,这时候我们只需要使用ORDER BY语句加上一个或多个字段名就能够完成排序。例如: SELECT id…

    MySQL 2023年5月18日
    00
  • 开启bin-log日志mysql报错的解决方法

    以下是“开启bin-log日志mysql报错的解决方法”的完整攻略: 1. 问题描述 在MySQL数据库中开启bin-log日志时,有时会遇到如下报错信息: ERROR 29 (HY000): File ‘filename’ not found (Errcode: 13 – Permission denied) 2. 原因分析 根据报错信息,可以看出问题出在…

    MySQL 2023年5月18日
    00
  • 详解MySQL的字符串类型

    MySQL中常用的字符串类型有以下几种: CHAR 固定长度字符串类型。定义时需要指定长度,长度范围在1-255之间。如果定义的长度大于存储的实际数据长度,则会在字符串末尾添加空格来填充。例如,定义CHAR(10)类型的字符串,如果存储了“abc”,则实际存储的内容是“abc      ”。 VARCHAR 可变长度字符串类型。定义时需要指定最大长度,长度范…

    MySQL 2023年3月9日
    00
  • MySQL系列之九 mysql查询缓存及索引

    MySQL系列之九 mysql查询缓存及索引 什么是MySQL查询缓存? MySQL查询缓存是将查询结果缓存到内存中,当下次有相同的查询请求时,直接返回缓存中的结果,避免了重复查询和计算,大大提升了查询效率。 但是,MySQL查询缓存也存在一些限制和局限性,比如缓存的查询结果是基于SQL语句的完全匹配,如果查询语句中有任何变化,如参数值不同,缓存就会失效,需…

    MySQL 2023年5月19日
    00
  • mysql不能启动报error2013错误的多种解决方案

    针对Mysql无法启动报Error 2013错误,可能原因主要有两种: Mysql需要的内存过大,超过了系统限制; Mysql的某些数据文件损坏了。 以下是多种解决方案供参考: 方案一:编辑my.ini文件 在Mysql的bin目录下找到my.ini文件并备份一份,以防修改失误; 打开my.ini文件,将其中的max_allowed_packet数值调小,试…

    MySQL 2023年5月18日
    00
  • mysql too many open connections问题解决方法

    MySQL “too many open connections” 问题解决方法 问题描述 当某个MySQL连接池或者应用程序创建的连接数量超过MySQL实例所允许的最大连接数时,会导致连接被拒绝,错误信息为”too many open connections”。 解决方法 解决MySQL “too many open connections”问题,可以从以…

    MySQL 2023年5月18日
    00
  • MySQL适用于哪些应用场景?

    MySQL是一个开源的关系型数据库管理系统。它的可靠性、性能、灵活性和易用性使得它成为了最受欢迎的数据库之一。 MySQL适用于很多不同的应用场景,下面列出了其中的5个: 1、Web应用程序:MySQL可与Web编程语言如PHP、Python和Java结合使用,为网站提供持久的数据存储解决方案。由于其高度可靠性和短学习曲线,MySQL已成为最受欢迎的Web开…

    2023年3月8日
    00
  • my.cnf参数配置实现InnoDB引擎性能优化

    InnoDB引擎是MySQL数据库中默认的事务性存储引擎,它的性能优化对于MySQL数据库的整体性能提升至关重要。本文将介绍如何通过my.cnf参数配置实现InnoDB引擎性能优化。 步骤一:备份原有my.cnf文件 在修改my.cnf文件前,我们应该先备份原有的my.cnf文件,以便在修改出现问题时可以恢复到原有配置。 cp /etc/mysql/my.c…

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