Attempt to protect stack guard pages failed.Attempt to deallocate stack guard pages failed.

- 2021-09-19 14:27:55:SingleMonitor handlerTime:20210918
19-09-2021 14:27:55 CST signal_monitor INFO - Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
19-09-2021 14:27:56 CST signal_monitor INFO - Sun Sep 19 14:27:56 CST 2021 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
19-09-2021 14:28:29 CST signal_monitor INFO - Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00007fd24719a000, 12288, 0) failed; error='Cannot allocate memory' (errno=12)
19-09-2021 14:28:29 CST signal_monitor INFO - #
19-09-2021 14:28:29 CST signal_monitor INFO - # There is insufficient memory for the Java Runtime Environment to continue.
19-09-2021 14:28:29 CST signal_monitor INFO - # Native memory allocation (mmap) failed to map 12288 bytes for committing reserved memory.
19-09-2021 14:28:29 CST signal_monitor INFO - # An error report file with more information is saved as:
19-09-2021 14:28:29 CST signal_monitor INFO - # /opt/azkaban/azkaban-exec-server-0.1.0-SNAPSHOT/bin/executions/5991/gbhc/hs_err_pid132046.log
19-09-2021 14:28:46 CST signal_monitor INFO - Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00007fde77b20000, 65536, 1) failed; error='Cannot allocate memory' (errno=12)
19-09-2021 14:28:46 CST signal_monitor INFO - [thread 140591398864640 also had an error]
19-09-2021 14:30:29 CST signal_monitor INFO - # [ timer expired, abort... ]
19-09-2021 14:40:49 CST signal_monitor INFO - /usr/local/saic_jar/saic_rvm_coll/bin/signal_monitor.sh: line 13: 132046 Aborted                 (core dumped) /usr/java/jdk1.8.0_161/bin/java -Xmx10g -Xms10g -Xmn5g -cp /usr/local/saic_jar/saic_rvm_coll/lib/saic-rvm3.jar incar.SingleMonitor1211 $date 10
19-09-2021 14:40:49 CST signal_monitor INFO - Process completed unsuccessfully in 6664 seconds.
19-09-2021 14:40:49 CST signal_monitor ERROR - Job run failed!
java.lang.RuntimeException: azkaban.jobExecutor.utils.process.ProcessFailureException
	at azkaban.jobExecutor.ProcessJob.run(ProcessJob.java:304)
	at azkaban.execapp.JobRunner.runJob(JobRunner.java:787)
	at azkaban.execapp.JobRunner.doRun(JobRunner.java:602)
	at azkaban.execapp.JobRunner.run(JobRunner.java:563)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: azkaban.jobExecutor.utils.process.ProcessFailureException
	at azkaban.jobExecutor.utils.process.AzkabanProcess.run(AzkabanProcess.java:130)
	at azkaban.jobExecutor.ProcessJob.run(ProcessJob.java:296)
	... 8 more
19-09-2021 14:40:49 CST signal_monitor ERROR - azkaban.jobExecutor.utils.process.ProcessFailureException cause: azkaban.jobExecutor.utils.process.ProcessFailureException
19-09-2021 14:40:49 CST signal_monitor INFO - Finishing job signal_monitor at 1632033649511 with status FAILED

有个定时任务每天都会跑两个小时,之前一直执行的没有问题,19号时报了一次红打开看了,发现任务应该是执行完了,错略一看应该是内存溢出,因为是定时任务,觉得偶尔一次的内存溢出应该没有关系。

可今天检查任务时发现昨天跑的任务也报红了,打开看了是一模一样的报错。检查了代码其实都已经执行完毕了。上面日志有打印mysql的警告,其实最后一行代码已经执行完了,mysql里也插入成功数据了。

 如图 14:27:55 执行完毕

dmap.clear();
            dmap1.clear();
            beformap.clear();
            beformap1.clear();
            maxMileageMap.clear();
        } catch (Exception e) {
            e.printStackTrace();
            taskJob.setStatus(3);
            taskJob.setMessage(e.getMessage());
        } finally {
//            executorService.shutdownNow();
            executorService1.shutdown();
        }
        taskJob.setTaskEndTime((new SimpleDateFormat("yyyyMMddHHmmss")).format(new Date()));
        ScriptUtil.updateStatus(taskJob);

    }

于是猜测很可能不是java的问题,可能是linux的问题。 

于是查到一篇文章

浅谈系统线程数限制 | 小毛的胡思乱想

正好今天的任务也正在运行我去试了下

[appuser@schedule-02 bin]$ sudo cat /proc/328928/maps | wc -l
32193
[appuser@schedule-02 bin]$ cat /proc/sys/vm/max_map_count
65530
[appuser@schedule-02 bin]$ sudo cat /proc/328928/maps | wc -l
30206

 65530/2=32765

而根据pid打印了两次值分别是 32193和30206,说明这个值是一直在波动的,距离上限32765也不是很远了,超过限制被linux强制关闭很有可能

优化:

sudo vim /etc/sysctl.conf

#加入
vm.max_map_count=262144

#生效
sysctl -p /etc/sysctl.conf

#检查
[appuser@schedule-02 bin]$ sudo sysctl -a|grep vm.max_map_count
sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.bond0.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.enp61s0f0.stable_secret"
sysctl: reading key "net.ipv6.conf.enp61s0f1.stable_secret"
sysctl: reading key "net.ipv6.conf.ens1f0.stable_secret"
sysctl: reading key "net.ipv6.conf.ens1f1.stable_secret"
sysctl: reading key "net.ipv6.conf.ens1f2.stable_secret"
sysctl: reading key "net.ipv6.conf.ens1f3.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"
vm.max_map_count = 262144

over

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
连接尝试失败。原因:连接超时。 当我们尝试与另一个系统建立连接时,如果连接超过了预定的时间限制,就会出现连接超时的错误。连接超时可能会因为多种原因而发生。 首先,可能是由于网络问题导致的连接超时。在建立连接的过程中,数据包可能在网络中丢失或延迟到达目标系统,导致连接无法建立。网络拥堵、信号弱或不稳定等因素都可能导致连接超时。 其次,目标系统可能在延迟响应请求,导致连接超时。如果目标系统处理大量请求或负载过重,就可能导致连接超时的发生。此外,目标系统可能会忽略或拒绝我们的连接请求,导致连接超时。 最后,防火墙或安全设置也可能导致连接超时。有时候,防火墙可能会将我们的连接请求视为潜在的威胁而阻止我们与目标系统建立连接。此外,目标系统的安全设置也可能限制对连接的响应,从而导致连接超时。 为了解决连接超时的问题,我们可以尝试以下方法: 1. 检查网络连接是否正常。确保网络信号稳定,避免网络拥堵或不稳定的环境。 2. 重新启动网络设备,如路由器或调制解调器,以解决网络问题。 3. 调整连接超时设置。有时候,我们可以将连接超时时间增加一些,以给目标系统足够的响应时间。 4. 检查目标系统是否正常运行,并确保目标系统没有限制我们的连接请求。 5. 检查防火墙或安全设置。确保防火墙没有阻止我们的连接请求,并适时调整安全设置。 总之,连接超时错误可能由网络问题、目标系统延迟响应或安全设置导致。通过检查网络连接、目标系统运行状态和安全设置,我们可以尝试解决连接超时的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值