Mysql调优工具:mysqltuner.pl及tuning-primer.sh

一、概述

MySQL调优工具是用于分析和优化MySQL数据库性能的软件工具。它们可以帮助识别潜在的性能瓶颈、优化查询性能、调整配置参数以及提高数据库的吞吐量和响应时间。今天分享2个常用的工具。

  • mysqltuner.pl:一款免费的Perl脚本工具,用于检查和优化MySQL服务器的配置参数。MySQLTuner会分析MySQL的状态和配置,提供建议来改进性能和安全性。
  • tuning-primer.sh:是一种Shell脚本工具,用于评估和优化MySQL服务器的配置参数。它可以帮助您检查MySQL服务器的状态和配置,并提供相应的建议和优化建议。

二、解决方案

2.1 mysqltuner.pl

mysqltuner.pl是一个简单而有效的工具,可以帮助您评估和优化MySQL服务器的配置和性能。它提供有关配置、性能和安全性方面的建议,使您能够针对具体问题做出相应的调整和改进。请注意,mysqltuner.pl是一个独立的第三方工具,使用前请确保阅读并理解其文档和指南。

2.1.1 mysqltuner.pl的特点和功能

  1. 配置建议:mysqltuner.pl会分析MySQL服务器的配置参数,并提供针对这些参数的建议。它会检查各个参数的设置,并根据最佳实践和性能优化原则,给出相应的建议。这些建议可以帮助您优化服务器配置以获得更好的性能和安全性。

  2. 性能建议:除了配置参数,mysqltuner.pl还会分析MySQL服务器的性能指标,如查询缓存命中率、连接数、临时表使用等。它可以提供有关性能瓶颈和优化机会的建议,帮助您识别潜在的性能问题并采取相应的措施。

  3. 安全建议:mysqltuner.pl还提供有关MySQL服务器安全性的建议。它会检查安全相关的配置参数和权限设置,并给出改进安全性的建议。这有助于确保MySQL服务器的安全性并防止潜在的安全漏洞。

  4. 自动化分析:mysqltuner.pl是一个自动化的工具,可以在您的MySQL服务器上运行,并生成相应的报告。它会收集服务器的状态和配置信息,并对其进行分析和评估。生成的报告中包含详细的建议和统计信息,供您参考和采取相应的措施。

使用语法:

[root@mysqlserver ~]# perl ./mysqltuner.pl --help
Name:
     MySQLTuner 2.2.8 - MySQL High Performance Tuning Script

Important Usage Guidelines:
    To run the script with the default options, run the script without
    arguments Allow MySQL server to run for at least 24-48 hours before
    trusting suggestions Some routines may require root level privileges
    (script will provide warnings) You must provide the remote server's
    total memory when connecting to other servers

Connection and Authentication:
     --host <hostname>           Connect to a remote host to perform tests (default: localhost)
     --socket <socket>           Use a different socket for a local connection
     --port <port>               Port to use for connection (default: 3306)
     --protocol tcp              Force TCP connection instead of socket
     --user <username>           Username to use for authentication
     --userenv <envvar>          Name of env variable which contains username to use for authentication
     --pass <password>           Password to use for authentication
     --passenv <envvar>          Name of env variable which contains password to use for authentication
     --ssl-ca <path>             Path to public key
     --mysqladmin <path>         Path to a custom mysqladmin executable
     --mysqlcmd <path>           Path to a custom mysql executable
     --defaults-file <path>      Path to a custom .my.cnf
     --defaults-extra-file <path>      Path to an extra custom config file
     --server-log <path>         Path to explicit log file (error_log)

Performance and Reporting Options:
     --skipsize                  Don't enumerate tables and their types/sizes (default: on)
                                 (Recommended for servers with many tables)
     --json                      Print result as JSON string
     --prettyjson                Print result as JSON formatted string
     --skippassword              Don't perform checks on user passwords (default: off)
     --checkversion              Check for updates to MySQLTuner (default: don't check)
     --updateversion             Check for updates to MySQLTuner and update when newer version is available (default: don't check)
     --forcemem <size>           Amount of RAM installed in megabytes
     --forceswap <size>          Amount of swap memory configured in megabytes
     --passwordfile <path>       Path to a password file list (one password by line)
     --cvefile <path>            CVE File for vulnerability checks
     --outputfile <path>         Path to a output txt file
     --reportfile <path>         Path to a report txt file
     --template   <path>         Path to a template file
     --dumpdir <path>            Path to a directory where to dump information files
     --feature <feature>         Run a specific feature (see FEATURES section)
    =head1 OUTPUT OPTIONS

     --silent                    Don't output anything on screen
     --verbose                   Print out all options (default: no verbose, dbstat, idxstat, sysstat, tbstat, pfstat)
     --nocolor                   Don't print output in color
     --nogood                    Remove OK responses
     --nobad                     Remove negative/suggestion responses
     --noinfo                    Remove informational responses
     --debug                     Print debug information
     --noprocess                 Consider no other process is running
     --dbstat                    Print database information
     --nodbstat                  Don't print database information
     --tbstat                    Print table information
     --notbstat                  Don't print table information
     --colstat                   Print column information
     --nocolstat                 Don't print column information
     --idxstat                   Print index information
     --noidxstat                 Don't print index information
     --nomyisamstat              Don't print MyIsam information
     --sysstat                   Print system information
     --nosysstat                 Don't print system information
     --nostructstat              Don't print table structures information
     --pfstat                    Print Performance schema
     --nopfstat                  Don't print Performance schema
     --bannedports               Ports banned separated by comma (,)
     --server-log                Define specific error_log to analyze
     --maxportallowed            Number of open ports allowable on this host
     --buffers                   Print global and per-thread buffer values

  

2.1.2 使用过程

1、上传运行此脚本的linux服务器并赋予执行权限

chmod 755  mysqltuner.pl

 

2、执行分析

[root@mysqlserver ~]# perl ./mysqltuner.pl  --host 192.168.209.128 --port 3307 --user root --pass 'Rootasdf2023##'

参数说明:

  • --host:指定连接的主机
  • --port:主机端口
  • --user:数据库用户
  • --pass:数据库的密码

 

2.2 tuning-primer.sh

tuning-primer.sh是一个方便的工具,可以帮助您评估和优化MySQL服务器的配置和性能。它提供了有关配置、性能和安全性方面的评估和建议,使您能够做出相应的调整和改进。

2.2.1 tuning-primer.sh的特点和功能

  1. 配置评估:tuning-primer.sh会分析MySQL服务器的配置参数,并评估它们的设置。它会检查各个参数的值,并提供有关配置优化的建议。这些建议基于最佳实践和性能优化原则,旨在改善服务器的性能和稳定性。

  2. 性能评估:除了配置参数,tuning-primer.sh还会收集和分析MySQL服务器的性能指标。它会检查缓存使用情况、连接数、索引使用等方面的统计信息,并提供有关性能瓶颈和调优机会的建议。这些建议可以帮助您识别潜在的性能问题并采取相应的措施。

  3. 安全评估:tuning-primer.sh还提供有关MySQL服务器安全性的评估。它会检查安全相关的配置参数和权限设置,并给出改善安全性的建议。这有助于确保MySQL服务器的安全性并减少潜在的安全风险。

  4. 报告生成:tuning-primer.sh生成一个详细的报告,其中包含服务器配置、性能评估和建议。报告提供了对服务器状态和潜在问题的全面概述,以及相应的建议和优化提示。您可以使用生成的报告作为参考,根据需要进行配置和性能优化。

2.2.2 使用方法

1、上传到服务器,并赋予执行权限

chmod 755 tuning-primer.sh

2、·执行分析

./tuning-primer.sh

 

 输出结果:

 

三、两者比较 

  • 语言和平台:mysqltuner.pl是一个Perl脚本工具,而tuning-primer.sh是一个Shell脚本工具。这意味着它们使用不同的脚本语言和运行环境。这一点可能会影响到在不同系统上的可用性和运行方式。
  • 功能:两者都提供了对MySQL服务器的配置参数、性能指标和安全性的评估。它们分析服务器的状态和配置,并给出相应的建议和优化提示。然而,它们的具体实现和生成的报告可能有所不同,因此建议在使用之前详细了解其功能和输出。个人感觉最大的不同是mysqltuner.pl支持远程连接,而tuning-primer.sh仅支持本机连接。
  • 社区支持和更新:mysqltuner.pl和tuning-primer.sh都是由开源社区开发和维护的工具。然而,它们的社区支持和更新频率可能有所不同。建议在选择使用之前,查看其社区的活跃程度和最新的版本状态。
  • 定制性和可扩展性:由于是脚本工具,mysqltuner.pl和tuning-primer.sh都具有一定的定制性和可扩展性。您可以根据自己的需求进行修改和定制,以适应特定环境和配置。

四、下载地址

https://www.xsoftnet.com/share/a000DfntxEeev.html

posted @ 2023-08-23 17:58  雪竹子  阅读(1198)  评论(0编辑  收藏  举报