生产问题记录
文章平均质量分 73
.
mrathena
这个作者很懒,什么都没留下…
展开
-
CentOS 7 内存占用过大导致 OOM Killer 杀掉了 Java 进程
上述是一个查看 OOM Killer 给各个进程打分的脚本, 执行该脚本即可找出最有可能被杀掉的进程, 从左到右分别是 score pid cmdline, 分数越高被杀的优先级越高。的机制, 大致就是该机制会监控那些占用内存过大(尤其是瞬间占用内存很快的进程), 然后防止内存耗尽而自动把该进程杀掉。该服务器内存常年处于快被占满的状态, 怀疑是内存原因, 导致服务器主动杀死了该应用的 Java 进程。测试服务器, 有一个 Java 应用, 其进程偶尔会消失掉, 已排除人为杀死的可能。原创 2024-06-27 15:06:47 · 464 阅读 · 0 评论 -
Files.list 未使用 try-with-resources 处理导致触发 Linux 系统 Open Files 上限, 进而导致 Java 程序报 打开的文件过多
重启 Java 进程后, 查看打开的文件数是 350 左右, 可正常上传文件, 但是随着上传文件接口的调用, 打开的文件数在不停上涨, 且对应的文件目录一直处于打开状态, 不能及时释放, 怀疑是流之类的没有及时关闭, 导致资源没有释放。, 同样需要 close, 在加了 try-with-resources 处理后, 重启 Java 进程, 发现打开的文件数不再上涨, 维持在 350 左右, 且打开的文件列表里的目录类型也会很快被释放, 问题解决。发现 Java 进程打开了 4000+ 文件, 通过。原创 2023-11-29 11:13:27 · 417 阅读 · 0 评论 -
Dubbo 线程污染 DruidDataSource getConnection 报中断异常 interrupt
博文目录文章目录问题说明问题解决JDK Thread interrupt 中断问题说明Spring dubbo 服务, 偶尔会报如下异常org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:### Error querying database. Cause: org.springframework.jdbc.Cann原创 2022-05-18 18:39:33 · 1137 阅读 · 0 评论 -
OkHttp 工具包 创建了太多 ConnectionPool 对象导致内存爆炸
博文目录文章目录问题说明问题解决问题说明OkHttp ConnectionPool 对象居然有近2000个, 占用了太多的内存, 导致宕机理论上讲, 既然都使用连接池了, 那连接池对象有1个应该就够了, 为什么这里会有近2000个? 原来是自己封装的 OkHttp 工具包的设计和使用上出了问题该工具包支持传入 OkHttpClient 对象, 也支持创建默认的 OkHttpClient 对象, 由于小伙伴们直接使用了不传参数的方式, 导致每次调用都会新建一个 OkHttpClient 对象.原创 2022-03-04 03:10:38 · 5643 阅读 · 1 评论 -
Dubbo 线程污染 PageHelper SQL 莫名多了一个 Limit 子句
博文目录文章目录问题说明问题解决问题说明业务报错, 内容是SQL语法错误, 类似这样的, select name from table limit 1 LIMIT 10, 在正常的SQL后面多加了一截 LIMIT 10通过分析发现, 是因为PageHelper使用不正确导致了这个问题, 详细原因如下有一段业务代码如下, 在第二行转换Date时因为requestNo字段为null报错, 导致执行了startPage却没有执行SQL, 从而影响了后续SQL的执行, 为什么会影响到后续SQL的执行呢?原创 2021-02-01 17:19:07 · 720 阅读 · 0 评论