<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Thread Stuck on Joonlog</title><link>https://joonlog.github.io/tags/thread-stuck/</link><description>Recent content in Thread Stuck on Joonlog</description><generator>Hugo -- gohugo.io</generator><language>ko-kr</language><lastBuildDate>Thu, 24 Jul 2025 09:00:00 +0900</lastBuildDate><atom:link href="https://joonlog.github.io/tags/thread-stuck/index.xml" rel="self" type="application/rss+xml"/><item><title>Tomcat Thread Stuck으로 인한 사이트 접근 불가 TroubleShooting</title><link>https://joonlog.github.io/p/tomcat-thread-stuck%EC%9C%BC%EB%A1%9C-%EC%9D%B8%ED%95%9C-%EC%82%AC%EC%9D%B4%ED%8A%B8-%EC%A0%91%EA%B7%BC-%EB%B6%88%EA%B0%80-troubleshooting/</link><pubDate>Thu, 24 Jul 2025 09:00:00 +0900</pubDate><guid>https://joonlog.github.io/p/tomcat-thread-stuck%EC%9C%BC%EB%A1%9C-%EC%9D%B8%ED%95%9C-%EC%82%AC%EC%9D%B4%ED%8A%B8-%EC%A0%91%EA%B7%BC-%EB%B6%88%EA%B0%80-troubleshooting/</guid><description>&lt;h3 id="문제-개요"&gt;문제 개요
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;최근 특정 새벽 시간에 웹 서비스 접근 불가 현상이 반복 발생&lt;/li&gt;
&lt;li&gt;Tomcat 로그 확인 시 Thread Stuck으로 요청 처리가 지연되었으며, 일정 시간 지난 후 자동 해소&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;WARNING argo.server.valves.LenaStuckThreadDetectionValve.notifyStuckThreadDetected ...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;at com.tmax.tibero.jdbc.common.TbStream.readMsgDs&lt;span class="o"&gt;(&lt;/span&gt;Unknown Source&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="원인-추적"&gt;원인 추적
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;왜 Thread Stuck이 발생했는가?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Tibero DB를 사용 중인 DB 서버의 문제 발생 시간대에 sys.log에서 대량의 임시 테이블이 생성된 것을 확인&lt;/li&gt;
&lt;li&gt;매일 01시에 &lt;code&gt;tbexport full=Y&lt;/code&gt; 명령어를 수행하는 cronjob 설정된 상태&lt;/li&gt;
&lt;li&gt;Full 백업 시 전체 용량이 몇백 GB가 넘는데, 백업 간 DB 리소스 고갈로 인해 Tomcat의 스레드가 응답 받지 못해 Thread Stuck이 발생한 것으로 확인&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="조치"&gt;조치
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;백업 방식을 아래와 같이 논리적(tbexport) → 물리적 백업으로 전환
&lt;ul&gt;
&lt;li&gt;대용량의 DB 백업 시에는 물리적 백업이 모든 면에서 유리
&lt;ul&gt;
&lt;li&gt;무중단 Hot Backup 가능
&lt;ul&gt;
&lt;li&gt;단, Hot Backup은 &lt;code&gt;archive log&lt;/code&gt; 모드에서만 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;내부 자원 사용 최소화&lt;/li&gt;
&lt;li&gt;복구 및 운영 안정성 향상&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="물리적-백업-방안"&gt;물리적 백업 방안
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;tbrmgr&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;사용해보니 매일 풀백업을 사용하는 현재의 환경에선 맞지 않고, 백업한 파일을 압축하지 않고 그대로 보관하면서 증분 백업을 통해 보관하는 환경에서 맞는 방안인 것으로 확인
&lt;ul&gt;
&lt;li&gt;현재는 매일 풀백업 + 풀백업한 파일 압축하여 보관하는 환경에서 사용 가능한 방법 필요&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start="2"&gt;
&lt;li&gt;begin/end 백업&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;백업 모드 시작 - 데이터파일 복사 - 백업 모드 종료의 구조로 백업하는 방식&lt;/li&gt;
&lt;li&gt;이 방식으로 해결&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>