Linux

1 minute read

僵尸进程和孤儿进程是什么? https://www.cnblogs.com/anker/p/3271773.html 孤儿进程:一个父进程退出,它的子进程还在运行,这些子进程将变为孤儿进程,孤儿进程将被init进程收养,由init进程完成它们的状态收集工作 僵尸进程:一个进程使用fork创建子进程,如果子进程退出,父进程并没有调用wait或waitpid获取子进程状态信息,那么这些子进程的进程描述符仍然保留在系统中,这种进程成为僵尸进程

孤儿进程没什么危害,僵尸进程状态是Z,如果产生大量僵尸进程,将因为没有可用的进程号创建新进程。

怎么解决僵尸进程? (1)通过信号机制 子进程退出时向父进程发送信号通知父进程处理 (2)fork两次 将子进程成为孤儿进程,从而其的父进程变为init进程,通过init进程可以处理僵尸进程。

linux中的cgroup是什么? docker使用cgroup做了什么? https://tech.meituan.com/2015/03/31/cgroups.html cgroups 是Linux内核提供的一种可以限制单个进程或者多个进程所使用资源的机制,可以对 cpu,内存等资源实现精细化的控制, 目前越来越火的轻量级容器 Docker 就使用了 cgroups 提供的资源限制能力来完成cpu,内存等部分的资源控制。 另外,开发者也可以使用 cgroups 提供的精细化控制能力,限制某一个或者某一组进程的资源使用。 比如在一个既部署了前端 web 服务,也部署了后端计算模块的八核服务器上,可以使用 cgroups 限制 web server 仅可以使用其中的六个核,把剩下的两个核留给后端计算模块。

虚引用的应用场景是什么? 虚引用必须与 ReferenceQueue 一起使用,当 GC 准备回收一个对象,如果发现它有虚引用,就会在回收之前,把这个 虚引用 加入到与之关联的 ReferenceQueue 中。 虚引用的主要作用是跟踪对象被垃圾回收的状态,仅仅是提供一种确保对象被finalize以后,做某些事情的机制。

linux进程通信方式? 1、管道 2、信号量 3、共享内存 4、套接字

linux内存和jvm内存的关系是怎么样的? https://cloud.tencent.com/developer/article/1057666 Linux内存管理的基本思想之一,是只有在真正访问一个地址的时候才建立这个地址的物理映射。 mmap系统调用实现了更有用的动态内存分配功能,可以将一个磁盘文件的全部或部分内容映射到用户空间中,进程读写文件的操作变成了读写内存的操作。 对 P1 和 P2 等进程来说,它们都以为自己占用了整个内存,而自己使用的物理内存的哪段地址,它们并不知道也无需关心。 https://blog.csdn.net/weixin_40864891/article/details/105272616

linux命令? jps 可以列出本机所有java进程的pid -l参数 输出main包名路径 jmap 可以输出所有内存中的对象,也可以将堆信息输出到文本 jstack 可以查看进程当前时刻的调用堆栈信息,可以用来分析线程长时间停顿、线程死锁、线程请求外部资源长时间等待等问题

linux高cpu进程排查 linux怎么查找占用cpu高的线程? https://blog.csdn.net/hrn1216/article/details/51426741 https://blog.csdn.net/xgjianstart/article/details/53427420 top查找进程 top -Hp PID 查找进程中占cpu的线程 jstack pid 打印指定进程的堆栈信息,打印到文件中 将上述占cpu高的线程转成16进制在文件中搜索 https://blog.csdn.net/xgjianstart/article/details/53427420

top -H 占用高cpu的线程

linux高内存进程排查 oom问题分析? top查看进程 jmap dump进程内存对象信息 jvisiualvm分析dump下来的二进制文件

Updated:

Leave a comment