linux查看mysql负载_Linux查看系统负载(CPU和MEM考虑)

查看进程资源使用
本文介绍如何使用ps和top命令查看Linux系统中进程的CPU和内存使用情况,并通过具体实例展示了如何筛选出占用资源最高的进程。

查看占用CPU最高的10个进程

[tidb@:vg_adn_tidbCkhsTest:172.31.30.62 ~/tidb-ansible]$ps aux | grep -v PID | sort -rn -k 3|head

mysql30049 6.6 60.4 20895252 18873436 ? Sl Nov22 491:44 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql/ --datadir=/data/data_mysql --plugin-dir=/usr/local/mysql//lib/plugin --user=mysql --log-error=/usr/local/mysql/logs/mysql.log --pid-file=/data/data_mysql/mysql.pid --socket=/tmp/mysql.sock --port=3306

tidb 26864 0.0 0.0 107956 640 pts/0 S+ 17:20 0:00head

tidb26863 0.0 0.0 122640 912 pts/0 S+ 17:20 0:00 sort -rn -k 3tidb26861 0.0 0.0 155324 1848 pts/0 R+ 17:20 0:00ps aux

tidb20633 0.0 0.0 115528 2224 pts/0 S 15:59 0:00 -bash

rpc559 0.0 0.0 69220 696 ? Ss Nov05 0:02 /sbin/rpcbind -w

root9 0.0 0.0 0 0 ? S Nov05 2:02[rcu_sched]

root898 0.0 0.0 573856 11644 ? Ssl Nov05 2:25 /usr/bin/python -Es /usr/sbin/tuned -l -P

root815 0.0 0.0 107396 2680 ? Ss Nov05 0:01 /sbin/dhclient -1 -q -lf /var/lib/dhclient/dhclient--ens3.lease -pf /var/run/dhclient-ens3.pid -H ip-172-31-30-62ens3

root8 0.0 0.0 0 0 ? S Nov05 0:00 [rcu_bh]

或者在TOP命令下按下大写字母M键同样的效果

查看占用MEM最高的10个进程

[tidb@:vg_adn_tidbCkhsTest:172.31.30.62 ~/tidb-ansible]$ps aux | grep -v PID | sort -rn -k 4|head

mysql30049 6.6 60.4 20895252 18873436 ? Sl Nov22 491:44 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql/ --datadir=/data/data_mysql --plugin-dir=/usr/local/mysql//lib/plugin --user=mysql --log-error=/usr/local/mysql/logs/mysql.log --pid-file=/data/data_mysql/mysql.pid --socket=/tmp/mysql.sock --port=3306

root 379 0.0 0.1 100940 48652 ? Ss Nov05 0:16 /usr/lib/systemd/systemd-journald

root1053 0.0 0.1 281844 31816 ? Ssl Nov05 1:10 /usr/sbin/rsyslogd -n

tidb26951 0.0 0.0 107956 644 pts/0 S+ 17:22 0:00head

tidb26950 0.0 0.0 122640 912 pts/0 S+ 17:22 0:00 sort -rn -k 4tidb26948 0.0 0.0 155324 1852 pts/0 R+ 17:22 0:00ps aux

tidb20633 0.0 0.0 115528 2224 pts/0 S 15:59 0:00 -bash

rpc559 0.0 0.0 69220 696 ? Ss Nov05 0:02 /sbin/rpcbind -w

root9 0.0 0.0 0 0 ? S Nov05 2:02[rcu_sched]

root898 0.0 0.0 573856 11644 ? Ssl Nov05 2:25 /usr/bin/python -Es /usr/sbin/tuned -l -P

或者在TOP命令下按下大写字母P键同样的效果。

其中第一句主要是为了获取标题(USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND)。

接下来的grep -v PID是将ps aux命令得到的标题去掉,即grep不包含PID这三个字母组合的行,再将其中结果使用sort排序。

sort -rn -k +3该命令中的-rn的r表示是结果倒序排列,n为以数值大小排序,而-k +3则是针对第3列的内容进行排序,再使用head命令获取默认前10行数据。(其中的|表示管道操作)

top命令讲解:

tidb@:vg_adn_tidbCkhsTest:172.31.30.62 ~/tidb-ansible]$top

top- 17:15:38 up 22 days, 21 min, 2 users, load average: 0.00, 0.01, 0.05Tasks:122 total, 1 running, 121 sleeping, 0 stopped, 0zombie%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0st

KiB Mem :31231636 total, 11306468 free, 19201604 used, 723564 buff/cache

KiB Swap:0 total, 0 free, 0 used. 11544796avail Mem

Unknown command- try 'h' forhelp

PID USER PR NI VIRT RES SHR S%CPU %MEM TIME+COMMAND1 root 20 0 193552 5156 2608 S 0.0 0.0 4:22.86systemd2 root 20 0 0 0 0 S 0.0 0.0 0:00.26kthreadd3 root 20 0 0 0 0 S 0.0 0.0 0:07.53 ksoftirqd/0

5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H7 root rt 0 0 0 0 S 0.0 0.0 0:02.04 migration/0

8 root 20 0 0 0 0 S 0.0 0.0 0:00.00rcu_bh9 root 20 0 0 0 0 S 0.0 0.0 2:02.13rcu_sched10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain11 root rt 0 0 0 0 S 0.0 0.0 0:06.66 watchdog/0

12 root rt 0 0 0 0 S 0.0 0.0 0:05.26 watchdog/1

13 root rt 0 0 0 0 S 0.0 0.0 0:03.10 migration/1

14 root 20 0 0 0 0 S 0.0 0.0 0:07.05 ksoftirqd/1

PID:进程的ID

USER:进程所有者

PR:进程的优先级别,越小越优先被执行

NInice:值

VIRT:进程占用的虚拟内存

RES:进程占用的物理内存

SHR:进程使用的共享内存

S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数

%CPU:进程占用CPU的使用率

%MEM:进程使用的物理内存和总内存的百分比

TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。

COMMAND:进程启动命令名称

AWK命令将内存的那一列数值截取出来

[tidb@:vg_adn_tidbCkhsTest: ~/tidb-ansible]$ps aux|grep -v PID|sort -rn -k +4|head | awk -F' ' '{print $4}'

<think>我们正在回答用户关于“如何查看Linux系统中CPU占用最高的进程”的问题。 根据之前的引用[1][2][3]我们的知识,我们可以提供以下方法: ### 查看Linux系统中CPU占用最高进程的方法 #### 1. 使用 `top` 命令(实时动态查看) **步骤**: ```bash top ``` - **操作说明**: - 进入`top`界面后,默认按CPU使用率(%CPU)降序排列。 - 按下大写字母 **P**(Shift+P)可确保按CPU排序(若未自动排序)。 - 实时显示进程的PID、用户、CPU占用率、内存占用等。 - 按 **q** 退出。 **示例输出关键行**: ``` PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1234 root 20 0 10.8g 1.2g 12345 R 99.6 2.3 10:20.77 java ``` > 提示:`top`命令每3秒刷新一次,可动态观察CPU占用变化[^2][^3]。 #### 2. 使用 `ps` 命令(静态快照) **命令**(按CPU占用降序显示前10个进程): ```bash ps -eo pid,user,%cpu,%mem,comm --sort=-%cpu | head -n 11 ``` - **参数解释**: - `-eo`:自定义输出字段(PID、用户、CPU%、内存%、命令名)。 - `--sort=-%cpu`:按CPU使用率降序排序(去掉负号为升序)。 - `head -n 11`:显示前11行(第一行为标题行)。 **输出示例**: ``` PID USER %CPU %MEM COMMAND 1234 root 99.6 2.3 java 5678 mysql 25.3 12.1 mysqld ``` #### 3. 使用 `htop`(增强版,推荐) 若未安装,先执行安装命令: - Debian/Ubuntu:`sudo apt install htop` - CentOS/RHEL:`sudo yum install htop` **使用**: ```bash htop ``` - **优势**: - 彩色界面,支持鼠标操作。 - 按 **F6** 可选择排序字段(如`PERCENT_CPU`)。 - 直接显示进程树(按 **F5**)。 #### 4. 使用 `atop`(高级监控) 安装命令(如需): ```bash sudo apt install atop # Debian/Ubuntu sudo yum install atop # CentOS/RHEL ``` **使用**: ```bash atop -c ``` - 可记录历史资源使用情况,适合诊断间歇性高负载问题。 #### 5. 快速定位脚本 组合命令(输出占用CPU最高的进程及其详细信息): ```bash ps -eo pid,user,pcpu,pmem,args --sort=-pcpu | head -n 6 ``` > **注意**:若发现异常高CPU进程,可用`strace -p <PID>`跟踪系统调用,或`perf top`分析性能瓶颈[^1]。 §§相关问题§§ 1. 如何持续监控Linux系统中某个进程的CPU使用情况? 2. 服务器CPU使用率过高时,有哪些常用的排查步骤? 3. 如何通过`pidstat`命令监控进程的详细资源使用? </think> ### 查看Linux系统中CPU占用最高进程的方法 #### 方法1:使用 `top` 命令(实时动态监控) ```bash top ``` - **操作步骤**: 1. 直接执行命令进入监控界面 2. 按 **P**(大写)键按CPU使用率降序排序 3. 查看顶部列表,排第一的进程就是CPU占用最高的 4. 按 **q** 退出界面 **关键指标**: - `%CPU`:进程的CPU使用率百分比 - `PID`:进程ID - `COMMAND`:进程名称 > 优势:实时刷新(默认3秒),可观察CPU占用变化趋势[^2][^3] #### 方法2:使用 `ps` 命令(静态快照) ```bash ps -eo pid,user,%cpu,cmd --sort=-%cpu | head -n 6 ``` **输出示例**: ``` PID USER %CPU COMMAND 4721 appuser 98.5 /usr/bin/java -Xmx4g 5834 root 25.3 /usr/sbin/mysqld ``` - `--sort=-%cpu`:按CPU使用率降序排序 - `head -n 6`:显示前5个高CPU进程(第1行为标题) #### 方法3:使用 `htop`(增强版工具) ```bash # 安装(若未预装) sudo apt install htop # Debian/Ubuntu sudo yum install htop # CentOS/RHEL # 使用 htop ``` **操作**: 1. 进入界面后按 **F6** 2. 选择 `PERCENT_CPU` 排序 3. 支持鼠标点击列标题排序 4. 颜色标识更直观显示资源占用 #### 方法4:组合命令(快速定位) ```bash # 显示前5个高CPU进程的详细信息 ps -eo pid,ppid,user,%cpu,%mem,cmd --sort=-%cpu --cols 200 | head -n 6 ``` **参数说明**: - `ppid`:父进程ID - `%mem`:内存占用百分比 - `--cols 200`:避免长命令被截断 #### 方法5:持续监控特定进程 ```bash # 每2秒刷新高CPU进程 watch -n 2 "ps -eo pid,user,%cpu,cmd --sort=-%cpu | head -n 6" ``` > **排查技巧**: > - 发现高CPU进程后,用 `strace -p <PID>` 跟踪系统调用 > - 使用 `perf top` 分析热点函数 > - 结合 `vmstat 1` 查看整体CPU状态
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值