原文:線程池運用不當的一次線上事故

在高並發 異步化等場景,線程池的運用可以說無處不在。線程池從本質上來講,即通過空間換取時間,因為線程的創建和銷毀都是要消耗資源和時間的,對於大量使用線程的場景,使用池化管理可以延遲線程的銷毀,大大提高單個線程的復用能力,進一步提升整體性能。 今天遇到了一個比較典型的線上問題,剛好和線程池有關,另外涉及到死鎖 jstack命令的使用 JDK不同線程池的適合場景等知識點,同時整個調查思路可以借鑒,特此 ...

2020-06-12 14:52 4 830 推薦指數:

查看詳情

一次排查Java線程數異常--線程使用不當造成線程數升高

Java對多線程有良好的支持,並且提供了方便使用的線程框架(Executor)。但如果使用不當,可能會帶來一些不安全的隱患。本文將分享一次由於隨意創建線程造成線程數持續增加的問題。 一、背景 首先看一個圖,下圖是線上服務器Java線程數的監控圖。 圖中每個下降的點都是在該時間點有上線 ...

Thu Jan 31 02:31:00 CST 2019 0 3180
線程使用不當也會死鎖?

線程是個好東西,最大線程數限制了服務無限制使用寶貴的操作系統線程,最大隊列保護內存溢出,完美! 但是線程使用不當也會導致死鎖。這種死鎖,要是不知道原理,死都不知道咋死的,並且非常難定位。大家知道,死鎖一般都是由於資源征用引起的。而線程引起的死鎖,可能連個synchronize關鍵字都沒有 ...

Sun Aug 12 07:23:00 CST 2018 1 2174
一次線上事故的處理流程和總結

1、事故問題: 某個舊版本業務功能中運行了一個失敗重試的job,因一位離職的同事編碼時未考慮周全出現死循環,導致線上從24日下午2點一直到27日晚9點持續3天一直在刷日志。異常日志內容如下: 2、事故過程分析: ①、根據異常日志 ...

Tue Jul 31 18:00:00 CST 2018 0 1408
ThreadLocal引起的一次線上事故

> 線上用戶存儲數據后查看提示無權限 前言 不知道什么時候年輕的我曾一度認為Java沒啥難度,沒有我實現不了的需求,沒有我解不了的bug 直到我遇到至今難忘的一個bug 。 線上用戶存儲數據后查看提示無權限 初次定位 明明自己添加的數據,為什么提示 ...

Fri May 14 16:48:00 CST 2021 3 766
一次線上事故的JVM內存學習

今天線上的hadoop集群崩潰了,現象是namenode一直在GC,長時間無法正常服務。最后運維大神各種倒騰內存,GC穩定后,服務正常。雖說全程在打醬油,但是也跟着學習不少的東西。 第一個問題:為什么會頻繁GC 有過JVM經驗的開發者都應該知道,GC是在內存不夠時,JVM自動進行 ...

Fri May 25 04:24:00 CST 2018 0 1054
一次dirty_ratio引起的線上事故

故障時間軸 發生時間:2020-09-14 06:40 發現時間:2020-09-14 06:41 響應時間:2020-09-14 07:42 故障表現 磁盤> ...

Mon Sep 14 21:12:00 CST 2020 0 431
一次一個枚舉引發線上事故風暴

背景 2018年8月15號下午6點左右一個我們服務的調用方通知我們他們在調用服務接口時出現了大量的異常和通知,並且錯誤返回值都是“顯示未設置結束日期” 問題定位 收到調用方的消息后,我立即展 ...

Fri Aug 17 00:39:00 CST 2018 6 806
自定義線程影響的線上事故

  作為一個牛逼的程序員,相信大家肯定是接觸過多線程的概念的。並且可能會在實際的工作中因為一些業務場景需要使用自定義線程來執行批量的任務或對線程進行管理。同樣,我們項目中也存在一個兩個場景需要使用線程。而這兩個場景分別為: 1、持續監聽某個外部接口的不間斷的返回信息,其實就是長鏈接的阻塞接口 ...

Wed Feb 19 06:17:00 CST 2020 4 585
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM