1. 爬虫 接口报警 { "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 2. 选择有问题的spider主机,这个实例中为"Moretv-HD-crawler-05-151.143": "内存少于100M" 3. 选择root用户 4. 查看spider进程 ps aux|grep python 5. Kill掉该 spider进程(释放内存) cd /home/moretv/spider kill -9 29926 6. 再次查看进程,观察内存是否已释放。 7. 如果是SWAP告警的话还需要释放SWAP vmstat 1 查看swap内存使用情况 swapoff -a&&swapon -a (需要root账号) 再次vmstat 1 查看SWAP是否清空 PS:以上操作需要ROOT账号权限,请谨慎操作。 PS:以上操作需要ROOT账号权限,请谨慎操作。 PS:以上操作需要ROOT账号权限,请谨慎操作。
|