千家信息网

如何用用工具快速定位数据库问题

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,本篇文章为大家展示了如何用用工具快速定位数据库问题,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。我们经常会收到业务反馈"在么? xx端口感觉访问有点慢啊!"
千家信息网最后更新 2025年01月20日如何用用工具快速定位数据库问题

本篇文章为大家展示了如何用用工具快速定位数据库问题,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

我们经常会收到业务反馈"在么? xx端口感觉访问有点慢啊!" 在确认数据库本身没有问题(没有down、没有数据库报错)之后,就需要检测服务器的各项指标排查问题。今天就给大家介绍一个非常好用的检测工具sar。

常见问题

在日常数据库运维中,我们经常会遇到下面几种情况:

  • 数据库卡慢

  • 服务器负载过高

  • 服务器异常重启

遇到这些情况后,通常我们会使用一些工具来检测服务器的状态。

强大的sysstat工具包

sysstat是一个软件包,包含监测系统性能及效率的一组工具。

安装两种安装方式:

  • sudo yum install sysstat

  • git clone git://github.com/sysstat/sysstat

包含工具

sysstat工具集包含以下几个常用工具:

iostat:用于监控系统设备的IO负载情况。mpstat:用于多CPU环境下查看各个可用CPU的状态信息。

pidstat:用于监控全部或指定进程占用系统资源的情况。

sar:目前Linux上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告。

今天主要介绍一下功能强大的sar。

Sar

sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,sar 工具将对系统当前的状态进行取样,然后通过计算数据和比例从多方面显示系统的当前运行状态,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC(进程间通信)有关的活动等。

特点

可以连续对系统取样,获得大量的取样数据

取样数据和分析的结果都可以存入文件,所需的负载很小

sar 提供了丰富的选项,功能强大

Sar统计项

  • 磁盘I/O及数据传输速率统计数据

  • CPU统计数据

  • 内存、特大页和交换空间利用率统计数据

  • 虚拟内存、分页和故障统计数据

  • 网络统计数据

  • 进程创建统计数据

  • 中断统计数据

  • 光纤通道的流量统计数据

  • NFS服务器和客户端活动统计数据

  • Socket统计数据

  • 队列及系统负载统计数据

  • 内核内部表统计数据

  • TTY活动统计数据

  • 文件系统利用率统计数据

通过图解也可以看出来sar的功能相当强大,我们今天只介绍几个对数据库问题排查有帮助的参数。

1排查CPU问题

使用 -u 或 -p 参数

报告CPU的统计信息

  • 输出项说明:

  • CPU: all 表示统计信息为所有 CPU 的平均值。

  • %user: 用户级别(application)运行使用CPU 总时间的百分比。

  • %nice: 用户级别,用于nice操作所占用 CPU 总时间的百分比(nice命令用于改变进程的优先级)

  • %system: 内核级别(kernel)运行所使用 CPU 总时间的百分比。

  • %iowait: 等待I/O操作占用 CPU 总时间的百分比。

  • %steal: 管理程序为另一个虚拟进程提供服务而等待虚拟CPU的百分比

  • %idle: CPU 空闲时间占用 CPU 总时间的百分比。

分析:

若 %iowait 的值过高,表示硬盘存在I/O瓶颈。

若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量。

若 %idle 的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU 。

使用 -q 参数

报告进程队列长度和平均负载状态。

  • 输出项说明:

  • runq-sz: 运行队列的长度(等待运行的进程数)

  • plist-sz:进程列表中进程(processes)和线程(threads)的数量

  • ldavg-1: ***1分钟的系统平均负载(System load average)

  • ldavg-5: 过去5分钟的系统平均负载

  • ldavg-15:过去15分钟的系统平均负载

2排查内存问题

使用 -r 参数

报告内存和交换空间使用情况

  • 输出项说明:

  • kbmemfree:可用内存(kb)。这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.

  • kbmemused:已用内存(kb)。但是不包括内核本身使用的内存,这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.

  • %memused: 内存使用百分比。这个值是kbmemused和内存总量(不包括swap)的一个百分比.

  • kbbuffers:内核本身用于buffers使用的内存(kb)

  • kbcached: 内核本身用于cached使用的内存(kb)

  • kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.

  • kbswpfree:剩余swap空间(kb)

  • kbswpused:已用swap空间(kb)

  • %swpused: swap使用百分比

  • kbswpcad: swap与内存的交换缓存值。内存中的数据交换至swap

使用 -W 参数

报告swap统计数据

  • 输出项说明:

  • pswpin/s:系统交换至swap分区页的数量

  • pswpout/s:系统交换出swap分区也的数量

使用 -B 参数

内存分页情况统计信息

  • 输出项说明:

  • pgpgin/s:表示每秒从磁盘或SWAP置换到内存的字节数(KB)。低版本内核(2.2.x),这个值表示每秒置换的块数。

  • pgpgout/s:表示每秒从内存置换到磁盘或SWAP的字节数(KB)。

  • fault/s:每秒钟系统产生的缺页数(major + minor)(2.5版本的内核)缺页中断并不一定产生I/O。

  • majflt/s:每秒钟产生的主缺页数,需要从磁盘加载到内存中1的数据页(2.5版本的内核报告)。

说明:

高分页操作是内存缺乏的信号。

3排查I/O问题

使用 -b 参数

显示I/O和磁盘读写速率的统计信息

  • 输出项说明:

  • tps: 每秒钟物理设备的 I/O 传输总量。一个物理设备的I/O请求,多次逻辑请求可以组合成一个特定设备的I/O请求。

  • tps: 每秒钟从物理设备读入的数据总量

  • wtps: 每秒钟向物理设备写入的数据总量

  • bread/s:每秒钟从物理设备读入的数据量,单位为 块/s。高于2.4版本内核的块的大小为512字节。低版本内核块的大小是不确定的

  • bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s

使用 -u 或 -p 参数

可参考上面排查cpu问题里的介绍。

使用 -d (-p)参数

设备块使用情况(适用于2.4及更新的内核)

  • 输出项说明:

  • tps:每秒从物理磁盘I/O的次数.多个逻辑请求会被合并为一个I/O磁盘请求,一次传输的大小是不确定的.

  • rd_sec/s:每秒读扇区的次数.扇区的大小为512b

  • wr_sec/s:每秒写扇区的次数.扇区的大小为512b

  • avgrq-sz:平均每次设备I/O操作的数据大小(扇区).

  • avgqu-sz:磁盘请求队列的平均长度.

  • await:从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒=1000毫秒).

  • svctm:磁盘I/O请求到设备的平均服务时间(以毫秒为单位)

  • %util:磁盘I/O请求到设备的CPU平均百分比(设备宽带利用率) 当这个值接近100%的时候,表示设备繁忙。

说明:

  • avgqu-sz的值较低时,设备的利用率较高。

  • 当%util的值接近 1 时,表示设备带宽已经占满。

  • 当数据显示时,使用的设备规范为:dev m-n。

  • m是设备的主设备号,***的内核(2.5+),n是次设备号,但2.5版本之前的内核,只有一个序列数。

  • 如果使用-p 参数,设备名称也可能是可打印形式。

  • 也就是说:参数-p可以打印出sda,hdc等磁盘设备名称,如果不用参数-p,设备节点则有可能是dev8-0,dev22-0。

  • 某些2.4版本的内核,avgqu-sz, await, svctm 和 %uti可能是不可用,显示为0.00。

4排查网卡流量问题

使用-n DEV 参数

网络统计报告

  • -n 参数对应不同的关键字时报告不同的信息:

  • DEV关键字,报告网络统计数据。

  • EDEV关键字,针对网络设备汇报其失败情况

  • NFS关键字,针对NFS客户端进行汇报。

  • NFSD关键字,针对NFS服务端进行汇报。

  • SOCK关键字,对用户使用的sockets进行汇报

ALL关键字,针对上述所有网络信息进行汇报

通常情况下,我们只关注网卡流量,即使用-n DEV 参数

  • 输出项说明:

  • IFACE:就是网4络设备的名称

  • rxerr/s:每秒钟接收到的损坏的包的数目

  • txerr/s:当发送包时,每秒钟发生的错误数

  • coll/s:当发送包时,每秒钟发生的冲撞(collisions)数(这个是在半双工模式下才有)

  • rxdrop/s:由于缓冲区满,网络设备接收端,每秒钟丢掉的网络包的数目

  • txdrop/s:由于缓冲区满,网络设备发送端,每秒钟丢掉的网络包的数目

  • txcarr/s:当发送数据包时,每秒钟载波错误发生的次数

  • rxfram/s:在接收数据包时,每秒钟发生的帧对齐错误的次数

  • rxfifo/s:在接收数据包时,每秒钟缓冲区溢出错误发生的次数

  • txfifo/s:在发送数据包时,每秒钟缓冲区溢出错误发生的次数

上述内容就是如何用用工具快速定位数据库问题,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

数据 设备 系统 统计 内存 统计数据 参数 内核 磁盘 工具 情况 问题 百分 百分比 进程 报告 时间 网络 出项 服务 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全威胁处置制度 服务器上面如何启动东方通 微信小程序 js 数据库 金蝶数据库文件路径不存在 软件开发毕业设计外文来源 网络技术特别适用于 服务器连接安全规则有什么用 网络安全 教材 初中英语听力软件开发 宝塔网站和数据库怎么备份 数据库文件分离没有访问权限 加强网络安全的国际合作 数据库vba怎么关闭 华为5G蜂窝网络技术 浙江服务器防火墙多少钱 靖江工业网络技术市场 数据库日期时间转换成日期 新剑侠传奇服务器 网络安全常识十条世界上最短 f12020连不上服务器怎么办 百战天虫大混子连接不到服务器 vue实现数据库可视化操作 什么是sql2005数据库 如何用一台服务器上网下载资料 海淀区综合软件开发 网络安全宣传漫画图片简单 光遇为什么会老服务器连接失败 ad域控服务器意义 徐玉玉与网络安全法 专职网络安全保密人员花名
0