【发布时间】:2017-06-12 22:04:00
【问题描述】:
我在运行 Ubuntu 的 t2.micro EC2 实例上安装了一个网络 scraper。 scraper 是用 Python 编写的,它使用 Selenium 和 PhantomJS。它获取的数据被发送到一个单独的 RDS 实例。 我设置了一个 cronjob 以每 15 分钟运行一次脚本,它确实如此。 这是我的问题:
脚本运行良好(红色框),突然之间,它被过度使用,我的实例变得非常慢。
我的脚本从运行几秒钟到 10 分钟不运行。
在这些突增期间,实例使用 CPU 积分。但是,我的 CPU 积分一直在上升。我发现重启实例可以解决问题。
知道发生了什么吗?
【问题讨论】:
-
我在 IEdriver 实例 (stackoverflow.com/questions/41679405/…) 上遇到了同样的问题,目前还没有找到解决方案,只有重启实例有帮助。 ://
-
如果 CPU 超过正常值 10 分钟,我已设置自动重启以解决问题,但我宁愿不必重启它...
-
显然,在运行脚本后关闭 PhantomJS 并不会关闭 phantomjs 进程。更糟糕的是,每次脚本开始运行时它都会创建一个新的。
-
只需在脚本末尾添加
killall phantomjs -
您是否观察到使用
top或htop发生了什么?请注意,只要您的 CPU 积分余额不接近零,问题就出在您正在运行的代码上,而不是实例的行为... t2 不会减速,直到您的积分几乎耗尽。
标签: python selenium amazon-web-services amazon-ec2 phantomjs