Linux里面cpu占用太高排查思路是什么?

Linux里面cpu占用太高排查思路是什么?,第1张

思路就是top查看是什么进程占用高,一般是应用或者数据库,应用方面可以看看运行吐出日志是否有报错信息,查netstat连接应用端口的会话是不是有异常,数据库进程高,可以使用自带的检查命令后台看是否有执行很久的sql事务,锁等待频繁,报错日志等,找到问题针对性的优化,一步一步解决。

linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合:

ps aux|head -1ps aux|grep -v PID|sort -rn -k +3|head

linux下获取占用内存资源最多的10个进程,可以使用如下命令组合:

ps aux|head -1ps aux|grep -v PID|sort -rn -k +4|head

命令组合解析(针对CPU的,MEN也同样道理):

ps aux|head -1ps aux|grep -v PID|sort -rn -k +3|head

该命令组合实际上是下面两句命令:

ps aux|head -1

ps aux|grep -v PID|sort -rn -k +3|head

可以使用一下命令查使用内存最多的10个进程

查看占用cpu最高的进程

ps aux|head -1ps aux|grep -v PID|sort -rn -k +3|head

或者top (然后按下M,注意这里是大写)

查看占用内存最高的进程

ps aux|head -1ps aux|grep -v PID|sort -rn -k +4|head

或者top (然后按下P,注意这里是大写)

该命令组合实际上是下面两句命令:

ps aux|head -1

ps aux|grep -v PID|sort -rn -k +3|head

其中第一句主要是为了获取标题(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行数据。(其中的|表示管道 *** 作)

关于Linux命令的介绍,看看《linux就该这么学》,具体关于这一章地址3w(dot)linuxprobe/chapter-02(dot)html

PID:进程的ID

USER:进程所有者

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

NInice:值

VIRT:进程占用的虚拟内存

RES:进程占用的物理内存

SHR:进程使用的共享内存

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

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

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

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

COMMAND:进程启动命令名称

用 'top -i' 看看有多少进程处于 Running 状态,可能系统存在内存或 I/O 瓶颈,用 free 看看系统内存使用情况,swap 是否被占用很多,用 iostat 看看 I/O 负载情况...

top:

主要参数

d:指定更新的间隔,以秒计算。

q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。

c:显示进程完整的路径与名称。

S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。

s:安全模式。

i:不显示任何闲置(Idle)或无用(Zombie)的行程。

n:显示更新的次数,完成后将会退出to

显示参数:

PID(Process ID):进程标示号。

USER:进程所有者的用户名。

PR:进程的优先级别。

NI:进程的优先级别数值。

VIRT:进程占用的虚拟内存值。

RES:进程占用的物理内存值。

SHR:进程使用的共享内存值。

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

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

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

TIME+:该进程启动后占用的总的CPU时间。

Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。

top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。

:立刻刷新。

P:根据CPU使用大小进行排序。

T:根据时间、累计时间排序。

q:退出top命令。

m:切换显示内存信息。

t:切换显示进程和CPU状态信息。

c:切换显示命令名称和完整命令行。

M:根据使用内存大小进行排序。

W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

free

1.作用

free命令用来显示内存的使用情况,使用权限是所有用户。

2.格式

free [-b-k-m] [-o] [-s delay] [-t] [-V]

3.主要参数

-b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。

-s delay:显示每隔多少秒数来显示一次内存使用情况。

-t:显示内存总和列。

-o:不显示缓冲区调节列。

uptime

18:59:15 up 25 min, 2 users, load average: 1.23, 1.32, 1.21

现在的时间

系统开机运转到现在经过的时间

连线的使用者数量

最近一分钟,五分钟和十五分钟的系统负载

参数: -V 显示版本资讯。

vmstat

procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----

r b swpd free buff cache si so bi bo in cs us sy id wa

0 1 24980 10792 8296 47316 5 19 205 52 1161 698 26 3 1 70

1 观察磁盘活动情况

磁盘活动情况主要从以下几个指标了解:

bi:表示从磁盘每秒读取的块数(blocks/s)。数字越大,表示读磁盘的活动越多。

bo:表示每秒写到磁盘的块数(blocks/s)。数字越大,表示写磁盘的活动越多。

wa:cpu等待磁盘I/O(未决的磁盘IO)的时间比例。数字越大,表示文件系统活动阻碍cpu的情况越严重,因为cpu在等待慢速的磁盘系统提供数据。wa为0是最理想的。如果wa经常大于10,可能文件系统就需要进行性能调整了。

2 观察cpu活动情况

vmstat比top更能反映出cpu的使用情况:

us:用户程序使用cpu的时间比例。这个数字越大,表示用户进程越繁忙。

sy: 系统调用使用cpu的时间比例。注意,NFS由于是在内核里面运行的,所以NFS活动所占用的cpu时间反映在sy里面。这个数字经常很大的话,就需要注 意是否某个内核进程,比如NFS任务比较繁重。如果us和sy同时都比较大的话,就需要考虑将某些用户程序分离到另外的服务器上面,以免互相影响。

id:cpu空闲的时间比例。

wa:cpu等待未决的磁盘IO的时间比例。

iostat

用于统计CPU的使用情况及tty设备、硬盘和CD-ROM的I/0量

参数:

-c 只显示CPU行

-d 显示磁盘行

-k 以千字节为单位显示磁盘输出

-t 在输出中包括时间戳

-x 在输出中包括扩展的磁盘指标

avg-cpu: %user %nice %sys %iowait %idle

20.25 0.18 2.61 76.39 0.57

%iowait 等待本地I/O时CPU空闲时间的百分比

%idle 未等待本地I/O时CPU空闲时间的百分比

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn

hda 9.86 284.34 84.48 685407 2036

每秒传输数(tps)、每秒512字节块读取数(Blk_read/s)、每秒512字节块写入数(Blk_wrtn/s)和512字节块读取(Blk_read)和写入(Blk_wrtn)的总数量。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8925717.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存