控制台打印日志过多造成程序中断【没有任何异常的程序宕机原因】

开发人员在进行项目开发过程中,经常在控制台打印一些日志,最常见的也最不可避免的就是打印sql语句。如果只是极少进行数据库操作,可能对系统压力不对太大。但是如果在批量操作数据库,对数据进行增加或者更新操作以及其他任何操作的时候,如果执行1万条sql没有对程序造成任何影响,那么如果是10万条数据呢? 大数据时代数据可能不仅仅是10万条。又或者你的数据库字段超过了100个呢?那么像这种情况下,在控制台打印日志就是一种十分错误的做法。因为控制台不断打印的日志会造成系统内存爆满,而垃圾回收机制来不及回收这些由控制台打印日志造成的垃圾,必然会导致程序的宕机。

如果一段程序的控制台打印日志突然宕机,而程序也没有任何反应,且捕获不到任何的异常信息,那么您可以通过这个办法试一下,是否是控制台日志的原因造成程序卡死:
在这里插入图片描述
将limit console output 前面的勾去掉,之后再运行程序,查看程序是否抱有IOconsole updater java heap space的错误,如果出现此错误,那么恭喜你,找到程序突然宕机的原因了,是由于你控制台日志太多造成垃圾回收不及时导致的。

那么,该如何解决这个问题呢?

1、首先,你需要增加服务器运行的内存:
set -Xms512m -Xmx4096m -XX:PermSize=512M -XX:MaxNewSize=256m -XX:MaxPermSize=1024m
具体的每一个参数什么意思可以找度娘了解一下,但是修改服务器占用的最大内存的时候,要看一下自己的电脑是多大内存,千万别爆了~

2、第二步: 关闭控制台日志,将日志文件存储到对应的日志文件中。或者将sql语句的日志等级进行相应的改变,总之就是不要再控制台打印sql语句~

通过以上步骤,程序就可以运行流畅,不再有宕机的情况了。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值