V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
coolloves
V2EX  ›  MySQL

mysql 服务器负载问题排查

  •  
  •   coolloves · 2023-03-21 22:00:52 +08:00 · 1043 次点击
    这是一个创建于 395 天前的主题,其中的信息可能已经有所发展或是发生改变。
    linux,mysql 5.7.4,机器 8c 16G 只有 mysql 服务,数据库不大,查询也不是很多,正常情况下,机器负载都是 0.x
    但是最近发现每小时会出现负载增高(10 左右)的情况.是周期性的,会持续 10 来分钟,但是业务部门表示并没有定时任务.高负载的时候下,业务系统也没有明显的问题.
    mysql 使用 innodb,poolsize 设置为 10G.

    1-我在负载增高的时候,登陆 mysql,使用 root 账号查询 show processlist;确实没有太多,只有个位数查询,通过 prometheus,看 mysql 的数据,没有明显的波动,qps 平均只有十几.其余的指标也没有明显差异.
    2-此时,使用 iostat/iotop 等工具查看,无高 io,甚至几乎没太多 io,和平常无异
    3-内存和平常无差异,16G 内存,只有 3-4G,innodb pool 的情况查看,没有异常,命中率,page free 等指标正常.
    4-开了慢查,设置 set global long_query_time=1;期间也并无慢查信息.
    5-目前唯一有异常的就是 vmstat 的时候,r 数值是 10 左右.其余数值和平常无异

    查看了 message 日志,和 mysql 的 log 日志,都没有什么明显的异常,dmesg 看内核信息也没有明显异常,请教下,这里排队的进程应该如何排查呢,真不知道是怎么产生的,
    CEBBCAT
        1
    CEBBCAT  
       2023-03-21 23:47:03 +08:00
    你说的负载是指 CPU 负载对吧?

    负载升高的时候哪个进程占 CPU 多呢? VPS 还是物理机?可否录制当时的进程情况?比如都有哪些进程,各自的状态、系统调用,如果能通过 strace 这种方式获取 CPU 运行的函数名等等信息就好了。

    我初步的建议是贴一下收集的基础信息,比如 TCP 各状态数量、CPU 一些指标(如 switch )的曲线,反正是越多越好。
    coolloves
        2
    coolloves  
    OP
       2023-03-22 09:05:18 +08:00
    我说的负载是系统显示的负载, load average: 11.29, 11.64, 8.52
    平时就是 mysqlcpu 占用比较高,在 100%-200%之间,系统负载升高的时候,mysqlcpu 占用也差不多没什么变化,
    vmware 的虚拟机,宿主 cpu 占用也不高,
    进程,ps -ef 查看,就是只有 prometheus export 和 zabbix 监控进程和 mysql,剩下的都是默认的系统进程
    strace 查过 mysql 的进程.我不是很会看,如下,搜了下,貌似是正常情况,正常情况下也是这些东西一直 repeat.
    ```
    poll([{fd=68, events=POLLIN|POLLPRI}], 1, 28800000) = 1 ([{fd=68, revents=POLLIN}])
    recvfrom(68, "e\1\0\0", 4, MSG_DONTWAIT, NULL, NULL) = 4
    recvfrom(68, "\3select\n \n \n "..., 357, MSG_DONTWAIT, NULL, NULL) = 357
    sendto(68, "\1\0\0\1\4=\0\0\2\3def\3bid\20subject_priori"..., 419, MSG_DONTWAIT, NULL, 0) = 419
    recvfrom(68, 0x7f7b68025730, 4, MSG_DONTWAIT, NULL, NULL) = -1 EAGAIN (Resource temporarily unavailable)
    poll([{fd=68, events=POLLIN|POLLPRI}], 1, 28800000) = 1 ([{fd=68, revents=POLLIN}])
    recvfrom(68, "\304\0\0\0", 4, MSG_DONTWAIT, NULL, NULL) = 4
    recvfrom(68, "\3select \n \n id, old_id, o"..., 196, MSG_DONTWAIT, NULL, NULL) = 196
    sendto(68, "\1\0\0\1\v+\0\0\2\3def\3bid\7sys_org\7sys_or"..., 764, MSG_DONTWAIT, NULL, 0) = 764
    recvfrom(68, 0x7f7b68025730, 4, MSG_DONTWAIT, NULL, NULL) = -1 EAGAIN (Resource temporarily unavailable)
    poll([{fd=68, events=POLLIN|POLLPRI}], 1, 28800000) = 1 ([{fd=68, revents=POLLIN}])
    recvfrom(68, "\350\0\0\0", 4, MSG_DONTWAIT, NULL, NULL) = 4
    recvfrom(68, "\3select \n \n id, oldId, or"..., 232, MSG_DONTWAIT, NULL, NULL) = 232
    sendto(68, "\1\0\0\1\17-\0\0\2\3def\3bid\10sys_user\10sys_u"..., 1050, MSG_DONTWAIT, NULL, 0) = 1050
    recvfrom(68, 0x7f7b68025730, 4, MSG_DONTWAIT, NULL, NULL) = -1 EAGAIN (Resource temporarily unavailable)
    ```
    coolloves
        3
    coolloves  
    OP
       2023-03-22 09:26:03 +08:00
    systemd─┬─NetworkManager───2*[{NetworkManager}]
    ├─agetty
    ├─auditd───{auditd}
    ├─crond
    ├─dbus-daemon
    ├─firewalld───{firewalld}
    ├─irqbalance
    ├─lvmetad
    ├─mysql_alarm───17*[{mysql_alarm}]
    ├─mysqld───74*[{mysqld}]
    ├─polkitd───5*[{polkitd}]
    ├─rsyslogd───3*[{rsyslogd}]
    ├─sshd───sshd───bash───pstree
    ├─systemd-journal
    ├─systemd-logind
    ├─systemd-udevd
    ├─tuned───4*[{tuned}]
    ├─vmtoolsd───{vmtoolsd}
    └─zabbix_agentd───5*[zabbix_agentd]

    目前的系统进程情况 zabbix_agentd/mysql_alarm 监控
    ice2016
        4
    ice2016  
       2023-03-22 09:41:09 +08:00
    看下升高时的系统进程,日志,定位下机器在做什么,如果是很有规律的应该是定时任务之类的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2431 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:01 · PVG 00:01 · LAX 09:01 · JFK 12:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.