Linux相关面试知识

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,查看文件最后多少行

猜你喜欢

转载自blog.csdn.net/qq_40660894/article/details/113664336