问题现象:

  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进程 内存耗尽的解决办法的更多相关文章

  1. C# 数组、HashSet等内存耗尽的解决办法

    在C#中,如果数据量太大,就会出现 'System.OutOfMemoryException' 异常. 解决办法来自于Stack Overflow和MSDN    https://docs.micro ...

  2. Android性能优化之利用LeakCanary检测内存泄漏及解决办法

    前言: 最近公司C轮融资成功了,移动团队准备扩大一下,需要招聘Android开发工程师,陆陆续续面试了几位Android应聘者,面试过程中聊到性能优化中如何避免内存泄漏问题时,很少有人全面的回答上来. ...

  3. MySQL提示:The server quit without updating PID file问题的解决办法(转载)

    MySQL提示:The server quit without updating PID file问题的解决办法 今天网站web页面提交内容到数据库,发现出错了,一直提交不了,数找了下原因,发现数据写 ...

  4. Android开发常见的Activity中内存泄漏及解决办法

    上一篇文章楼主提到由Context引发的内存泄漏,在这一篇文章里,我们来谈谈Android开发中常见的Activity内存泄漏及解决办法.本文将会以“为什么”“怎么解决”的方式来介绍这几种内存泄漏. ...

  5. android通过BitmapFactory.decodeFile获取图片bitmap报内存溢出的解决办法

    android通过BitmapFactory.decodeFile获取图片bitmap报内存溢出的解决办法 原方法: public static Bitmap getSmallBitmap(Strin ...

  6. 重启mysql提示:The server quit without updating PID file问题的解决办法

    今天因为需要开启事件调度器event_scheduler,所以修改了mysql的配置文件/etc/my.cnf 就因为配置多了个分号,导致一直启动失败,如下图所示: 然后去网上搜了帖子(MySQL提示 ...

  7. golang 通过exec Command启动的进程如何关闭的解决办法 以及隐藏黑色窗口

    golang 通过exec Command启动的进程如何关闭的解决办法 在用exec包调用的其他进程后如何关闭结束,可以使用context包的机制进行管理,context包的使用详见:https:// ...

  8. .NET中常见的内存泄漏和解决办法

    在.NET中,虽然CLR的GC垃圾回收器帮我们自动回收托管堆对象,释放内存,最大程度避免了"内存泄漏"(应用程序所占用的内存没有得到及时释放),但.NET应用程序"内存泄 ...

  9. Linux批量kill进程

    使用awk批量杀进程的命令: ps -ef | grep firefox | grep -v grep | awk '{print "kill -9 "$2}'|sh 说明: #列 ...

随机推荐

  1. 关于安卓浏览器无法识别es6语法

    这几天写代码,在highcharts的代码里用了一些es语法 在PC端及iphone上都能正常运行,在安卓上无法显示 一直不知道什么原因.后来一点点查看才发现是下面的两句es6代码 1: .map(i ...

  2. iOS-APP图标和启动页的尺寸

    图标

  3. [luoguP4035] [JSOI2008]球形空间产生器(高斯消元)

    传送门 设球心的坐标为未知量 用最后一个点来表示球面到球心的距离,那么它和前n个式子相等 移项乱搞 最后高斯消元 #include <cmath> #include <cstdio& ...

  4. [BZOJ1419] Red is good(期望DP)

    传送门 逆推 只不过顺序还是顺着的,思想是逆着的 f[i][j]表示还剩下i张红牌,j张黑牌的期望值 那么边界是 f[i][0]=i,因为只剩i张红牌 f[0][j]=0,只剩黑牌,显然直接停止最优 ...

  5. mysql续

    接上篇博客,写完以后看了看,还是觉的写的太简单,就算是自己复习都不够,所以再补充一些 1.创建多表关联 需求:图书管理系统,创建几张表,包含书籍,出版社,作者,作者详细信息等内容 分析: (1)图书只 ...

  6. Yii2之创建定时任务

    yii开发的项目需要使用定时任务其实也可以使用一些单独的脚本文件来完成,但若是定时任务代码中需要使用到项目中的一些类,特别是需要使用应用对象Yii::$app的时候,单独的脚本想要完成就比较麻烦了.这 ...

  7. Django实现的博客系统中使用富文本编辑器ckeditor

    操作系统为OS X 10.9.2,Django为1.6.5. 1.下载和安装 1.1 安装 ckeditor 下载地址 https://github.com/shaunsephton/django-c ...

  8. T2038 香甜的黄油 codevs

    http://codevs.cn/problem/2038/ 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond   题目描述 Description 农夫John ...

  9. discuz搬家

    1.需要重命名forumdata下面的cache和templates文件夹 2.如果数据库账户名和密码有改动过,需要修改config.inc.php 3.保证uc_server的链接正确!

  10. android官方Api 理解Activity生命周期的回调机制(适合有基础的人看)

    原文地址:http://www.android-doc.com/training/basics/activity-lifecycle/starting.html#lifecycle-states 此处 ...