webdriver.close() quit() 批量kill进程 内存耗尽的解决办法
问题现象:
shell窗口卡,换IP的登录窗,不开;
猜测:
内存耗尽
spider_url,py
driver = webdriver.PhantomJS(
executable_path='/usr/local/phantomjs/bin/phantomjs')
driver.get(url)
time.sleep(1)
page_source = driver.page_source
driver.close() 源码
def close(self):
"""
Closes the current window. :Usage:
driver.close()
"""
self.execute(Command.CLOSE) def quit(self):
"""
Quits the driver and closes every associated window. :Usage:
driver.quit()
"""
try:
self.execute(Command.QUIT)
finally:
self.stop_client()
修改爬虫代码:
driver.quit() 查看系统信息:
[root@hadoop1 ~]# free -g
total used free shared buff/cache available
Mem: 15 14 0 0 0 0
Swap: 7 7 0
top - 18:40:01 up 13 days, 3:10, 2 users, load average: 97.35, 90.95, 101.05
Tasks: 899 total, 5 running, 893 sleeping, 0 stopped, 1 zombie
%Cpu(s): 7.0 us, 38.9 sy, 0.0 ni, 4.5 id, 49.5 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem : 16203484 total, 136668 free, 15537644 used, 529172 buff/cache
KiB Swap: 8191996 total, 0 free, 8191996 used. 73852 avail Mem
KiB Mem : 16203484 total, 136796 free, 15537716 used, 528972 buff/cache
17409 root 20 0 3024380 22576 0 D 36.0 0.1 33:14.32 phantomjs
7721 root 20 0 3396256 79112 0 S 13.0 0.5 0:53.85 python
8204 root 20 0 1261576 6192 364 D 9.0 0.0 0:04.38 phantomjs
32149 root 20 0 2867240 29636 0 D 8.0 0.2 12:16.97 phantomjs
23292 root 20 0 2858092 28044 68 D 7.9 0.2 24:55.04 phantomjs
7990 root 20 0 2762952 11924 0 D 7.5 0.1 0:08.42 phantomjs
32081 root 20 0 3366480 50012 0 D 7.3 0.3 31:55.27 phantomjs
11454 root 20 0 3302384 46948 0 D 6.2 0.3 27:31.83 phantomjs
8203 root 20 0 1261540 5996 260 D 5.4 0.0 0:02.52 phantomjs
15485 root 20 0 3627320 43680 428 D 5.1 0.3 28:59.12 phantomjs
8227 root 20 0 198472 688 284 D 5.0 0.0 0:02.28 phantomjs
8205 root 20 0 1261576 6016 236 D 4.6 0.0 0:02.05 phantomjs
31746 root 20 0 3287492 32200 0 D 4.5 0.2 10:20.00 phantomjs
7639 root 20 0 3153564 36620 0 D 4.1 0.2 0:22.70 phantomjs
30213 root 20 0 3249684 52196 0 D 3.8 0.3 34:24.91 phantomjs
31987 root 20 0 3102684 44156 0 D 3.8 0.3 15:50.06 phantomjs
9247 root 20 0 3088060 34940 0 D 3.6 0.2 45:02.70 phantomjs
26481 root 20 0 3031160 35268 112 D 3.5 0.2 58:33.10 phantomjs
19825 root 20 0 3127540 42592 0 D 3.4 0.3 34:37.43 phantomjs
19196 root 20 0 3121804 41776 188 D 3.2 0.3 25:07.63 phantomjs
21684 root 20 0 3157068 24540 0 D 3.2 0.2 35:58.68 phantomjs
20445 root 20 0 3101172 44876 212 D 2.9 0.3 39:05.05 phantomjs
24628 root 20 0 3049636 26620 0 D 2.9 0.2 32:25.60 phantomjs
7279 root 20 0 3026656 23160 60 D 2.7 0.1 36:16.57 phantomjs
31636 root 20 0 3431992 50664 0 S 2.7 0.3 28:03.55 phantomjs
19543 root 20 0 3013740 33872 0 D 2.6 0.2 23:07.82 phantomjs
7101 root 20 0 3123908 28004 0 D 2.6 0.2 39:26.25 phantomjs
19542 root 20 0 3093216 35980 0 D 2.6 0.2 28:10.17 phantomjs
19965 root 20 0 3163648 38592 0 D 2.5 0.2 27:56.73 phantomjs
32235 root 20 0 3156676 35300 0 D 2.5 0.2 10:18.39 phantomjs
23132 root 20 0 3088976 33640 0 D 2.3 0.2 25:47.01 phantomjs
92 root 20 0 0 0 0 D 2.1 0.0 192:21.37 kswapd0
定时任务执行多线程脚本后,phantomjs进程没有释放资源,退出
解决办法:
批量杀死该进程,
实验
vim tmpxx.py
import time
for i in range(1,100,1):
time.sleep(1)
print(i)
ps -aux | grep tmpxx.py | grep -v grep
ps -aux | grep tmpxx.py | grep -v grep |cut -c 9-15
ps -aux | grep tmpxx.py | grep -v grep |cut -c 9-15 | xargs kill -9
检验
实验成功
ps -aux | grep phantomjs | grep -v grep |cut -c 9-15 | xargs kill -9
检验
top - 18:54:19 up 13 days, 3:25, 3 users, load average: 10.27, 48.42, 78.57
Tasks: 197 total, 1 running, 196 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 16203484 total, 15612264 free, 199696 used, 391524 buff/cache
KiB Swap: 8191996 total, 8170176 free, 21820 used. 15558816 avail Mem
load average: 10.27, 48.42, 78.57 说明实验成功
[root@hadoop1 ~]# free -g
total used free shared buff/cache available
Mem: 15 0 14 0 0 14
Swap: 7 0 7
ok
Last login: Mon Dec 11 13:41:52 2017 from 192.168.2.96
[root@hadoop1 ~]# ssh root@192.168.2.212 'll -as'
Connection closing...Socket close.
Connection closed by foreign host.
Disconnected from remote host(192.168.2.51) at 13:50:15.
ssh 在往另外一台机器发送命令
Last login: Mon Dec 11 13:52:36 2017 from 192.168.2.96
[root@hadoop1 ~]# ssh root@192.168.2.212 'ps -aux | grep phantomjs | grep -v grep |cut -c 9-15 | xargs kill -9'
webdriver.close() quit() 批量kill进程 内存耗尽的解决办法的更多相关文章
- C# 数组、HashSet等内存耗尽的解决办法
在C#中,如果数据量太大,就会出现 'System.OutOfMemoryException' 异常. 解决办法来自于Stack Overflow和MSDN https://docs.micro ...
- Android性能优化之利用LeakCanary检测内存泄漏及解决办法
前言: 最近公司C轮融资成功了,移动团队准备扩大一下,需要招聘Android开发工程师,陆陆续续面试了几位Android应聘者,面试过程中聊到性能优化中如何避免内存泄漏问题时,很少有人全面的回答上来. ...
- MySQL提示:The server quit without updating PID file问题的解决办法(转载)
MySQL提示:The server quit without updating PID file问题的解决办法 今天网站web页面提交内容到数据库,发现出错了,一直提交不了,数找了下原因,发现数据写 ...
- Android开发常见的Activity中内存泄漏及解决办法
上一篇文章楼主提到由Context引发的内存泄漏,在这一篇文章里,我们来谈谈Android开发中常见的Activity内存泄漏及解决办法.本文将会以“为什么”“怎么解决”的方式来介绍这几种内存泄漏. ...
- android通过BitmapFactory.decodeFile获取图片bitmap报内存溢出的解决办法
android通过BitmapFactory.decodeFile获取图片bitmap报内存溢出的解决办法 原方法: public static Bitmap getSmallBitmap(Strin ...
- 重启mysql提示:The server quit without updating PID file问题的解决办法
今天因为需要开启事件调度器event_scheduler,所以修改了mysql的配置文件/etc/my.cnf 就因为配置多了个分号,导致一直启动失败,如下图所示: 然后去网上搜了帖子(MySQL提示 ...
- golang 通过exec Command启动的进程如何关闭的解决办法 以及隐藏黑色窗口
golang 通过exec Command启动的进程如何关闭的解决办法 在用exec包调用的其他进程后如何关闭结束,可以使用context包的机制进行管理,context包的使用详见:https:// ...
- .NET中常见的内存泄漏和解决办法
在.NET中,虽然CLR的GC垃圾回收器帮我们自动回收托管堆对象,释放内存,最大程度避免了"内存泄漏"(应用程序所占用的内存没有得到及时释放),但.NET应用程序"内存泄 ...
- Linux批量kill进程
使用awk批量杀进程的命令: ps -ef | grep firefox | grep -v grep | awk '{print "kill -9 "$2}'|sh 说明: #列 ...
随机推荐
- iOS学习笔记19-地图(一)定位CoreLocation
一.定位介绍 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式.要实现 ...
- hadoop2.7.0分布式系统搭建(ubuntu14.04)
因为使用需要,在自己小本上建了四个虚拟机,打算搭建一个1+3的hadoop分布式系统. 环境:hadoop2.7.0+ubuntu14.04 (64位) 首先分别为搭建好的虚拟机的各主机重命名 方法: ...
- vue 组件高级用法实例详解
一.递归组件 组件在它的模板内可以递归地调用自己, 只要给组件设置name 的选项就可以了. 示例如下: <div id="app19"> <my-compone ...
- 【2018.11.23】2018WCTest(7)
向已退役学长致敬! 题目&他的题解 T1 一道睿智题目,正常思路就是时空复杂度均为 $O(n\times 32768)$ 的背包.这个做法不被卡时间却被卡空间,其实就是想让你离线处理询问,然后 ...
- 【2018.11.22】CTSC2018(模拟赛!)
太蠢了……$noip$ 后第一次模拟赛竟然是这样的……完全就是打击自信 / 降智…… 1. 假面 一道神仙概率 $dp$!第一次写…… 拿到题就发现血量 $m_i$ 的上限只有 $100$! 然后 $ ...
- 洛谷 [P2148] E&G
SG函数的应用 首先每一组都是独立的,所以我们可以求出每一组的SG值异或出来. 那么怎么求每一组的SG值呢,网上的题解都是打表找规律,但其实这个规律是可以证明的 先看规律: x为奇数,y为奇数:SG= ...
- (47)C#运行时序列化
序列化是将对象或对象图转化成字节流的过程.反序列化是将字节流转换回对象图的过程.
- HDU 5676 ztr loves lucky numbers【DFS】
题目链接; http://acm.hdu.edu.cn/showproblem.php?pid=5676 题意: 由4和7组成的且4和7出现次数相同的数称为幸运数字,给定n,求不大于n的最大幸运数字. ...
- T1405 奶牛的旅行 codevs
http://codevs.cn/problem/1405/ 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 农民John的农场 ...
- raspi扩展板
1.Ciseco Slice 2.Adafruit(Plate) 3.Fen的Gertboard:(详见F盘下的使用手册) 12个缓冲输入输出端口 LED状态指示灯 3个按钮开关 6个开路集成电极 1 ...