虛擬機場景
本文列出了虛擬機常見的故障演練場景。
JvmCodeCache滿
制造JVM CodeCache區(qū)域滿的故障,CodeCache區(qū)域滿會直接導致JIT編譯關閉,從而引起業(yè)務系統(tǒng)性能下降。一般用于驗證業(yè)務系統(tǒng)在高并發(fā)且系統(tǒng)性能下降的情況下,是否能夠通過限流、快速擴容等手段保證業(yè)務連續(xù)性。
參數(shù)說明如下:
參數(shù)名稱 | 是否必選 | 默認值 | 參數(shù)說明 |
進程ID | 必選其一 | 無 | Java進程的ID。 |
進程關鍵字 | 無 | 用于識別唯一的關鍵字,可以通過該關鍵字查找到唯一進程,使用 | |
開啟Debug | 否 | 否 | 選擇是否開啟Debug日志,用于排查演練執(zhí)行過程中遇到的問題。開啟Debug后,請到~/logs/chaosblade/chaosblade.log路徑下查看日志。 |
Java產(chǎn)生OutOfMemoryError異常
填充JVM指定的內(nèi)存區(qū)域,導致指定內(nèi)存區(qū)域空間不足,引發(fā)OOM異常。
參數(shù)說明如下:
參數(shù)名稱 | 是否必選 | 默認值 | 參數(shù)說明 |
內(nèi)存區(qū)域 | 是 | 無 | 指定填充的JVM內(nèi)存區(qū)域,可選項:新生代、老生代(MetaSpace)、堆外內(nèi)存。 |
暴力模式 | 否 | False | 是否開啟暴力模式,如果是暴力模式,在OOM發(fā)生之后也不會釋放之前創(chuàng)建的內(nèi)存,可能會引起應用進程無響應。 |
時間間隔 | 否 | 無 | 兩次OOM異常間的時間間隔,只有在非暴力模式才生效,可以減緩GC的頻率,避免因頻繁的FullGC導致進程無響應。 |
數(shù)據(jù)塊大小(MB) | 否 | 無 | 每次填充內(nèi)存的數(shù)據(jù)塊大小,僅當內(nèi)存區(qū)域選擇新生代或堆外內(nèi)存時生效。 |
進程ID | 必選其一 | 無 | Java進程的ID。 |
進程關鍵字 | 無 | 用于識別唯一的關鍵字,可以通過該關鍵字查找到唯一進程,使用 | |
開啟Debug | 否 | 否 | 選擇是否開啟Debug日志,用于排查演練執(zhí)行過程中遇到的問題。開啟Debug后,請到 ~/logs/chaosblade/chaosblade.log路徑下查看日志。 |
Java應用內(nèi)部制造CPU滿載
Java應用進程內(nèi)制造CPU滿載,表現(xiàn)為Java應用本身原因導致CPU高負載。
參數(shù)名稱 | 是否必選 | 默認值 | 參數(shù)說明 |
指定CPU滿載的個數(shù) | 否 | 無 | 指定CPU滿載的個數(shù),默認系統(tǒng)當前全部核數(shù)。 |
進程ID | 必選其一 | 無 | Java進程的ID。 |
進程關鍵字 | 無 | 用于識別唯一的關鍵字,可以通過該關鍵字查找到唯一進程,使用 | |
開啟Debug | 否 | 否 | 選擇是否開啟Debug日志,用于排查演練執(zhí)行過程中遇到的問題。開啟Debug后,請到~/logs/chaosblade/chaosblade.log路徑下查看日志。 |