繁体   English   中英

线程“pool-1-thread-115” org.openqa.selenium.WebDriverException 中的异常:未知错误:Chrome 无法启动:使用 Selenium 异常退出

[英]Exception in thread “pool-1-thread-115” org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start: exited abnormally with Selenium

我们使用无头 Chrome 运行 Selenium (JAVA)。 这一切都需要大约 300 MB RAM。 VPS 有 1 GB RAM 但 selenium “粉碎”:

Exception in thread "pool-1-thread-115" org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start: exited abnormally.

似乎没有足够的可用 RAM:
$ free -m结果:

      total        used        free      shared  buff/cache   available
  Mem: 1024         940           0         821          83           0

这是为什么? 完整的进程列表如下:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.2 195028  2748 ?        Ss   Jun20  16:36 /usr/lib/systemd/systemd --system --deseriali
root         2  0.0  0.0      0     0 ?        S    Jun20   0:00 [kthreadd/568406]
root         3  0.0  0.0      0     0 ?        S    Jun20   0:06 [khelper/5684067]
root         4  0.0  0.0      0     0 ?        S    Jun20   0:00 [rpciod/56840679]
root         5  0.0  0.0      0     0 ?        S    Jun20   0:00 [rpciod/56840679]
root         6  0.0  0.0      0     0 ?        S    Jun20   0:00 [rpciod/56840679]
root         7  0.0  0.0      0     0 ?        S    Jun20   0:00 [rpciod/56840679]
root         8  0.0  0.0      0     0 ?        S    Jun20   0:00 [rpciod/56840679]
root         9  0.0  0.0      0     0 ?        S    Jun20   0:00 [rpciod/56840679]
root        10  0.0  0.0      0     0 ?        S    Jun20   0:00 [rpciod/56840679]
root        11  0.0  0.0      0     0 ?        S    Jun20   0:00 [rpciod/56840679]
root        12  0.0  0.0      0     0 ?        S    Jun20   0:00 [rpciod/56840679]
root        13  0.0  0.0      0     0 ?        S    Jun20   0:00 [rpciod/56840679]
root        14  0.0  0.0      0     0 ?        S    Jun20   0:00 [rpciod/56840679]
root        15  0.0  0.0      0     0 ?        S    Jun20   0:00 [rpciod/56840679]
root        16  0.0  0.0      0     0 ?        S    Jun20   0:00 [rpciod/56840679]
root        17  0.0  0.0      0     0 ?        S    Jun20   0:00 [rpciod/56840679]
root        18  0.0  0.0      0     0 ?        S    Jun20   0:00 [rpciod/56840679]
root        19  0.0  0.0      0     0 ?        S    Jun20   0:00 [rpciod/56840679]
root        20  0.0  0.0      0     0 ?        S    Jun20   0:00 [rpciod/56840679]
root        21  0.0  0.0      0     0 ?        S    Jun20   0:00 [rpciod/56840679]
root        22  0.0  0.0      0     0 ?        S    Jun20   0:00 [rpciod/56840679]
root        23  0.0  0.0      0     0 ?        S    Jun20   0:00 [rpciod/56840679]
root        24  0.0  0.0      0     0 ?        S    Jun20   0:00 [rpciod/56840679]
root        25  0.0  0.0      0     0 ?        S    Jun20   0:00 [rpciod/56840679]
root        26  0.0  0.0      0     0 ?        S    Jun20   0:00 [rpciod/56840679]
root        27  0.0  0.0      0     0 ?        S    Jun20   0:00 [rpciod/56840679]
root        28  0.0  0.0      0     0 ?        S    Jun20   0:00 [nfsiod/56840679]
root       110  0.0  0.4  38520  4256 ?        Ss   Jun20  13:38 /usr/lib/systemd/systemd-journald
dbus       165  0.0  0.1  58228  1332 ?        Ss   Jun20  14:56 /usr/bin/dbus-daemon --system --address=syste
root       167  0.0  0.0  74408   732 ?        Ss   Jun20   0:00 /usr/sbin/saslauthd -m /run/saslauthd -a pam
root       170  0.0  0.1  26704  1488 ?        Ss   Jun20   7:24 /usr/lib/systemd/systemd-logind
root       173  0.0  0.0  74408   732 ?        S    Jun20   0:00 /usr/sbin/saslauthd -m /run/saslauthd -a pam
root       190  0.0  0.1  22728  1104 ?        Ss   Jun20   1:00 /usr/sbin/crond -n
root       191  0.0  0.0   6468   132 tty2     Ss+  Jun20   0:00 /sbin/agetty --noclear tty2 linux
root       192  0.0  0.0  25860   376 ?        Ss   Jun20   0:00 /usr/sbin/atd -f
root       193  0.0  0.0   6468   132 tty1     Ss+  Jun20   0:00 /sbin/agetty --noclear --keep-baud console 11
mysql      345  0.1  5.9 1299292 62404 ?       Sl   16:38   0:01 /usr/sbin/mysqld --daemonize --pid-file=/var/
root       480  0.0  0.0  27120   256 ?        Ss   Jun20   0:00 /usr/sbin/xinetd -stayalive -pidfile /var/run
root       482  0.1  2.2 440080 23080 ?        Ssl  Jun20  87:46 /usr/bin/python -s /usr/bin/fail2ban-server -
nobody     541  0.0  0.2 198844  2636 ?        SLs  Jun20   1:02 proftpd: (accepting connections)
exim       700  0.0  0.1 119948  1828 ?        Ss   Jul03  18:01 /usr/sbin/exim -bd -q1h
root      1145  0.0  1.0 522640 11328 ?        Ss   Jun20   1:55 /usr/sbin/httpd -DFOREGROUND
root      1298  0.0  0.1 112876  1368 ?        Ss   Jun20   2:37 /usr/sbin/sshd -D
root      1306  0.0  0.4  49972  4244 ?        Ss   Jun20   0:00 nginx: master process /usr/sbin/nginx -c /etc
apache    5622  0.0  1.4 538492 15008 ?        S    Jul10   0:38 php-fpm: pool apache
apache    5623  0.0  0.5 341420  5756 ?        S    Jul10   0:00 php-fpm: pool www
apache    5624  0.0  0.5 341420  5756 ?        S    Jul10   0:00 php-fpm: pool www
apache    5625  0.0  0.5 341420  5756 ?        S    Jul10   0:00 php-fpm: pool www
apache    5626  0.0  0.5 341420  5760 ?        S    Jul10   0:00 php-fpm: pool www
apache    5627  0.0  0.5 341420  5760 ?        S    Jul10   0:00 php-fpm: pool www
apache    5651  0.0  0.9  52808  9456 ?        S    Jul10  18:11 nginx: worker process
exim      6036  0.0  0.3 137268  3276 ?        S    16:57   0:00 /usr/sbin/exim -bd -q1h
root      6037  0.0  0.1  51708  1732 pts/0    R+   16:57   0:00 ps axu
apache    6575  0.0  1.6 538352 17420 ?        S    Jul10   0:37 php-fpm: pool apache
apache    6578  0.0  1.4 538424 15336 ?        S    Jul10   0:37 php-fpm: pool apache
igor      9281  0.0  1.5 432016 16392 ?        S    Jul26   0:06 /opt/php74/bin/php-cgi php
root      9399  0.0  0.0  16172   692 ?        Ss   Jun25   0:50 /usr/sbin/dovecot
dovecot   9415  0.0  0.0   9700   500 ?        S    Jun25   2:25 dovecot/anvil
root      9506  0.0  0.0   9832   652 ?        S    Jun25   0:00 dovecot/log
root      9508  0.0  0.1  13040  1516 ?        S    Jun25   0:02 dovecot/config
apache   12135  0.0  0.7 279260  7916 ?        S    Jul26   0:05 /usr/sbin/httpd -DFOREGROUND
igor     12252  0.0  1.5 432016 16392 ?        S    Jul26   0:12 /opt/php74/bin/php-cgi php
igor     12257  0.0  1.5 432016 16388 ?        S    Jul26   0:11 /opt/php74/bin/php-cgi php
root     13747  0.0  0.1  72608  1776 ?        S    09:33   0:00 /usr/sbin/CROND -n
root     13750  0.0  0.0   9516   716 ?        Ss   09:33   0:00 /bin/sh -c    /opt/php71/bin/php -c /usr/loca
root     13752  0.0  0.9 310668 10060 ?        S    09:33   0:15 /opt/php71/bin/php -c /usr/local/mgr5/addon/r
apache   14429  0.0  1.0 522640 10828 ?        S    09:50   0:00 /usr/sbin/httpd -DFOREGROUND
apache   14430  0.0  1.0 522640 10800 ?        S    09:50   0:00 /usr/sbin/httpd -DFOREGROUND
igor     14434  0.0  4.8 521224 51156 ?        S    09:50   0:22 /opt/php74/bin/php-cgi php
apache   14453  0.0  1.0 522640 10812 ?        S    09:51   0:00 /usr/sbin/httpd -DFOREGROUND
apache   14462  0.0  1.0 522640 10812 ?        S    09:51   0:00 /usr/sbin/httpd -DFOREGROUND
apache   14469  0.0  1.0 522640 10812 ?        S    09:51   0:00 /usr/sbin/httpd -DFOREGROUND
igor     14473  0.0  5.0 521236 52760 ?        S    09:51   0:13 /opt/php74/bin/php-cgi php
igor     14475  0.0  4.6 521240 48688 ?        S    09:51   0:17 /opt/php74/bin/php-cgi php
root     15155  0.0  0.5 341428  6060 ?        Ss   Jul01   1:51 php-fpm: master process (/etc/php-fpm.conf)
dovecot  19219  0.0  0.1  34592  1532 ?        S    Jul28   0:09 dovecot/auth
root     19403  0.0  0.3 135560  3260 ?        Ss   Jul23   6:23 /usr/local/mgr5/sbin/ihttpd
apache   19595  0.0  1.6 538444 17576 ?        S    Jul14   0:18 php-fpm: pool apache
root     20388  0.0  1.8 635764 19132 ?        Sl   Jul23   3:44 bin/core core
apache   23214  0.0  1.5 536332 16500 ?        S    Jul13   0:22 php-fpm: pool apache
root     27932  0.0  0.3 155288  3192 ?        Ss   Jul29   0:00 sshd: root@pts/0
root     27943  0.0  0.1  11780  1568 pts/0    Ss   Jul29   0:00 -bash
root     30284  0.0  3.7 1392544 39328 ?       Sl   03:37   0:30 bin/core ispmgr
root     30540  0.0  0.3 153152  3204 ?        Ss   16:31   0:00 sshd: root@pts/1
root     30573  0.0  0.1  11884  1620 pts/1    Ss+  16:31   0:00 -bash
named    31996  0.0  5.4 252516 57548 ?        Ssl  Jul29   0:00 /usr/sbin/named -u named -c /etc/named.conf
root     32492  0.0  0.0  43100   428 ?        Ss   Jul03   0:00 /usr/lib/systemd/systemd-udevd
[root@134-0-117-214 ~]# ps -eo pid,cmd,%mem,%cpu --sort=-%mem | head
  PID CMD                         %MEM %CPU
  345 /usr/sbin/mysqld --daemoniz  5.9  0.1
31996 /usr/sbin/named -u named -c  5.4  0.0
14473 /opt/php74/bin/php-cgi php   5.0  0.0
14434 /opt/php74/bin/php-cgi php   4.8  0.0
14475 /opt/php74/bin/php-cgi php   4.6  0.0
30284 bin/core ispmgr              3.7  0.0
  482 /usr/bin/python -s /usr/bin  2.2  0.1
20388 bin/core core                1.8  0.0
19595 php-fpm: pool apache         1.6  0.0

ThreadPoolExecutor Class

根据ThreadPoolExecutor Class 的文档,一个ExecutorService使用可能的多个池线程之一执行每个提交的任务,通常使用Executors工厂方法配置。 线程池解决了两个不同的问题:由于减少了每个任务的调用开销,它们通常在执行大量异步任务时提供改进的性能,并且它们提供了一种限制和管理资源的方法,包括执行一组线程时消耗的线程。任务。 每个 ThreadPoolExecutor 还维护一些基本的统计信息,例如完成任务的数量。 为了在广泛的上下文中使用,此 class 提供了许多可调整的参数和可扩展性挂钩。

当在方法execute(Runnable)中提交了一个新任务,并且运行的线程少于 corePoolSize 时,即使其他工作线程处于空闲状态,也会创建一个新线程来处理该请求。 如果运行的线程数多于 corePoolSize 但少于 maximumPoolSize,则仅当队列已满时才会创建新线程。 通过将 corePoolSize 和 maximumPoolSize 设置为相同,您可以创建一个固定大小的线程池。 通过将 maximumPoolSize 设置为基本上无界的值,例如 Integer.MAX_VALUE,您可以允许池容纳任意数量的并发任务。 最典型的是,核心和最大池大小仅在构造时设置,但它们也可以使用setCorePoolSize(int)setMaximumPoolSize(int)动态更改。


这个用例

您的代码试验将有助于构建更规范的答案。 但是,如果创建线程但无法处理来自该线程的未捕获异常的程序,松散结构的ThreadPool可能会遭受此错误。 可能您已经实现FixedThreadPool但没有正确实现它的异常处理。 结果,线程可能会死,这取决于您将任务提交给ExeuctorService的方式。


解决方案

如果您使用的是FixedThreadPool ,则必须保持固定数量的线程以避免线程死亡。 否则,如果您使用execute()而不是submit() ,则线程可能会在未处理的异常情况下死亡。

您可以在Chrome crashs after few hours while multiprocessing using Selenium through Python中找到相关的详细讨论


tl; 博士

一些相关的讨论:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM