Linux Debian 11 如何查看MySQL数据库相关进程占用的系统资源(CPU,内存)百分比
TIME 2023-04-16 19:57
ps -aux
命令列出当前正在运行的所有进程的信息,然后用grep
命令过滤出所有包含mysql
字符串匹配文本的行,并将它们全部显示出来,找到mysql
的进程ID再通过
top
命令查询mysql
进程ID的系统资源使用情况即可即
查找过滤
mysql
字符串的文本行
通常来说在返回结果的第二行mysql
字符串后面的第一组数字ID
就是mysql
的进程号
再通过top
命令查询mysql
进程ID的系统资源使用情况即可
数字ID
以下是详细解释
使用以下命令来查看占用CPU百分比的SQL数据库相关进程
返回一下内容
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
返回信息详解
第一行显示的是 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服务器进程(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 服务器进程正确地启动,并为它提供必要的配置、身份验证、错误处理和网络通讯等功能。
第三行是 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的系统资源使用情况即可,命令如下
返回结果
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
- 系统已经运行的时间:34天22小时30分钟
- 当前登录系统的用户数:1
- 平均负载(Load Average):0.64, 0.46, 0.52 (分别表示过去1分钟、5分钟、15分钟的平均负载)
第二行命令详解
- 进程相关信息:
- 总进程数:1
- 正在运行的进程数:0
- 睡眠状态的进程数:1
- 已停止的进程数:0
- 僵尸进程数:0
第三行命令详解
-
- 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%
- CPU使用情况:
第四行命令详解
- 内存使用情况:
- 物理内存总量(单位:MiB):1998.9
- 空闲物理内存总量(单位:MiB):163.4
- 已使用物理内存总量(单位:MiB):644.6
- 内核缓存使用的物理内存总量(单位:MiB):1190.9
第五行命令详解
- 交换空间使用情况:
- 交换空间总量(单位:MiB):1024.0
- 空闲交换空间总量(单位:MiB):618.2
- 已使用交换空间总量(单位:MiB):405.8
- 可用于分配的物理内存总量(单位:MiB):1065.6
第六行命令详解
- 进程信息:
- 进程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