网络相关面试题

本文详细解析了CPU负载与利用率的区别,通过举例帮助理解两者的概念。当CPU负载高而利用率低时,可能存在大量等待的IO密集型任务;反之,负载低而利用率高则可能是代码效率问题。针对100%CPU使用率,给出了使用top、jstack等工具的排查步骤。同时列举了一些常用的Linux命令,如top、ps、jstack等,帮助系统管理员进行性能监控与问题诊断。
摘要由CSDN通过智能技术生成

1、CPU负载和CPU利用率的区别

可以通过uptime,w,top命令查看CPU的平均负载

在这里插入图片描述
Load Average:指的是当前系统处于正在运行和等待的进程,3个参数代表系统过去的1分钟,5分钟,15分钟内的系统平均负载

单核cpu负载为1时表示满负载,如4核cpu满负载为4,一般合适为70%,超过之后可能需要排查

CPU利用率:指当前运行进程实时占用CPU的百分比,是一段时间内CPU使用情况的统计

例如
厕所有一个坑位,如果有一个人占用了坑位,这时候负载就是1,如果再来一个人排队负载就是2
在一个小时内,A上厕所用了10分钟,B上厕所用了20分钟,还有30分钟没人用,那么这一个小时的利用率就是50%

2.如果CPU负载很高,利用率很低怎么办?

说明处于等待状态的任务很多,负载越高,代表可能有很多僵死的进程。通常这种情况是IO密集型任务,大量请求在请求相同的IO,导致任务队列堆积。
通过top命令观察,通过ps -axjf查看是否有状态为D+的进程,这个状态指的就是不可中断的睡眠状态的进程。处于这个状态的进程无法终止,也无法自行退出,只能通过恢复其依赖的资源或者重启系统来解决

3、 如果CPU负载很低,利用率很高又怎么办呢?

表示CPU任务不多,但是任务的执行时间很长,很大概率是代码问题,通过top定位到最高的任务进行排查

4、CPU使用率达到100%怎么排查

1)、通过top命令找到占用率高的进程

2)、通过top -Hp pid找到占用CPU高的线程

3)、再把线程id转化为16进制,printf '0x%x\n' pid

4)、通过命令jstack 163 | grep '转化后的16进制' -C5 --color 或者jstack 163|vim +/转化后的16进制 -找到有问题的代码

5、Linux常用命令

1)、touch,创建文件
2)、cat,查看文件
3)、tail,查看文件最后多少行

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值