IT外包网管服务,LinuxCPU达到瓶颈,如何优化?

发布者:上海IT外包来源:http://www.lanmon.net点击数:583

      蓝盟IT小知识,来喽!
  在大多数情况下,进程应该总是能够在睡眠时响应异步信号。否则,你会惊讶地发现杀死-9不能杀死一个睡眠过程!因此,我们也很好地理解了为什么ps命令所看到的过程几乎没有任务不可中断状态,但是总是有任务可中断状态。
  TASK _ UNIPLETE状态的意义在于内核的某些处理流程不能被中断。如果响应异步信号,处理异步信号的过程将被插入到程序的执行过程中(这个插入的过程可能只存在于内核状态或者可能扩展到用户状态),因此原始过程将被中断。
  在退出过程中,该过程处于TASK_DEAD状态。在退出过程中,除了task_struct结构(和一些资源)之外,该过程占用的所有资源都将被回收。因此,这个过程只是一个像task_struct这样的外壳,它被称为僵尸。保留task_struct的原因是task_struct存储了进程的退出代码和一些统计信息。它的父进程可能会关心这些信息。例如,在外壳中,$?变量保存最后一个退出的前台进程的退出代码,这个退出代码经常被用作if语句的判断条件。
  当然,内核也可以将这些信息保存在其他地方,并释放task_struct结构来节省一些空间。但是,使用task_struct结构更方便,因为从pid到task_struct的查找关系以及进程之间的父子关系已经在内核中建立。要释放task_struct,需要建立一些新的数据结构,以便父进程可以找到其子进程的退出信息。
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部