当前位置: 首页 > news >正文

【Linux】拓展:运维面试题,进程管理常见的7大问题

目录

一、如何判断一个程序是单线程还是多线程

二、僵尸进程是什么,有什么危害,如何解决

三、如何找回删掉的文件

四、删除文件以后,空间不释放

五、遇到一个病毒(如死循环病毒),解决思路

六、机器开机前几天很正常,过了几天很卡顿,怎么解决?

七、oom内存不足怎么解决?


一、如何判断一个程序是单线程还是多线程

思路,判断一个进程是单线程还是多线程,原理应该是查看进程配置文件/proc/进程pid/status

1、查看/proc/进程pid/status:cat /proc/pid/status |grep -i threads

2、使用prtstat命令:prtstat pid号|grep -i threads

3、采用pstree 命令树查看:pstree -p|grep 进程名称

二、僵尸进程是什么,有什么危害,如何解决

僵尸进程是因为子进程结束的时候,父进程并不知情(父进程被暂停了),导致父进程并没有收回资源,消耗了cpu;

危害:僵尸进程实际没有工作,却占用资源

解决:要么干掉父进程(kill -9),要么恢复父进程状态(kill -18)

三、如何找回删掉的文件

思路:有一个文件存在,不小心删除了,我们可以想到lsof命令,列出进程中的所有文件,包含删除的文件,

1、可以通过这个命令找到文件删除的进程pid号;

2、根据pid找到/proc/pid号/fd 文件夹

3、查看下,这里有可能有误删文件,能不能恢复看命

四、删除文件以后,空间不释放

思路:现在要清理磁盘空间,发现文件并不释放,说明大概率这个文件有人正在使用

解决办法:1、给一个空字符,释放空间 ;2、强杀kill -9

方法一:给个空字符

方法二:kill -9

五、遇到一个病毒(如死循环病毒),解决思路

思路:病毒之所以危害是消耗我们cpu的资源,

1、先用ps aux k -%cpu 先找到消耗我们cpu资源的进程pid号,判断出哪个是病毒,病毒的pid是多少

2、然后使用进入/proc/pid号/这个目录中,可以查看是否有exe的执行文件,是个软连接

3、使用ll了解这个病毒的源程序

4、然后将源删掉,模拟创建一个同名文件

5、给这个文件加上一个权限,限定只能访问不能覆盖等,超级管理员都不能改

六、机器开机前几天很正常,过了几天很卡顿,怎么解决?

说明内存的缓存空间需要清理

[root@localhost 27813]#echo 3 > /proc/sys/vm/drop_caches 

七、oom内存不足怎么解决?

关于oom,out of memory,内存不足,在java程序中比较常见。系统会选一个进程将之杀死,在日志messages中看到类似下面的提示

Jul 10 10:20:30 kernel: Out of memory: Kill process 9527 (java) score 88 or sacrifice child
————————————————
 

思路:1、要么是本身就内存空间不足;2、要么是代码有bug,存在僵尸进程,消耗内存资源;

解决办法:

清理缓存:使用free  、 top 监控内存的缓存空间,并使用echo 3 > /proc/sys/vm/drop_caches 清理缓存,监控内存空间变化;

可能存在僵尸进程:使用命令ps aux |grep Z |grep -v grep,再使用kill  -9  强制清退进程

http://www.lryc.cn/news/221529.html

相关文章:

  • Android修行手册 - 一文全了解Kotlin几种静态变量、函数实现的那些事
  • Qt QTableView排序
  • Linux shell编程学习笔记22: () $() (()) 的用法小结
  • 1. Pthreads专栏简介
  • C++17 fallthrough属性
  • STM32 蜂鸣器介绍 配置 播放音节
  • 多目标最优化的资产配置
  • word图片的标题跑到了图片的上方。
  • electron打包下载资源失败,设置国内镜像
  • 架构漫谈 - 如何设计高性能、高可用、高扩展架构
  • matlab 读写ENVI标准数据
  • 如何对ppt文件设置修改权限?
  • STM32G030F6P6 芯片实验 (二)
  • 时间序列预测模型实战案例(七)(TPA-LSTM)结合TPA注意力机制的LSTM实现多元预测
  • Mysql多表设计
  • 第九章:最新版零基础学习 PYTHON 教程—Python 元组(第五节 -清除元组的5种方式方法)
  • 学习笔记4——JVM运行时数据区梳理
  • Splunk 创建特色 dashboard 报表
  • 如何在校园跑腿系统小程序中构建稳健的订单处理与分配系统?
  • 数据结构与算法—双链表
  • linux继续循环案例测试ping网络,目录下的文件权限循环输出
  • 关于SSP3D复现
  • 在直播系统中使用RTSP协议传递视频
  • Notion汉化
  • echarts有背景的柱状图,鼠标滑过提示信息都是展示背景柱状图的值
  • 华为防火墙基本原理工作方法总结
  • Spring Cloud之多级缓存
  • 融云荣登「2023 年度 PaaS 企业排行榜」
  • YOLOv8轻量化模型:模型轻量化设计 | 轻量级可重参化EfficientRep| 来自YOLOv6思想
  • 【JavaSE】基础笔记 - 类和对象(下)