STW,即Stop-The-World的縮寫,指的是系統(tǒng)在執(zhí)行特定操作時需暫停(停止)所有應用程序線程。Tuq28資訊網(wǎng)——每日最新資訊28at.com
有提到過(如圖)。Tuq28資訊網(wǎng)——每日最新資訊28at.com
圖片Tuq28資訊網(wǎng)——每日最新資訊28at.com
提到過(如圖):Tuq28資訊網(wǎng)——每日最新資訊28at.com
圖片Tuq28資訊網(wǎng)——每日最新資訊28at.com
步入正題
所謂的STW,在Java中,當需要執(zhí)行垃圾回收時,垃圾回收器會停止應用程序的所有線程,以便安全地識別和回收不再使用的對象。這個過程被稱為“Stop The World”。Tuq28資訊網(wǎng)——每日最新資訊28at.com
STW事件會暫時中斷應用程序的運行。對于需要高響應性或實時性能的應用程序,這可能引發(fā)性能問題,因為它會導致響應延遲。Tuq28資訊網(wǎng)——每日最新資訊28at.com
在STW期間,應用程序的響應時間(RT)和吞吐量(QPS)都會受到影響,這可能導致性能表現(xiàn)的不確定性,特別是在負載較高的情況下。Tuq28資訊網(wǎng)——每日最新資訊28at.com
為了減少STW帶來的影響,需要對垃圾收集器的配置進行優(yōu)化,例如選擇不同類型的垃圾收集器、調(diào)整堆大小或其他垃圾收集器參數(shù)。Tuq28資訊網(wǎng)——每日最新資訊28at.com
例如,選擇并發(fā)回收器作為垃圾回收器,如CMS、G1等,因為并發(fā)回收器主要關注的是減少STW的時長。它允許垃圾收集線程在應用程序線程運行的同時執(zhí)行部分垃圾收集工作,從而減少了STW的時間。在并發(fā)回收期間,只會在特定的收集階段發(fā)生短暫的STW。Tuq28資訊網(wǎng)——每日最新資訊28at.com
關于Java虛擬機的垃圾收集器可參考文章Tuq28資訊網(wǎng)——每日最新資訊28at.com
帶你走近Java虛擬機到底有哪些經(jīng)典的垃圾收集器Tuq28資訊網(wǎng)——每日最新資訊28at.com
其它STW場景
除了垃圾收集(GC)中的STW事件之外,STW這個術語在其他上下文中也可能被引用。Tuq28資訊網(wǎng)——每日最新資訊28at.com
舉例來說:Tuq28資訊網(wǎng)——每日最新資訊28at.com
- 操作系統(tǒng)和硬件升級/維護:在執(zhí)行操作系統(tǒng)升級或硬件維護時,可能需要完全暫停系統(tǒng)功能,以確保安全地進行更新和維護。這種情況下的STW意味著所有在系統(tǒng)上運行的應用和服務都會被臨時停止。
- 數(shù)據(jù)庫維護:在某些數(shù)據(jù)庫操作中,如重組索引、執(zhí)行特定類型的備份或升級數(shù)據(jù)庫系統(tǒng)時,可能需要暫時停止數(shù)據(jù)庫服務,這也可以被視為一種STW事件,因為它會中斷所有數(shù)據(jù)庫操作。
- 消息隊列的重新平衡:在分布式消息隊列系統(tǒng)(例如Kafka)中,重新平衡是指在消費者群體中添加或刪除消費者時重新分配分區(qū)的過程。在這個過程中,消息消費可能會暫時停止,直到重新平衡完成,確保所有分區(qū)正確地重新分配給新的消費者群體。
本文鏈接:http://www.tebozhan.com/showinfo-26-83635-0.html面試官追問的STW,到底什么是STW?有什么影響?
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: 你了解Java中的猴子補丁技術嗎?
下一篇: 爭論不休的一個話題:金額到底是用Long還是BigDecimal?
標簽: