我知道每Unix进程进程表都进入点(entry)核程序执行该进程使用切信息都存储进入点用ps命令察看系统进程信息看进程表相关数据fork()系统调用建立新进程核进程进程表给新进程配进入点相关信息存储该进入点所应进程表内些信息项其父进程识别码进程走完自命周期执行exit()系统调用原进 程表数据该进程退码(exit code)、执行所用CPU间等数据所取代些数据直保留系统传递给父进程止由见defunct进程现间进 程终止父进程尚未读取些数据前
defunct进程能直接kill -9杀掉否则叫僵尸进程
知道defunct进程产原轻易kill掉defunct进程
二:
1重启服务器电脑简单易用服务器电脑运行其程序代价
所尽量使用面种
2找该defunct僵尸进程父进程该进程父进程杀掉则defunct进程自消失第一种:用 top 命令 中的cpu 信息观察
Top可以看到的cpu信息有:
Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie
Cpu(s): 03% us, 10% sy, 00% ni, 987% id, 00% wa, 00% hi, 00% si
具体的解释如下:
Tasks: 29 total 进程总数
1 running 正在运行的进程数
28 sleeping 睡眠的进程数
0 stopped 停止的进程数
0 zombie 僵尸进程数
Cpu(s):
03% us 用户空间占用CPU百分比
10% sy 内核空间占用CPU百分比
00% ni 用户进程空间内改变过优先级的进程占用CPU百分比
987% id 空闲CPU百分比
00% wa 等待输入输出的CPU时间百分比
00% hi
00% si
00% wa 的百分比可以大致的体现出当前的磁盘io请求是否频繁。如果 wa的数量比较大,说明等待输入输出的的io比较多。
第二种:用vmstat
vmstat 命令报告关于线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。由 vmstat 命令生成的报告可以用于平衡系统负载活动。系统范围内的这些统计信息(所有的处理器中)都计算出以百分比表示的平均值,或者计算其总和。
输入命令:
vmstat 2 5
如果发现等待的进程和处在非中断睡眠状态的进程数非常多,并且发送到块设备的块数和从块设备接收到的块数非常大,那就说明磁盘io比较多。
vmstat参数解释:
Procs
r: 等待运行的进程数 b: 处在非中断睡眠状态的进程数 w: 被交换出去的可运行的进程数。此数由 linux 计算得出,但 linux 并不耗尽交换空间
Memory
swpd: 虚拟内存使用情况,单位:KB
free: 空闲的内存,单位KB
buff: 被用来做为缓存的内存数,单位:KB
Swap
si: 从磁盘交换到内存的交换页数量,单位:KB/秒
so: 从内存交换到磁盘的交换页数量,单位:KB/秒
IO
bi: 发送到块设备的块数,单位:块/秒
bo: 从块设备接收到的块数,单位:块/秒
System
in: 每秒的中断数,包括时钟中断
cs: 每秒的环境(上下文)切换次数
CPU
按 CPU 的总使用百分比来显示
us: CPU 使用时间
sy: CPU 系统使用时间
id: 闲置时间
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)