linux
文章平均质量分 77
保持_沉默
路易十四爱江山
展开
-
一次GC线程占用系统CPU过高处理过程
因为测试人员报告说,最近订单系统总是超时,要重启才能恢复正常,但是第二次复现的时间不固定。然后先是查看下应用状态是否正常,没有问题。然后查看日志,发现有很多交易报超时。仔细查看超时的日志,发现什么类型的交易都有,而且超时的地方也不固定,更像是系统或者架构层面的错误。赶紧看下(ps ux)linux系统的状态。发现订单应用的CPU已经100%,但是内存还有剩余,内存占用 大概30...原创 2018-12-12 20:18:52 · 4748 阅读 · 0 评论 -
应用线程数过高及生产问题的排查:ThreadPoolExecutor
因为最近支付系统总是报错无法创建新的线程导致交易失败,领导很重视。查看linux对用户的限制(ulimit -a),发现文件句柄和线程数的大小限制在1024,而通过查看应用实时线程发现数量超过了1100+(pstree -p `ps -e | grep pay | awk '{print $1}'` | wc -l)。通过jstack检查dump文件发现有大量由线程池创建的线程,并且状态为WAIT...原创 2019-01-15 00:09:18 · 1502 阅读 · 0 评论