Hadoop 类僵尸进程的定期处理
2011-12-15 23:17
323 查看
问题定义:
Hadoop由于对系统的进程管理的缺陷,会有些Hadoop mapred Child 进程一直存留在系统中,占有大量的CPU或者内存,影响整个系统的性能。因此需要定期清理Hadoop的进程。通过观察我们发现实际上并非僵尸进程,因此我们把持续运行超过特定天数(此处为14天)的进程杀掉。脚本如下:
ps -e -o pid -o etime -o args |grep org.apache.hadoop.mapred.Child |grep -v grep |awk '{ if (int(substr($2,1,index($2,"-")-1))>14) {print $1;} }' | xargs -t kill -9
注:etime ELAPSED elapsed time since the process was started, in the form [[dd-]hh:]mm:ss.
在解决此问题时的一些其它思路:
# 比如用ps找到cpu占用超过某个数目,同时累积CPU时间超过某个数目来确定要kill掉的进程。
for i in `ps aux |grep org.apache.hadoop.mapred.Child |grep Aug |awk '{printf "%d\n", $10}'` do if [ `ps aux |grep $i |grep Aug |awk '{printf "%d\n", $10}'` -gt "200000" ] then if [ `ps auxf |grep $i |grep Aug |awk '{printf "%d\n", $3}'` -gt "100" ] then echo $i kill -9 $i fi fi done
把脚本放在crontab里,定时执行即可。
相关文章推荐
- Linux 僵尸进程的处理
- LINUX僵尸进程处理
- 说说Linux中的信号处理和僵尸进程的避免
- Linux下僵尸进程的处理
- 僵尸进程处理
- 回射客户端服务器中僵尸进程的处理( the solution of zombie process in the echo client && server )
- linux下的僵尸进程处理SIGCHLD信号
- 如何处理僵尸进程?
- 僵尸进程处理方法
- Linux下僵尸进程的处理
- linux下的僵尸进程处理办法
- Linux的僵尸进程处理1
- linux僵尸进程的处理
- linux下的僵尸进程处理SIGCHLD信号
- linux系统处理僵尸进程的方法
- linux下的僵尸进程处理SIGCHLD信号
- 处理僵尸进程
- Linux的僵尸进程处理2
- 说说Linux中的信号处理和僵尸进程的避免
- 有关僵尸进程找中的理解,务必在父进程中用wait()函数来处理僵尸进程!