在太阳下
不管你喜不喜欢,高不高兴,爱与不爱;太阳照旧照耀着你!温暖着你!

Linux Debian 11 如何查看MySQL数据库相关进程占用的系统资源(CPU,内存)百分比

Linux Debian 11 如何查看MySQL数据库相关进程占用的系统资源(CPU,内存)百分比
TIME 2023-04-16 19:57

简单来说就是通过ps -aux 命令列出当前正在运行的所有进程的信息,然后用grep 命令过滤出所有包含mysql 字符串匹配文本的行,并将它们全部显示出来,找到mysql 的进程ID
再通过top命令查询mysql 进程ID的系统资源使用情况即可

查找过滤mysql字符串的文本行

ps -aux | grep mysql

通常来说在返回结果的第二行mysql字符串后面的第一组数字ID就是mysql的进程号
再通过top命令查询mysql 进程ID的系统资源使用情况即可

top -p 数字ID

以下是详细解释
使用以下命令来查看占用CPU百分比的SQL数据库相关进程

ps -aux | grep mysql

返回一下内容

root 534 0.0 0.0 2484 1020 ? S Mar12 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe –datadir=/usr/local/mysql/var –pid-file=/usr/local/mysql/var/localhost.pid
mysql 1055 5.0 18.7 1462476 384368 ? Sl Mar12 2553:47 /usr/local/mysql/bin/mysqld –basedir=/usr/local/mysql –datadir=/usr/local/mysql/var –plugin-dir=/usr/local/mysql/lib/plugin –user=mysql –log-error=localhost.err –open-files-limit=65535 –pid-file=/usr/local/mysql/var/localhost.pid –socket=/tmp/mysql.sock –port=3306
root 140081 0.0 0.0 6380 708 pts/0 S+ 19:50 0:00 grep mysql

返回信息详解

root 534 0.0 0.0 2484 1020 ? S Mar12 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe –datadir=/usr/local/mysql/var –pid-file=/usr/local/mysql/var/localhost.pid

第一行显示的是 MySQL 的启动脚本进程(mysqld_safe)的基本信息,具体的参数含义如下:

  • 534:这是 mysqld_safe 进程的进程 ID。
  • 0.0:这个值表示 mysqld_safe 进程当前占用的 CPU 资源占用率。因为 mysqld_safe 进程通常不需要很多计算资源,所以它的 CPU 使用率通常比较低。
  • 0.0:这个值表示 mysqld_safe 进程当前的内存占用情况,单位为 MB。因为 mysqld_safe 进程非常轻量级,所以它的内存占用通常也比较低。
  • 2484:这是 mysqld_safe 进程当前实际占用的物理内存大小,单位为 KB。
  • 1020:这是 mysqld_safe 进程当前虚拟内存的使用情况,单位为 KB。它表示 mysqld_safe 进程当前总共向系统申请的内存大小。
  • ?:这个字符表示 mysqld_safe 进程当前没有运行在任何终端上(tty)。
  • S:这是 mysqld_safe 进程的状态。S 表示进程正在运行。
  • Mar12:这是 mysqld_safe 进程启动的日期,格式为“月份+日期”。
  • 0:00:这是 mysqld_safe 进程运行的时间长度,即“时:分”。这里的值为0小时0分钟,表示 mysqld_safe 进程刚刚启动不久。

后面跟着的是启动脚本的具体命令部分。具体来说:

  • /bin/sh:这是启动脚本使用的 shell 解释器,通常都是 bash 或 sh。
  • /usr/local/mysql/bin/mysqld_safe:这是 MySQL 启动脚本的完整路径名,指向 mysqld_safe 命令所在的目录和文件名。
  • –datadir=/usr/local/mysql/var:这个参数指定了 MySQL 的数据存储目录,即 MySQL 数据文件所在的路径。
  • –pid-file=/usr/local/mysql/var/localhost.pid:这个参数指定了 MySQL 进程 ID (PID)文件所在的位置,以便在需要时查询 MySQL 进程的状态。
mysql 1055 5.0 18.7 1462476 384368 ? Sl Mar12 2553:47 /usr/local/mysql/bin/mysqld –basedir=/usr/local/mysql –datadir=/usr/local/mysql/var –plugin-dir=/usr/local/mysql/lib/plugin –user=mysql –log-error=localhost.err –open-files-limit=65535 –pid-file=/usr/local/mysql/var/localhost.pid –socket=/tmp/mysql.sock –port=3306

第二行中的数字包含了MySQL服务器进程(mysqld)的重要参数和资源使用情况,具体如下:

    • 1055:这是 MySQL 服务器进程(mysqld)的进程 ID。
    • 5.0:这是 mysqld 进程目前正在使用的 CPU 资源占用率。它表示这个进程占用了系统总 CPU 时间的百分之五。
    • 18.6:这是 mysqld 进程目前的内存占用情况,单位为 MB。这个值包括了 mysqld 进程本身占用的内存以及它管理的所有数据库、表、索引等数据所占用的内存。
    • 1462476:这是 mysqld 进程当前实际占用的物理内存大小,单位为 KB。
    • 381708:这是 mysqld 进程当前虚拟内存的使用情况,单位为 KB。它表示 mysqld 进程当前总共向系统申请的内存大小。
    • ?:这个字符表示 mysqld 进程当前没有运行在任何终端上(tty)。
    • Sl:这个字符表示 mysqld 进程的状态。S 表示进程正在运行,l 表示该进程是一个多线程进程。
    • Mar12:这个字符串表示 mysqld 进程启动的日期,格式为“月份+日期”。
    • 2553:47:这个字符串表示 mysqld 进程的运行时间长度,即“时:分”。这里的值为2553小时47分钟,表示mysqld进程已经持续运行了2553小时47分钟。

后面的一大串是 MySQL 服务器实际运行的进程(mysqld)的详细命令信息,其中包含了许多关键参数和选项,具体如下:

  • /usr/local/mysql/bin/mysqld:这个是 mysqld 进程的完整路径名,它对应于 MySQL 服务器的主程序文件。
  • –basedir=/usr/local/mysql:这个参数指定了 MySQL 程序所在的基本目录,即 MySQL 的根目录。
  • –datadir=/usr/local/mysql/var:这个参数指定了 MySQL 存储数据文件的目录路径,MySQL 将在这个目录下创建各种数据库、表等数据文件。
  • –plugin-dir=/usr/local/mysql/lib/plugin:这个参数指定了 MySQL 插件文件所在的目录路径,MySQL 可以在启动时加载这些插件。
  • –user=mysql:这个参数指定了 MySQL 进程运行所使用的用户身份。在这里,MySQL 使用 mysql 用户的身份运行。
  • –log-error=localhost.err:这个参数指定了 MySQL 错误日志文件的名称,其存储路径为 MySQL 数据目录。
  • –open-files-limit=65535:这个参数指定了 MySQL 进程能够同时打开的最大文件数目,可以看做是 MySQL 所支持的最大连接数量的一个限制因素。
  • –pid-file=/usr/local/mysql/var/localhost.pid:这个参数指定了 MySQL 进程 ID 文件所在位置,与启动进程时使用的相同。
  • –socket=/tmp/mysql.sock:这个参数指定了 MySQL 进程所使用的 Unix 套接字文件路径,即客户端程序连接到 MySQL 服务器时所需要使用的 socket 文件。
  • –port=3306:这个参数指定了 MySQL 服务进程所监听的 TCP/IP 端口号,用于在网络上与客户端进行通信。

总的来说,这些命令行参数和选项可以帮助 MySQL 服务器进程正确地启动,并为它提供必要的配置、身份验证、错误处理和网络通讯等功能。

root 140081 0.0 0.0 6380 708 pts/0 S+ 19:50 0:00 grep mysql

第三行是 grep 命令执行的结果,用于查找包含字符串 “mysql” 的进程信息。具体来说:

  • root:这个是 grep 命令输出的进程所属的用户。
  • 140081:这个是 grep 命令输出的进程的进程 ID。
  • 0.0:这个值表示 grep 命令输出的进程目前占用的 CPU 资源占用率为 0%。
  • 0.0:这个值表示 grep 命令输出的进程目前的内存占用情况为 0MB。
  • 6380:这个是 grep 命令输出的进程当前实际占用的物理内存大小,单位为 KB。
  • 708:这个是 grep 命令输出的进程当前虚拟内存的使用情况,单位为 KB。它表示 grep 命令输出的进程当前总共向系统申请的内存大小。
  • pts/0:这个字符表示 grep 命令输出的进程正在运行在一个伪终端(pseudo-terminal)上,通常用于 Shell 操作等。
  • S+:这个字符表示 grep 命令输出的进程的状态。S 表示进程正在运行,+ 表示该进程处于前台。
  • 19:50:这个字符串表示 grep 命令输出的进程的启动时间,格式为“小时:分钟”。
  • 0:00:这个字符串表示 grep 命令输出的进程运行的时间长度,即“时:分”。这里的值为 0 小时 0 分钟,表示 grep 命令刚刚执行不久。

总的来说,第三行是一个用于查找 MySQL 进程信息的命令,并列出了与 “mysql” 相关的所有进程。由于这个进程本身也包含了字符串 “mysql”,因此也被列在了这个结果中。

所以综上所述,我们只需要查看第二行mysqld进程ID1055的系统资源使用情况即可,命令如下

top -p 1055

返回结果

top – 20:22:01 up 34 days, 22:30, 1 user, load average: 0.64, 0.46, 0.52
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
%Cpu(s): 7.8 us, 3.7 sy, 0.0 ni, 87.8 id, 0.7 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 1998.9 total, 163.4 free, 644.6 used, 1190.9 buff/cache
MiB Swap: 1024.0 total, 618.2 free, 405.8 used. 1065.6 avail MemPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1055 mysql 20 0 1462476 379680 15144 S 12.0 18.5 2559:38 mysqld

简单说一下-p参数在 top 命令中,用于指定要监视的进程 ID 或进程组 ID。比如可以输入一个或多个进程 ID 来限制 top 命令只显示特定进程的资源使用情况。
这里的话,直接看最后一行信息好了,前面都是系统相关的,而最后一行的信息才是我们想要的
返回信息详解

top – 20:22:01 up 34 days, 22:30, 1 user, load average: 0.64, 0.46, 0.52

第一行命令详解
这是一个关于系统资源使用情况的top命令的输出结果,包含了以下信息:

  • 当前的时间:20:22:01
  • 系统已经运行的时间:34天22小时30分钟
  • 当前登录系统的用户数:1
  • 平均负载(Load Average):0.64, 0.46, 0.52 (分别表示过去1分钟、5分钟、15分钟的平均负载)
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie

第二行命令详解

  • 进程相关信息:
    • 总进程数:1
    • 正在运行的进程数:0
    • 睡眠状态的进程数:1
    • 已停止的进程数:0
    • 僵尸进程数:0
%Cpu(s): 7.8 us, 3.7 sy, 0.0 ni, 87.8 id, 0.7 wa, 0.0 hi, 0.0 si, 0.0 st

第三行命令详解

    • CPU使用情况:
      • 用户空间占用CPU的百分比:7.8%
      • 内核空间占用CPU的百分比:3.7%
      • 改变过优先级的进程占用CPU的百分比:0.0%
      • 空闲CPU的百分比:87.8%
      • 等待输入输出的CPU时间占用百分比:0.7%
      • 操作系统内核处理硬件中断所占用的CPU时间百分比:0.0%
      • 操作系统内核处理软中断所占用的CPU时间百分比:0.0%
      • 虚拟CPU占用的百分比:0.0%
MiB Mem : 1998.9 total, 163.4 free, 644.6 used, 1190.9 buff/cache

第四行命令详解

  • 内存使用情况:
    • 物理内存总量(单位:MiB):1998.9
    • 空闲物理内存总量(单位:MiB):163.4
    • 已使用物理内存总量(单位:MiB):644.6
    • 内核缓存使用的物理内存总量(单位:MiB):1190.9
MiB Swap: 1024.0 total, 618.2 free, 405.8 used. 1065.6 avail MemPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

第五行命令详解

  • 交换空间使用情况:
    • 交换空间总量(单位:MiB):1024.0
    • 空闲交换空间总量(单位:MiB):618.2
    • 已使用交换空间总量(单位:MiB):405.8
    • 可用于分配的物理内存总量(单位:MiB):1065.6
1055 mysql 20 0 1462476 379680 15144 S 12.0 18.5 2559:38 mysqld

第六行命令详解

  • 进程信息:
    • 进程ID(PID):1055
    • 所有者(USER):mysql
    • 进程优先级(PR):20
    • 进程nice值(NI):0
    • 进程虚拟地址空间大小(VIRT,单位:KiB):1462476
    • 进程驻留内存大小(RES,单位:KiB):379680
    • 进程共享内存大小(SHR,单位:KiB):15144
    • 进程占用CPU的百分比(%CPU):12.0%
    • 进程占用物理内存的百分比(%MEM):18.5%
    • 进程已占用的CPU时间(TIME+):2559:38
    • 进程名(COMMAND):mysqld

点击数:12

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
Verified by MonsterInsights