公告:
  • 欢迎访问火车采集器客户帮助中心
首页 >> 问题百科 >> 采集问题 >> 采集内容 >> 关于采集器运行时CPU占用特别高的原因及解决办法

关于采集器运行时CPU占用特别高的原因及解决办法

【作者:神秘嘉宾】【字号: 】【打印】【收藏

程序中使用大量的复杂计算后,CPU的占用将会升高。如果是采集器占用CPU居高不下,那说明用户写的采集规则有严重的问题,需要修改。以下是常见问题及修改方法

 

1.使用大量的(*)通配符

(*)在程序运行时,会解析成正则表达式中的[\s\S]*?.如果一个标签中(*)非常多,最后的正则表达式会很复杂,程序解析数据时就会占用大量的CPU。

1E0YM0GPCHQSOE5V~DNRFY4

解决办法:

一般的建议是正则匹配内容中,(*)不要超过3个。如果采集的结果不存在循环结果,请不要选”该标签循环匹配“。另外,规则的写法很多时间也很重要,这需要用户有一定的正则基础。

如果很少的(*)解决不了问题怎么办,在数据处理那里,还有”前后截取“和”正则提取“的数据提取方式,请使用多次截取,以逐渐的减少处理的字符串量,来减少程序的运算量。

 

2.大量使用html标签过滤排除选了除“所有标签”外的所有标签

用户的本意是不需要html代码,如果按图上的选法,将产生很多多余的操作,浪费CPU。

J%MVEYV78Y[QJ5H4UT_DZMH

解决办法:这种只需要只选”所有标签“即可

 

3.大量使用了正文提取

采集器的这个功能是比较占用CPU的,如果同时运行多个任务,CPU也会升高的

]D}1HRIDJ[(2@WX988RTGSR

建议:如果要使用正文提取,同时运行任务数要限制

 

4.服务器配置低

有朋友需要将采集器放在VPS上长期运行,但是vps的配置一般都是不高的,所以经常会出现在自己电脑上运行的好好的,在服务器上就不行了。一般自己电脑内存大,多核,则VPS上的一般1G多内存,单核CPU。如果遇到黑心IDC,实际配置会更差。所以在除了使用1,2种优化方法外,可以考虑在更好的机器上运行采集器。