MySQL性能突发事件问题排查技巧
副标题[/!--empirenews.page--]
经过多年的实际经验,整理了一些材料,已Linux环境下MySQL性能突发事件问题排查技巧分享给大家。 作为DBA在面对性能上突发问题的时候,是否出现过束手无策,无从下手的经历。 其实性能无非问题点在于存储、操作系统, 应用程序,数据库 等方面。 性能分析问题 并没有想象的那么难,当了解到一些常用的Linux 系统命令和MySQL的基础排查命令的时候,所有问题点都可以定位到。 先上一个Linux性能工具图谱图,Brendan D. Gregg动态追踪工具 DTrace 的作者。 有点复杂,不用太care,只要你理解了下面的常用命令和分析点,那就可以确定绝大数性能上问题。 Linux 平台基础常用的性能收集工具: 1. top — Linux 系统进程监控 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。并且它也是 Linux 系统管理员经常使用的监控系统性能的工具。Top命令可以定期显示所有正在运行和实际运行并且更新到列表中,它显示出 CPU 的使用、内存的使用、交换内存、缓存大小、缓冲区大小、过程控制、用户和更多命令。它也会显示内存和 CPU 使用率过高的正在运行的进程。 2. vmstat — 虚拟内存统计 vmstat 命令是用于显示虚拟内存、内核线程、磁盘、系统进程、I/O 模块、中断、CPU 活跃状态等更多信息。 3. lsof — 打开文件列表 lsof 命令对于很多 Linux/Unix 系统都可以使用,主要以列表的形式显示打开的文件和进程。打开的文件主要包括磁盘文件、网络套接字、管道、设备和进程。这个命令很容易看出哪些文件正在使用。 4. tcpdump — 网络数据包分析器 tcpdump 是一种使用最广泛的命令行网络数据包分析,将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤 并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 包可通过tcpdump命令解析,也可以保存成后缀为pcap的文件,使用wireshark等软件进行查看。 3. netstat — 网络统计 netstat 命令是一个监控网络数据包传入和传出的统计界面的命令行工具。它对于许多系统管理员去监控网络性能和解决网络相关问题是一个非常有用的工具。 4. iostat — 输入/输出统计 iostat 是收集和展示系统输入和输出存储设备统计的简单工具。这个工具通常用于查找存储设备性能问题,包括设备、本地磁盘、例如 NFS 远程磁盘。 除了上述 还有 其他一些Linux 常用的工具sar,htop, IPTraf , iotop ,iftop ,iptraf 等。 MySQL常用性能突发事件分析命令: 1. SHOW PROCESSLIST; —当前MySQL数据库的运行的所有线程 2. INNODB_TRX; — 当前运行的所有事务 ## 当前运行的所有事务 ,还有具体的语句 3. INNODB_LOCKS; — 当前出现的锁 ## 当前事务出现的锁的语句信息 4. INNODB_LOCK_WAITS; — 锁等待的对应关系计 ## 锁等待的对应关系 5. SHOW OPEN TABLES where In_use >0; — 当前打开表 查看哪些表在使用中,In_use列表示有多少线程正在使用某张表,Name_locked表示表名是否被锁,这一般发生在Drop或Rename命令操作这张表时。所以这条命令不能帮助解答我们常见的问题:当前某张表是否有死锁,谁拥有表上的这个锁等。 下面比较重点部分,请注意! 6. SHOW ENGINE INNODB STATUS G; —Innodb状态 (编辑:青岛站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |