Discuz! Board
标题: 爬虫异常处理方法 [打印本页]
作者: 李秉清 时间: 2016-7-21 00:19
标题: 爬虫异常处理方法
1. 爬虫 接口报警[attach]75[/attach]
{
"crawler_flag": false,
"queue_process": {
"flag": true
},
"wait_stack": {
"flag": true,
"wait_queue": []
},
"engine_process": {
"flag": true
},
"spider_process": {
"flag": false,
"spider": {
"Moretv-HD-crawler-01-151.139": "alive",
"Moretv-HD-crawler-02-151.148": "alive",
"Moretv-HD-crawler-03-138.142": "alive",
"Moretv-HD-crawler-04-138.140": "alive",
"Moretv-BJUD-crawler-01": "alive",
"Moretv-BJUD-crawler-03": "alive",
"Moretv-BJUD-crawler-02": "alive",
"moretv_IDA": "alive",
"Moretv-HD-crawler-05-138.143": "dead"
}
},
"cobweb_process": {
"flag": true
},
"merge_process": {
"flag": true
}
}
crawler_flag为true,接口正常。
crawler_flag为false,接口异常,需要人为干预处理。
wait_stack为false,说明队列有堆积。需要找爬虫开发同事处理。一般都是等待队列自动处理完成
engine_process为false,需要马上通知爬虫开发同事处理。非常严重。
spider_process为false,说明某个spider异常。由于开发新增了自动监控进程的服务,原则上不会再出现某个spider出现dead的情况。
其它不常见问题暂时不说明。
Spider_process因为spider.py的程序由于正则或者其它原因导致内存泄露,最终挂掉。在监控上的报警为二种.
1. 内存少于100M
2. SWAP小于50%
由于开发新增了自动监控进程的服务,原则上挂掉的进程会自动重启,不会再出现某个spider出现dead的情况。
处理方法为
1. 连接到堡垒机,选择crawler
[attach]76[/attach]
2. 选择有问题的spider主机,这个实例中为"Moretv-HD-crawler-05-151.143": "内存少于100M"
[attach]77[/attach]
3. 选择root用户
[attach]78[/attach]
4. 查看spider进程
ps aux|grep python
[attach]79[/attach]
5. Kill掉该 spider进程(释放内存)
cd /home/moretv/spider
kill -9 29926
6. 再次查看进程,观察内存是否已释放。
[attach]80[/attach]
7. 如果是SWAP告警的话还需要释放SWAP
vmstat 1 查看swap内存使用情况
swapoff -a&&swapon -a (需要root账号)
再次vmstat 1 查看SWAP是否清空
PS:以上操作需要ROOT账号权限,请谨慎操作。
PS:以上操作需要ROOT账号权限,请谨慎操作。
PS:以上操作需要ROOT账号权限,请谨慎操作。
欢迎光临 Discuz! Board (http://123.59.83.120:8080/) |
Powered by Discuz! X3.2 |