码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【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  强制清退进程

  • 相关阅读:
    [架构之路-19]:目标系统 - 硬件平台 - 案例1 - 用单片机STM8/STM32搭建目标系统(以无线传感器LoRa终端为例)
    SpringBoot对Spring MVC都做了哪些事?
    使用Python自动发送邮件
    手写本地缓存实战2—— 打造正规军,构建通用本地缓存框架
    【科技素养】蓝桥杯STEMA 科技素养组模拟练习试卷E
    java学习笔记 day03-Java基础语法
    MATLAB中chirp函数使用
    HTML如何制作音乐网站(如何搭建个人音乐网页)
    acwing算法基础之基础算法--整数二分算法
    [Database] 脏读、幻读这些都是什么?事务隔离级别又是什么?MySQL数据库的事务隔离级别都有哪些?
  • 原文地址:https://blog.csdn.net/liu_xueyin/article/details/134255104
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号