精华内容
下载资源
问答
  • 日前服务器一个应用总是莫名挂掉,通过排查发现是年代内存无法回收引起,那么要定位到到底是那一部分数据导致的无法回收,就需要把堆内存dump出来,然后用工具分析。但奇怪的是dump的时候一直报错 Unable to open...

    背景

    日前服务器一个应用总是莫名挂掉,通过排查发现是老年代内存无法回收引起,那么要定位到到底是那一部分数据导致的无法回收,就需要把堆内存dump出来,然后用工具分析。但奇怪的是dump的时候一直报错

    Unable to open socket file: target process not responding or HotSpot VM not lo

    排查完整过程

    解决方案

    网上找了很多方案,都没效果,最终通过一些文章的启示,自己找到了解决方案。

    问题引起的原因

    由于Linux一切皆文件的特性,也就是说一个Java进程实际上会对应到一个PID文件,dump命令依赖于进程的PID文件,报错这个是由于这个PID文件可能已经被系统给删除了。

    linux系统有个删除管理机制:系统每天会用tmpwatch命令检查并删除 /tmp 下超过240小时未访问过的文件和目录。

    问题的解决方案

    Linux有个文件(/usr/lib/tmpfiles.d/tmp.conf)中记录着一些目录,这些目录中不会被自动删除,我们需要在这个文件中配置我们的JAVA进程的PID目录。

    第一步:先找到PID所在目录
    先用JPS命令得到进程号
    在这里插入图片描述
    32383为我的JAVA应用的进程号,然后我们去/tmp目录下找这个进程号
    在这里插入图片描述
    很明显这里没有32383,但这里有个hsperfdata_root目录不知道是什么东西,进去看看
    在这里插入图片描述
    这里有31383,那么也就是说/tmp/hsperfdata_root目录即是要排除在外的目录。

    第二步:把找到的目录添加到文件内容中

    vi /usr/lib/tmpfiles.d/tmp.conf
    

    添加如下内容
    在这里插入图片描述
    /*代表目录下的所有文件,添加之后应该是立即生效的,无需重启。如此,即可避免文件被系统删掉。

    其他事项

    以上解决方案是我在我的系统中亲测成功的方案,由于系统版本不同,我的解决办法可能不适用于你,你需要尝试。
    我的Linux内核版本为Linux version 3.10.0-1062.1.1.el7.x86_64
    系统版本为CentOS Linux release 7.5.1804
    我不确定其他系统版本的设置方式是否一致,有的系统可能没有/usr/lib/tmpfiles.d/tmp.conf这个文件,那么可以看看是否存在/etc/cron.daily/tmpwatch这个文件,存在的话可以在这个文件中添加排除项,添加方式与本文一致。

    如果依然无法解决,可以看看我参考的两篇文章,寻找解决方案。

    参考

    https://www.cnblogs.com/vsop/p/10943753.html
    https://blog.51cto.com/zhangshaoxiong/1310166

    展开全文
  • 执行到MATLAB函数时软件会报错:Precision Design.exe 中的 0x758f812f 处有未经处理的异常: Microsoft C++ 异常: 内存位置 0x0e79f60c 处的 mwException。 并且在MATLAB函数处中断 我用的方法是dll文件混合编程的,...
  • 我现在用C#写一个UDP的程序,而UDP只能收发byte数组,而下位机要求的格式是结构体,因此我用如下代码进行转换,发的时候没有问题,收到的时候把数组转换成结构体就会报错说“访问受保护的内存”,一直解决不了。...
  • 1、刚开始我以为是batch_size设置问题导致内存溢出,但是仔细观察发现空闲内存大于需要使用的内存, 解决办法 卸载torch 当前torch 版本为1.6.0 torchvision版本为0.7.0 回退到 torch 1.2.0 torchvision 0.4.0 问题...

    1、刚开始我以为是batch_size设置问题导致内存溢出,但是仔细观察发现空闲内存大于需要使用的内存,
    解决办法
    卸载torch 当前torch 版本为1.6.0 torchvision版本为0.7.0
    回退到 torch 1.2.0 torchvision 0.4.0
    问题解决

    展开全文
  • function TfrmXXX.delNodeRecord(iNode:TcxTreelistNode):TcxTreeListNode; var childNode:TcxTreelistNode; begin childNode := iNode.GetLastChild;...可是怎么都是报错啊。...出现内存访问的错误。大概类似这种.
  • 一.Command line is too long报错 在wordspace.xml中找到下面代码. <component name="PropertiesComponent"> <property name="WebServerToolWindowFactoryState" value="false" /> <property name=...

    一.Error running ‘JsaasApplication’: Command line is too long. Shorten command line for JsaasApplication or also for Spring Boot default configuration.
    在这里插入图片描述

    在wordspace.xml中找到下面代码.
    
    <component name="PropertiesComponent">
        <property name="WebServerToolWindowFactoryState" value="false" />
        <property name="aspect.path.notification.shown" value="true" />
        <property name="last_opened_file_path" value="$PROJECT_DIR$/.." />
        <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
        <property name="nodejs_npm_path_reset_for_default_project" value="true" />
        <property name="project.structure.last.edited" value="Project" />
        <property name="project.structure.proportion" value="0.0" />
        <property name="project.structure.side.proportion" value="0.0" />
        <property name="settings.editor.selected.configurable" value="project.propCompiler" />
      </component>
    

    增加<property name="dynamic.classpath" value="true" />即可.

    二.java.lang.OutOfMemoryError:GC overhead limit exceeded
    在这里插入图片描述
    报错原因:
    内存溢出错误
    举个例子,一个厕所里有五个坑位,有十个人要上厕所,十个人使劲往五个坑位里挤,报错.所以要调整坑位数量,增大堆内存.
    与内存泄漏区别:
    五个坑位中,有两个人拉肚子,一直拉,坑位一直被占用,该部分堆空间一直在被占用即内存泄漏.

    解决办法:
    调整内存大小从默认700改到2048.
    在这里插入图片描述

    展开全文
  • 原因 在cli环境下,PHP程序需要长时间运行,客户端与... 不稳定的原因有以下可能: MySQL-Server会在一定时间内自动切断连接 ...其他情况,在MySQL服务器中执行kill process杀掉某个连接,MySQL服务器重启 ...这时P...

    原因

    在cli环境下,PHP程序需要长时间运行,客户端与MySQL服务器之间的TCP连接是不稳定的。

    不稳定的原因有以下可能:

    • MySQL-Server会在一定时间内自动切断连接
    • PHP程序遇到空闲期时长时间没有MySQL查询,MySQL-Server也会切断连接回收资源
    • 其他情况,在MySQL服务器中执行kill process杀掉某个连接,MySQL服务器重启
    • 网络抖动

    这时PHP程序中的MySQL连接就失效了。如果仍然执行mysql_query,就会报一个MySQL server has gone away的错误。程序处理不到就直接遇到致命错误并退出了。所以PHP程序中需要断线重连。

    解决方案

    mysql_ping

    有很多人提出了mysql_ping的方案,每次mysql_query进行连接检测或者定时连接检测。

    这个方案不是最好的。原因是:mysql_ping需要主动侦测连接,带来了额外的消耗。定时执行mysql_ping不能解决问题,如刚刚执行过mysql_ping检测之后,连接就关闭了;

    捕获错误码,进行断线重连

    它的原理是:mysql_query执行后检测返回值,如果mysql_query返回失败,检测错误码发现为2006/2013(这2个错误表示连接失败),再执行一次mysql_connect执行mysql_connect后,重新执行mysql_query如果mysql_query返回成功,那么连接是有效的,这是一次正常的调用。

    众多知名的PHP常驻进程框架

    • swoole_framework中query方法。
    $res = mysql_query($sql, $this->conn);
    if ($res === false)
    {
        if (mysql_errno($this->conn) == 2006 or mysql_errno($this->conn) == 2013)
        {
            $r = $this->checkConnection();
            if ($r === true)
            {
                continue;
            }
        }
    • workerman中数据库连接类execute方法。
      protected function execute($query, $parameters = "")
        {
            try {
                ...
            } catch (PDOException $e) {
                // 服务端断开时重连一次
                if ($e->errorInfo[1] == 2006 || $e->errorInfo[1] == 2013) {
                    $this->closeConnection();
                    $this->connect();
                ...
            }
        }

    很明显捕获错误码,进行断线重连,是高可靠低消耗的方案,推荐大家在常驻环境里使用。

    thinkphp + phpworkman 使用

    TP+workman也会出现类似的情况,TP从 V5.0.6+版本开始,支持Mysql的断线重连机制,默认关闭,需要的话,在application/databases.php数据库配置文件中添加

    // 开启断线重连
    'break_reconnect' => true,

    这样就OK了。

    转载自:https://my.oschina.net/fage1151/blog/995775

    展开全文
  • ExecutorLostFailure(执行程序4退出由一个正在运行的任务引发 ...这种情况发生的原因是,程序基本上耗尽了所有的可用内存, GC也清理不了。 JVM抛出java.lang.OutOfMemoryError: GC overhead limit exceed...
  • 而我认识这个技巧则是因为现在的项目是公司的项目,代码是在MRC环境下书写的,这就表示我要花费一定的精力来关注内存管理相关的操作,比如导航控制器的内存管理(一直很迷惑),定时器的内存管理,还有等等的自动内存管理...
  • C语言错误代码及错误信息错误释义error 1: Out of memory 内存溢出error 2: Identifier expected 缺标识符error 3: Unknown identifier 未定义的标识符error 4: Duplicate identifier 重复定义的标识符error 5: ...
  • hive报错集锦

    2018-11-01 23:05:10
    hive导入数据报错 报错原因: load data local顺序写反了 改顺序后执行成功: hive (badou)> load data local inpath '/home/dongdong/hive/orders.csv' overwrite into table orders; Loading data to ...
  • Mybatis 传入List类型参数,报错:There is no getter for property named '__frch_item_0' inselect a.*,b.UNIT_NAME linkUnitName from T_SYSE_MAINT...js点击事件报错 not a function好几次用js点击事件,...
  • 最近在使用Xcode6调试之前的项目时(环境Xcode6.01,真机iphone5,iOS8.0,),每次运行工程,第一次总会报错,只能运行第二次,报错截图如下: 试着clean,也按照网上说的检查过项目内是否有Resoures文件夹,依然不能解决...
  • 关于电脑老是显示内存不足这个问题,可能还有些网友对于不太了解,下面就由学习啦小编给你们介绍电脑老是显示内存不足的解决方法吧,希望能帮到大家哦!电脑老是显示内存不足的解决方法一:在软件安装好以后,首先...
  • 最近在使用Xcode6调试之前的项目时(环境Xcode6.01,真机iphone5,iOS8.0,),每次运行工程,第一次总会报错,只能运行第二次,报错截图如下: 试着clean,也按照网上说的检查过项目内是否有Resoures文件夹,依然不...
  • 运行报错 debug不报错?事务导致时序性大问题! 今天在测试自己还未上线的代码时,突然发现了重大问题程序直接运行结果不符合预期,但是 debug的结果却是复合预期的! 问题表现 进行数据变更操作的时,正常运行查出旧...
  • delete[] 报错问题

    千次阅读 2010-05-22 11:03:00
    程序中开始new了一块内存,最后销毁时使用Delete[]老报错, pointNum = GetPointNum(file); pPointList = new POINT3F[pointNum-1]; memset(pPointList, 0, sizeof(POINT3F)*(pointNum-1));后来发现红色部分大小与...
  • 由于旧电脑或笔记本年限已到,在安装XP系统过程中会由于显卡没有驱动而无法正常工作,VGA工作模式会将所有运行压力转移到CPU,此时也就是为什么我们在安装过程中风扇声音突然变大(CPU温度快速升高),旧电脑...
  • MDK常见报错

    2011-12-23 15:40:15
    工作后从单片机转成ARM,刚开始用ADS1.2编译器,用了一段时间,因为我接手的项目的程序正是用ADS编译的,部门也大都在用.在学单片机的时候用的是keil c51编译器,ads和这个编译器在易用性上真是无法比较.后来渐渐知道...
  • 我原来的配置是i5,2g内存,gt540m,用显卡跑是没希望了,后来升级为i7 2760qm和6g内存。 刚开始跑的时候说我的电脑可以用AVX,于是有了这篇文章。 本文适合显卡不高、windows系统的电脑 参考:...
  • 最近在使用Xcode6调试之前的项目时(环境Xcode6.01,真机iphone5,iOS8.0,),每次运行工程,第一次总会报错,只能运行第二次,报错截图如下: 试着clean,也按照网上说的检查过项目内是否有Resoures文件夹,依然不...
  • mysql报错序号对应的错误1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败可以忽略1008:数据库不存在,删除数据库失败可以忽略1009:不能删除数据库文件导致删除数据库失败1010:不能删除...
  • Xmx xms 为年代存活对象 Xmn 为年轻代 PermSize设置非堆内存初始值 MaxPermSize设置最大非堆内存的大小 调整JVM后依旧报错,后排查定时任务发现mysql定时任务备份导致。停掉定时任务后正常。 ...
  • 可能的一个原因:命令行参数使用了常量。 例如: CreateProcess(NULL, "notepad",NULL,NULL,FALSE,CREATE_NO_WINDOW,NULL,NULL,&si,&pi);...pszApplicationName和pszCommandLine分别表示进程...活到,学到
  • 上电开机,等半天出现第一屏,心想2007的服务器了,慢点正常。然后又是三四分钟过去了才往下走,出现如下提示: 1435558cea93d8db01.png (562.07 KB, 下载次数: 7) 2017-3-19 23:52 上传 3112658cea957913a6....
  • docker和k8s常见报错

    2020-07-14 13:59:07
    docker和k8s常见报错 docker容器不断重启: 问题经过: docker容器突然不断自动重启,查看日志发现提示io空间不足...容器是es,es是比较吃内存的,当时问题出现的时候查了相关资料,先把docker服务重启了,当时没有问题
  • MySQL报错STORAGE ENGINE failed

    千次阅读 2017-12-27 21:43:17
    MySQL报错STORAGE ENGINE failed 重启MySQL时启动报错,可能是因为修改my.cnf导致: [ERROR] Plugin 'InnoDB' init function returned error. [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,942
精华内容 14,776
关键字:

内存老报错