日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何抓获JVM crash的幕后黑手

發布時間:2025/3/15 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何抓获JVM crash的幕后黑手 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

? ?最近幾天線上jboss服務器經常莫名地突然停止運行,導致半夜都被報警短信吵醒,元旦幾天也基本就在收報警,然后重啟系統。查看jboss控制臺錯誤日志,發現只有下面一行:

/opt/.../jboss/bin/run.sh: line 181: 26430 段錯誤????????????????? "$JAVA" $JAVA_OPTS -Djava.endorsed.dirs="$JBOSS_ENDORSED_DIRS" -classpath "$JBOSS_CLASSPATH" org.jboss.Main "$@"

??????? 一開始對上面的錯誤日志也沒引起重視,一直在找JVM crash的日志hs_err_<pid>,看了很多網上的帖子,包括JVM官網的介紹,為什么沒有生成hs_err_pid日志,可能的原因就是沒權限或者空間不夠,查看了磁盤空間是足夠的,于是想到可能沒有權限(其實默認目錄就是JVM的工作目錄,應該是有權限的,但當時唯一能懷疑的就是這個),所以就想到JVM參數(-XX:ErrorFile=./hs_err_<pid>.log)可以配置這個日志文件的保存目錄,但這個參數是JDK1.6才引入的,而我們系統杯催的還停留在JDK1.5上,沒辦法想到另外一個參數(-XX:OnError="<cmd args>;<cmd args>"),里面配置的命令是kill -3 <pid>,這樣JVM在crash的時候可以將線程堆棧dump出來,想法是好的,可這個命令一直沒配上去,只能作罷。

?????? 拿不到hs_err_<pid>日志,唯一的線索就是上面僅有的一行錯誤日志,于是google“段錯誤”“segmentation fault”,發現可以通過core dump日志進行分析,解決思路也就自然而然有了。

1.core dump介紹

??????? 程序異常退出(crash)時會自動生成一個core文件,包含了程序運行時的內存,寄存器狀態,堆棧指針,內存管理等信息,也就是把程序當時工作的狀態存儲成一個文件。不僅僅是在出錯的時候會生成core dump文件,在系統卡住或者cpu使用率很高的時候也可以手動觸發生成core dump文件(當然這種情況也可以直接通過jmap和jstack dump出內存和線程堆棧,但JDK1.6以前,這2個命令經常執行不成功),這樣就可以很好的分析了。

2.生成core dump文件

?????? core dump文件生成開關其實是通過對生成的文件大小進行控制達到的,默認大小是0,也就是說默認是不生成core dump文件的,可以通過命令ulimit -c進行查看。將此參數修改成unlimited就可以生成core dump文件了,但值得注意的一點是,每個應用進程都會讀取自己的一套系統參數,可以查看進程對應的內存文件/proc/<pid>/limits中的信息來判斷修改后的參數值是否對此應用進程生效了,limits文件中的信息如下:

Limit???????????????????? Soft Limit?????????? Hard Limit?????????? Units?????
Max cpu time????????????? unlimited??????????? unlimited??????????? seconds???
Max file size???????????? unlimited??????????? unlimited??????????? bytes?????
Max data size???????????? unlimited??????????? unlimited??????????? bytes?????
Max stack size??????????? 10485760???????????? unlimited??????????? bytes?????
Max core file size????????unlimited???????????unlimited??????????? bytes????
Max resident set????????? unlimited??????????? unlimited??????????? bytes?????
Max processes???????????? 20480??????????????? 20480??????????????? processes?
Max open files??????????? 204800?????????????? 204800?????????????? files?????
Max locked memory???????? 32768??????????????? 32768??????????????? bytes?????
Max address space???????? unlimited??????????? unlimited??????????? bytes?????
Max file locks??????????? unlimited??????????? unlimited??????????? locks?????
Max pending signals?????? 1024???????????????? 1024???????????????? signals???
Max msgqueue size???????? 819200?????????????? 819200?????????????? bytes

????? 上述信息中的對應的參數值為unlimited,代表此應用進程的core dump開關是開著的。ulimit -c unlimited這個命令可以在很多地方修改,比如用root在命令行執行,在/etc/profile中增加(/etc/profile文件中已經有defaultulimit -S -c 0 > /dev/null 2>&1,可以直接修改0為unlimited),在用戶的.bash_profile中增加..這些方式執行后的影響范圍還是挺復雜的,到現在也沒弄清楚。當時通過root用戶命令行修改后,在shell里查詢ulimit -c是生效了,以為應用程序也生效了,覺得不用應用都不需要重啟就生效了挺好,等到下一次crash的時候發現還是沒有生成core dump文件,于是到文件/proc/<pid>/limits中檢查此參數值才發現應用程序所讀取的值還是0。后來采用一種比較簡單直接的方式,用root用戶修改/etc/profile文件中的ulimit -c的值,然后重新登錄,重啟應用,再檢查/proc/<pid>/limits中的值,確保參數已經生效,后來應用再crash時core dump文件也如期而至,心里暗爽,終于可以開始分析堆棧了。

?????? core dump文件生成的默認路徑在用戶的工作目錄(啟動腳本目錄),可以通過設置參數/proc/sys/kernel/core_pattern的值改變core dump文件的最終生成路徑及文件名格式。core dump文件成功后,在jboss控制臺錯誤日志中的日志也多了core dumped關鍵字,如下:

/opt/.../jboss/bin/run.sh: line 181:? 9176 段錯誤????????????????? (core dumped) "$JAVA" $JAVA_OPTS -Djava.endorsed.dirs="$JBOSS_ENDORSED_DIRS" -classpath "$JBOSS_CLASSPATH" org.jboss.Main "$@"

3.core dump分析

????? 有了core dump文件,接下來要做的就是通過命令去解析此文件,定位具體問題了,主要有以下三個命令:

(1)先執行gdb?$JAVA_HOME$/bin/java?core-java-16427-1325846515,再執行bt,輸出結果如下:

Loaded symbols for /opt/.../oracle/lib/libnnz10.so
Reading symbols from /opt/.../install/oracle/10.2.0.3/lib/libociei.so...(no debugging symbols found)...done.
Loaded symbols for /opt/.../oracle/lib/libociei.so
Reading symbols from /usr/lib/gconv/GB18030.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/gconv/GB18030.so
#0? 0x4662051e in ttcrd2r ()
?? from /opt/.../oracle/lib/libclntsh.so.10.1
(gdb) bt
#0? 0x4662051e in ttcrd2r () from /opt/.../oracle/lib/libclntsh.so.10.1
#1? 0x46617212 in ttcrbur () from /opt/.../oracle/lib/libclntsh.so.10.1
#2? 0x466176e6 in ttcbur () from /opt/.../oracle/lib/libclntsh.so.10.1
#3? 0x465ba8c7 in ttcdrv () from /opt/.../oracle/lib/libclntsh.so.10.1
#4? 0x464a1bc8 in nioqwa () from /opt/.../oracle/lib/libclntsh.so.10.1
#5? 0x4630d618 in upirtrc () from /opt/.../oracle/lib/libclntsh.so.10.1
#6? 0x462825f6 in kpurcsc () from /opt/.../oracle/lib/libclntsh.so.10.1
#7? 0x46236a0d in kpuexecv8 () from /opt/.../oracle/lib/libclntsh.so.10.1
#8? 0x46238ec4 in kpuexec () from /opt/.../oracle/lib/libclntsh.so.10.1
#9? 0x463121b6 in OCIStmtExecute () from /opt/.../oracle/lib/libclntsh.so.10.1
#10 0x46e725aa in Java_oracle_jdbc_driver_T2CConnection_t2cClearAllApplicationContext ()
?? from /opt/.../install/oracle/10.2.0.3/lib/libocijdbc10.so
#11 0x46e7580f in Java_oracle_jdbc_driver_T2CStatement_t2cDefineExecuteFetch ()
?? from /opt/.../install/oracle/10.2.0.3/lib/libocijdbc10.so
#12 0xb125a8b8 in ?? ()
#13 0x47e01bc8 in ?? ()
#14 0x47d46bb0 in ?? ()
#15 0x47d46c40 in ?? ()
#16 0x4babf774 in ?? ()
#17 0x00000000 in ?? ()

?????? 通過這個debug命令可以查看到應用crash時正在做什么,這里是在獲取jdbc連接,但這個并不代表問題就出在這里,有可能這只是個結果,起因還需要進一步排查。

(2)光有上述信息還不足以定位出問題在哪,可以通過命令jstack?$JAVA_HOME$/bin/java?core-java-16427-1325846515獲取應用crash時的線程堆棧,輸出結果如下:

Thread 11586: (state = BLOCKED)
?- java.lang.Object.wait(long) @bci=0 (Compiled frame; information may be imprecise)
?- java.lang.Object.wait() @bci=2, line=474 (Compiled frame)
?- edu.emory.mathcs.backport.java.util.concurrent.LinkedBlockingDeque.takeFirst() @bci=20, line=389 (Compiled frame)
?- edu.emory.mathcs.backport.java.util.concurrent.LinkedBlockingDeque.take() @bci=1, line=577 (Compiled frame)
?- edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=18, line=674 (Compiled frame)
Error occurred during stack walking:

Thread 10924: (state = IN_NATIVE)
?- oracle.jdbc.driver.T2CStatement.t2cDefineExecuteFetch(oracle.jdbc.driver.OracleStatement, long, int, int, int, int, boolean, boolean, byte[], int, byte, int, int, short[], int, byte[], char[], int, int, short[], byte[], int, int, boolean, boolean, oracle.jdbc.driver.Accessor[], byte[][][], long[], byte[], int, char[], int, short[], int) @bci=0 (Interpreted frame)
?- oracle.jdbc.driver.T2CPreparedStatement.doDefineExecuteFetch() @bci=190, line=878 (Interpreted frame)
?- oracle.jdbc.driver.T2CPreparedStatement.executeForRows(boolean) @bci=34, line=760 (Interpreted frame)
?- oracle.jdbc.driver.OracleStatement.executeMaybeDescribe() @bci=154, line=1062 (Interpreted frame)
?- oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout() @bci=102, line=1126 (Interpreted frame)
?- oracle.jdbc.driver.OraclePreparedStatement.executeInternal() @bci=94, line=3339 (Interpreted frame)
?- oracle.jdbc.driver.OraclePreparedStatement.execute() @bci=17, line=3445 (Interpreted frame)
?- org.jboss.resource.adapter.jdbc.CachedPreparedStatement.execute() @bci=4, line=216 (Interpreted frame)
?- org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.execute() @bci=12, line=209 (Compiled frame)
?- com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(com.ibatis.sqlmap.engine.scope.RequestScope, java.sql.Connection, java.lang.String, java.lang.Object[], int, int, com.ibatis.sqlmap.engine.mapping.statement.RowHandlerCallback) @bci=135, line=180 (Compiled frame)
?- com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteQuery(com.ibatis.sqlmap.engine.scope.RequestScope, java.sql.Connection, java.lang.String, java.lang.Object[], int, int, com.ibatis.sqlmap.engine.mapping.statement.RowHandlerCallback) @bci=15, line=205 (Interpreted frame)
?- com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(com.ibatis.sqlmap.engine.scope.RequestScope, java.sql.Connection, java.lang.Object, java.lang.Object, com.ibatis.sqlmap.client.event.RowHandler, int, int) @bci=169, line=173 (Compiled frame)
?- com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForObject(com.ibatis.sqlmap.engine.scope.RequestScope, com.ibatis.sqlmap.engine.transaction.Transaction, java.lang.Object, java.lang.Object) @bci=28, line=104 (Compiled frame)
?- com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(com.ibatis.sqlmap.engine.scope.SessionScope, java.lang.String, java.lang.Object, java.lang.Object) @bci=58, line=561 (Compiled frame)
?- com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(com.ibatis.sqlmap.engine.scope.SessionScope, java.lang.String, java.lang.Object) @bci=5, line=536 (Interpreted frame)
?- com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(java.lang.String, java.lang.Object) @bci=10, line=93 (Interpreted frame)
?- org.springframework.orm.ibatis.SqlMapClientTemplate$1.doInSqlMapClient(com.ibatis.sqlmap.client.SqlMapExecutor) @bci=9, line=273 (Interpreted frame)
?- org.springframework.orm.ibatis.SqlMapClientTemplate.execute(org.springframework.orm.ibatis.SqlMapClientCallback) @bci=242, line=209 (Compiled frame)
?- org.springframework.orm.ibatis.SqlMapClientTemplate.queryForObject(java.lang.String, java.lang.Object) @bci=11, line=271 (Compiled frame)
......
?- org.springframework.web.servlet.DispatcherServlet.doService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=219, line=809 (Interpreted frame)
?- org.springframework.web.servlet.FrameworkServlet.processRequest(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=10, line=571 (Compiled frame)
?- org.springframework.web.servlet.FrameworkServlet.doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=3, line=511 (Interpreted frame)
?- javax.servlet.http.HttpServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=139, line=717 (Interpreted frame)
?- javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=30, line=810 (Compiled frame)
?- org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=101, line=173 (Interpreted frame)
?- org.apache.catalina.core.ApplicationDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=396, line=672 (Interpreted frame)
?- org.apache.catalina.core.ApplicationDispatcher.processRequest(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=64, line=463 (Interpreted frame)
?- org.apache.catalina.core.ApplicationDispatcher.doForward(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=469, line=398 (Interpreted frame)
?- org.apache.catalina.core.ApplicationDispatcher.forward(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=55, line=301 (Interpreted frame)

?- org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(java.util.Map, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=244, line=240 (Interpreted frame)
?- org.springframework.web.servlet.view.AbstractView.render(java.util.Map, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=157, line=252 (Interpreted frame)
?- org.springframework.web.servlet.DispatcherServlet.render(org.springframework.web.servlet.ModelAndView, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=225, line=1173 (Compiled frame)
?- org.springframework.web.servlet.DispatcherServlet.doService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=219, line=809 (Interpreted frame)
?- org.springframework.web.servlet.FrameworkServlet.processRequest(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=10, line=571 (Compiled frame)
?- org.springframework.web.servlet.FrameworkServlet.doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=3, line=511 (Interpreted frame)
?- javax.servlet.http.HttpServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=139, line=717 (Interpreted frame)
?- javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=30, line=810 (Compiled frame)
?- org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=101, line=173 (Interpreted frame)
?- org.apache.catalina.core.ApplicationDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=396, line=672 (Interpreted frame)
?- org.apache.catalina.core.ApplicationDispatcher.processRequest(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=64, line=463 (Interpreted frame)
?- org.apache.catalina.core.ApplicationDispatcher.doForward(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=469, line=398 (Interpreted frame)
?- org.apache.catalina.core.ApplicationDispatcher.forward(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=55, line=301 (Interpreted frame)

?- org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(java.util.Map, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=244, line=240 (Interpreted frame)
?- org.springframework.web.servlet.view.AbstractView.render(java.util.Map, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=157, line=252 (Interpreted frame)
?- org.springframework.web.servlet.DispatcherServlet.render(org.springframework.web.servlet.ModelAndView, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=225, line=1173 (Compiled frame)
?- org.springframework.web.servlet.DispatcherServlet.doService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=219, line=809 (Interpreted frame)
?- org.springframework.web.servlet.FrameworkServlet.processRequest(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=10, line=571 (Compiled frame)
?- org.springframework.web.servlet.FrameworkServlet.doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=3, line=511 (Interpreted frame)
?- javax.servlet.http.HttpServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=139, line=717 (Interpreted frame)
?- javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=30, line=810 (Compiled frame)
?- org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=101, line=173 (Interpreted frame)
?- org.apache.catalina.core.ApplicationDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=396, line=672 (Interpreted frame)
?- org.apache.catalina.core.ApplicationDispatcher.processRequest(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=64, line=463 (Interpreted frame)
?- org.apache.catalina.core.ApplicationDispatcher.doForward(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=469, line=398 (Interpreted frame)
?- org.apache.catalina.core.ApplicationDispatcher.forward(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=55, line=301 (Interpreted frame)

?- org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(java.util.Map, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=244, line=240 (Interpreted frame)
?- org.springframework.web.servlet.view.AbstractView.render(java.util.Map, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=157, line=252 (Interpreted frame)
?- org.springframework.web.servlet.DispatcherServlet.render(org.springframework.web.servlet.ModelAndView, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=225, line=1173 (Compiled frame)
?- org.springframework.web.servlet.DispatcherServlet.doService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=219, line=809 (Interpreted frame)
?- org.springframework.web.servlet.FrameworkServlet.processRequest(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=10, line=571 (Compiled frame)
?- org.springframework.web.servlet.FrameworkServlet.doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=3, line=511 (Interpreted frame)
?- javax.servlet.http.HttpServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=139, line=717 (Interpreted frame)
?- javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=30, line=810 (Compiled frame)
?- org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=101, line=173 (Interpreted frame)
?- org.apache.catalina.core.ApplicationDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=396, line=672 (Interpreted frame)
?- org.apache.catalina.core.ApplicationDispatcher.processRequest(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=64, line=463 (Interpreted frame)
?- org.apache.catalina.core.ApplicationDispatcher.doForward(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=469, line=398 (Interpreted frame)
? - org.apache.catalina.core.ApplicationDispatcher.forward(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=55, line=301 (Interpreted frame)

......

?????? 通過這個線程堆棧可以看出問題根本原因是一直在forward,代碼出現死循環,總的forward的次數有100多次,直到線程堆棧溢出。這也能說明前面通過gdb命令查看到的獲取jdbc連接僅僅是最近的一次循環正在執行的操作而已,不是真正的起因。這個線程的死循環forward同樣影響到了其他的線程,導致出現Error occurred during stack walking錯誤,線程一直處于BLOCKED狀態,總之線程堆棧對分析問題原因是非常有幫助的。

(3).可以通過命令jmap $JAVA_HOME$/bin/java?core-java-16427-1325846515查看到應用的內存使用,結果如下:

using parallel threads in the new generation.
using thread-local object allocation.
Concurrent Mark-Sweep GC

Heap Configuration:
?? MinHeapFreeRatio = 40
?? MaxHeapFreeRatio = 70
?? MaxHeapSize????? = 1342177280 (1280.0MB)
?? NewSize????????? = 134217728 (128.0MB)
?? MaxNewSize?????? = 134217728 (128.0MB)
?? OldSize????????? = 402653184 (384.0MB)
?? NewRatio???????? = 15
?? SurvivorRatio??? = 1024
?? PermSize???????? = 100663296 (96.0MB)
?? MaxPermSize????? = 100663296 (96.0MB)

Heap Usage:
New Generation (Eden + 1 Survivor Space):
?? capacity = 134152192 (127.9375MB)
?? used???? = 22525464 (21.481956481933594MB)
?? free???? = 111626728 (106.4555435180664MB)
?? 16.790977220856742% used
Eden Space:
?? capacity = 134086656 (127.875MB)
?? used???? = 22525464 (21.481956481933594MB)
?? free???? = 111561192 (106.3930435180664MB)
?? 16.799183954591275% used
From Space:
?? capacity = 65536 (0.0625MB)
?? used???? = 0 (0.0MB)
?? free???? = 65536 (0.0625MB)
?? 0.0% used
To Space:
?? capacity = 65536 (0.0625MB)
?? used???? = 0 (0.0MB)
?? free???? = 65536 (0.0625MB)
?? 0.0% used
concurrent mark-sweep generation:
?? capacity = 1207959552 (1152.0MB)
?? used???? = 764300224 (728.8934936523438MB)
?? free???? = 443659328 (423.10650634765625MB)

Exception in thread "main" java.lang.OutOfMemoryError: requested 4096 bytes for jbyte in /BUILD_AREA/jdk1.5.0_08/hotspot/src/share/vm/prims/jni.cpp. Out of swap space?

????? 最后一行出現了OOM,這是因為dump出來的文件太大,32位機器支持的最大內存也就2G,所以在解析時出現OOM問題,可以放到64位服務器上進行解析。

4.常見的core dump原因

?????? 造成coredump的原因很多,常見的有內存訪問越界,非法指針,堆棧溢出等等,也可以通過發送操作系統信號中斷應用,比如kill -SIGSEGV <pid>,這是一個無效存儲信號。如果想手動生成core dump文件,可以通過gdb -p <pid>生成。

? ? ? ? 其實通過上一篇所講的core dump方法可以比較方便找到jvm crash問題所在,但這種方法適合crash比較頻繁,容易獲取到core dump文件,如果沒有這個文件,那怎么可以查到問題呢。現在回過頭想想通過跟蹤crash時的apache日志,其實也能找到造成crash的請求,下面是某次crash時的日志:

[07/Jan/2012:07:52:40 +0800] "GET /a.xhtml HTTP/1.1" 200 2521 "-" "Mozilla/5.0 "? "a=-; b=-; c=-" -
[07/Jan/2012:07:52:47 +0800] "POST /a.xhtml HTTP/1.1" 503 323 "-" "Opera/9.80 "? "a=-; b=-; c=-" -
[07/Jan/2012:07:52:47 +0800] "POST /b.xhtml HTTP/1.0" 503 323 "-" "-" -? "a=-; b=-; c=-" -
[07/Jan/2012:07:52:51 +0800] "GET /a.xhtml HTTP/1.1" 503 323 "-" "Mozilla/5.0 "? "a=-; b=-; c=-" -
[07/Jan/2012:07:52:52 +0800] "GET /b.xhtml HTTP/1.1" 503 323 "-" "Mozilla/5.0 "? "a=-; b=-; c=-" -
[07/Jan/2012:07:52:48 +0800] "GET /c.do HTTP/1.1" 503 323 "-" "Mozilla/5.0 "? "a=-; b=-; c=-" -
[07/Jan/2012:07:52:52 +0800] "GET /c.do HTTP/1.1" 503 323 "-" "NokiaE63/UCWEB8.1.0.104/28/800"? "a=-; b=-; c=-" -
[07/Jan/2012:07:52:42 +0800] "POST /a.xhtml HTTP/1.1" 503 323 "-" "MAUI_WAP_Browser"? "a=-; b=-; c=-" -
[07/Jan/2012:07:50:26?+0800] "POST /e.xhtml HTTP/1.1" 503 323 "-" "MAUI_WAP_Browser"? "a=-; b=-; c=-" -
[07/Jan/2012:07:52:42 +0800] "GET /c.do HTTP/1.1" 503 323 "-" "MQQBrowser/2.9/Mozilla/5.0 "? "a=-; b=-; c=-" -
[07/Jan/2012:07:52:40 +0800] "GET /c.do HTTP/1.1" 503 323 "-" "MQQBrowser/2.0 "? "a=-; b=-; c=-" -

?????? 這里apache通過接收請求轉發給jboss處理,從上面的日志可以看出07:50:26的這個請求比較特殊,沒按時間先后排列,屬于“插隊”的請求。apache日志中打印出的時間是接收到請求時的時間,但日志是等到請求處理完后才打印,那么這個請求從7:50:26秒進來,處理了2分多鐘,我們應該首先懷疑它;另外一個值得注意的是請求的狀態,除了第一個請求是200狀態外,其他都是503錯誤,這說明“插隊”的請求不是瞬間就讓應用crash的,上面列出的第一個請求7:52:40進來的,還是可以正常執行完返回,同時這個“插隊”的請求在即將導致應用crash時,也會影響其他請求的處理,反映到apache日志上就是503狀態(處于第一個請求和“插隊”的請求之間的請求)。所以在apache日志中找出應用crash時刻的所有請求,然后在其中查找那個“插隊”比較明顯的請求(apache日志總的來說是按時間先后順序排列的,也會有秒級別的差異,但像出現分鐘級別的順序錯亂就需要引起重視),同時結合業務日志進一步確定代碼的執行順序,找出問題。?????

?????? 總之,碰到這種應用意外終止的情況,需要根據日志(內存日志、apache日志、應用日志)找到蛛絲馬跡方能抓到幕后黑手。這貌似一句廢話.

? ??/var/log/syslog.log

轉載于:https://my.oschina.net/CasparLi/blog/336317

總結

以上是生活随笔為你收集整理的如何抓获JVM crash的幕后黑手的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

午夜视频在线观看一区 | 久久综合中文字幕 | 99精品国产在热久久下载 | 国产69精品久久久久99尤 | 久久精品视频2 | 精品国产精品久久 | 五月婷婷在线综合 | 欧美日韩高清国产 | 国内毛片毛片 | 中文字幕第一页在线播放 | 中文字幕一区二区三区精华液 | 午夜精品一区二区三区在线视频 | 婷婷播播网 | 日韩综合视频在线观看 | 久久99热国产 | 最新色视频 | 色综久久| 久久精品免视看 | 西西www4444大胆视频 | av电影在线播放 | 国产精品99久久久久久武松影视 | 日本久久久精品视频 | www.国产高清| 欧美午夜理伦三级在线观看 | 婷婷久久五月 | 91精品国产99久久久久 | 日韩欧美精品在线观看视频 | 91精品国产欧美一区二区成人 | 天天性天天草 | 日韩精品视频免费在线观看 | 日韩毛片在线播放 | 激情五月婷婷综合 | 国产成人黄色av | 婷婷丁香国产 | 日韩久久影院 | 日韩xxxx视频| 三级黄色片在线观看 | 在线看日韩| 国产中文字幕视频在线观看 | 欧美婷婷色 | 激情欧美一区二区免费视频 | 草 免费视频 | 亚洲综合一区二区精品导航 | 日本久久成人 | 亚洲第一区在线观看 | 黄色一级在线观看 | 91精品在线麻豆 | 国产最新视频在线 | 丝袜美腿在线 | 亚洲精品乱码久久久久 | 激情婷婷综合 | 中文在线www | 中文字幕日韩伦理 | 欧美日韩国产精品爽爽 | 国产精品综合av一区二区国产馆 | 国产精品成人久久久久 | 久久高清毛片 | 亚洲精品久久久久999中文字幕 | a午夜在线 | 国产99在线 | 久久精品人人做人人综合老师 | 中文字幕精品一区二区精品 | 亚洲激情综合网 | 成人午夜毛片 | 日韩精品一区二区在线视频 | 在线电影播放 | 精品国产123 | 日韩中文字幕在线观看 | 五月婷婷久 | 国产精品久久久久久久久久不蜜月 | 国产又黄又爽又猛视频日本 | 九九久久精品 | 一本一本久久aa综合精品 | 欧美成人精品欧美一级乱 | 亚洲久久视频 | 青青河边草免费直播 | 国内小视频 | 九九免费精品视频在线观看 | 成人黄色在线观看视频 | 日本中文字幕网 | 国产视频在 | 国产亚洲精品久久久网站好莱 | 久久久久免费网 | 久久这里精品视频 | 国产精品免费视频一区二区 | 日韩久久在线 | 久久日本视频 | 最近免费在线观看 | 激情婷婷欧美 | 精品女同一区二区三区在线观看 | 国内小视频在线观看 | 国产精品日韩在线 | 国产成人性色生活片 | 国产亚洲婷婷免费 | 久久亚洲影视 | 亚洲一级理论片 | 亚洲精品小视频 | 九九电影在线 | 婷婷狠狠操 | 国产亚州精品视频 | 狠狠色狠狠综合久久 | 欧美a免费 | 在线免费黄 | 免费在线观看av片 | 欧美激情综合五月色丁香 | 成人黄色毛片视频 | 一区二区不卡视频在线观看 | 激情开心色 | 蜜臀久久99精品久久久无需会员 | 成人av资源站 | 国产精品系列在线 | 欧美国产精品久久久久久免费 | 国产在线观看 | 亚洲综合色视频在线观看 | 日韩精品一区二区久久 | 久久在现 | 欧美日韩中文视频 | 一区二区在线影院 | 91插插插免费视频 | 手机av片| 人人爽人人爽人人片 | 成人全视频免费观看在线看 | 色99之美女主播在线视频 | 日韩视频在线不卡 | 黄av免费 | av电影免费在线播放 | 性日韩欧美在线视频 | 91香蕉视频好色先生 | 国产精品2020| 狠狠狠色丁香婷婷综合久久五月 | 久久久精品久久日韩一区综合 | 在线观看av片 | 91精品小视频 | 日韩在线电影一区 | 深夜国产在线 | 2019中文最近的2019中文在线 | 国产伦精品一区二区三区免费 | 国产一级片免费视频 | 婷婷在线视频 | 国产福利在线免费 | 成人资源在线 | 99九九免费视频 | 色婷婷免费 | 操操日日 | 最新av在线网站 | 黄色三级免费观看 | 婷婷日日 | 日韩电影在线观看中文字幕 | 99免费在线观看视频 | 久草在线免费新视频 | 国产一级h | 欧美久久久一区二区三区 | www.国产高清 | 午夜精品久久久久99热app | 国产99久久久精品 | 中文字幕在线乱 | 色婷婷狠狠五月综合天色拍 | 精品国产免费看 | 狠狠操.com| 中文字幕专区高清在线观看 | 麻豆国产视频 | 欧美在线视频一区二区三区 | 亚洲一区二区三区在线看 | 欧美嫩草影院 | 久草视频在线免费看 | 久久久香蕉视频 | 91超碰在线播放 | 久久激情五月丁香伊人 | 久久免费高清视频 | 综合色影院 | 国产一区二区三区网站 | 天天综合在线观看 | 亚洲激情小视频 | 久久综合久久久久88 | 992tv人人网tv亚洲精品 | 午夜手机电影 | 亚洲免费av观看 | 天天插天天爽 | 五月天婷亚洲天综合网精品偷 | 丁香六月综合网 | 91插插插免费视频 | 国产第页 | 综合久久婷婷 | av中文资源在线 | 九九国产精品视频 | 5月丁香婷婷综合 | 国产精品久久免费看 | 成人av在线影视 | 中国一级特黄毛片大片久久 | 日韩精品欧美精品 | 欧美精品中文在线免费观看 | 最新日韩电影 | 91精品成人久久 | av福利在线导航 | 毛片网在线 | 欧洲一区二区在线观看 | 色吊丝在线永久观看最新版本 | 久久久www免费电影网 | 处女av在线 | 狠狠操狠狠插 | 97色在线观看 | 特级黄色片免费看 | 国产高清在线免费观看 | 中文字幕在线观看完整版 | 国产精品自产拍在线观看网站 | 精品国产一区二区久久 | 人人干天天射 | 日韩中文字幕网站 | 99久久精品国产欧美主题曲 | 一二三四精品 | 天天综合网久久 | 国产精品久久久久久久久岛 | 成人动漫一区二区 | 亚洲开心色 | 久久国产精品一区二区三区 | 99免费在线播放99久久免费 | 91精品影视 | 日韩经典一区二区三区 | 亚洲精品日韩av | 一区二区三区中文字幕在线 | 色婷婷午夜| 探花视频在线观看免费版 | 色婷婷五 | 亚洲黄色av网址 | 久久伊人免费视频 | 天天操天天干天天插 | 国产高清在线免费 | 久久久久国产成人免费精品免费 | 久久在视频 | 99视频久久 | 五月激情六月丁香 | 欧美日韩一区二区久久 | 亚洲成人资源网 | 中文字幕视频播放 | 99国产高清 | 国产成人一级电影 | 在线小视频你懂得 | 麻豆传媒视频在线免费观看 | 正在播放国产一区二区 | 欧美日韩高清在线 | 丁香在线观看完整电影视频 | 波多野结衣一区二区三区中文字幕 | 日韩免费av在线 | 亚洲精品欧洲精品 | 狠狠狠干 | 天天干人人 | 久久久一本精品99久久精品66 | 91毛片在线观看 | 奇米影视777影音先锋 | 天堂av在线 | 亚洲美女在线一区 | 国产无遮挡又黄又爽在线观看 | 狠狠狠色狠狠色综合 | 丁香婷五月 | 在线免费av电影 | www.色五月.com | 97色噜噜 | 最近中文字幕国语免费av | 国产免费资源 | 制服丝袜一区二区 | 久久精品一区二区三区国产主播 | 日韩欧美国产视频 | 九九精品久久久 | 免费在线观看一级片 | 97电影手机版 | 久久人人爽人人人人片 | 亚洲精品视频在线观看视频 | 日本公妇在线观看 | 国产精品久久99综合免费观看尤物 | 国产精品乱码久久久久久1区2区 | 亚洲综合在线一区二区三区 | 亚洲精品视频在线观看视频 | 91成人天堂久久成人 | 日韩视频免费 | 欧美日韩在线免费观看 | 中文字幕一区二区三区久久 | 在线播放一区 | 久草精品国产 | 欧美日韩不卡一区 | av在线看网站 | 国产精品大片在线观看 | 欧美激情综合五月色丁香 | 国产一区二区中文字幕 | 97超碰国产在线 | 国产日产高清dvd碟片 | 99久久精品视频免费 | 成人影视免费 | 国产成人一区在线 | 天天操夜夜摸 | av天天在线观看 | 99久久er热在这里只有精品66 | 久久久久女人精品毛片九一 | 91污污视频在线观看 | 日韩一区正在播放 | 国产一区福利 | 国产又黄又硬又爽 | 美女黄濒| 日本3级在线观看 | 国产精品免费小视频 | 99久久婷婷国产精品综合 | 日韩午夜在线播放 | 日韩色区 | 精品一区二区三区四区在线 | 香蕉视频久久久 | 日韩影片在线观看 | 国产精品wwwwww | 中文字幕在线观看一区二区 | 91精品一区在线观看 | 91人人插| 欧美色图视频一区 | 黄色精品久久久 | 国精产品999国精产 久久久久 | 国产免费精彩视频 | 色视频在线观看 | 91精品国产网站 | 国产精品6999成人免费视频 | 激情五月婷婷综合网 | 天天色天天爱天天射综合 | 97人人添人澡人人爽超碰动图 | 人成免费网站 | 欧美一级日韩免费不卡 | 五月天天在线 | 亚洲精品在线播放视频 | 一二区av| 久久久久福利视频 | 日韩久久影院 | 久草在线最新免费 | 久久成人福利 | 亚洲影院国产 | 亚洲视频电影在线 | 波多野结衣在线观看一区二区三区 | 天天操天天射天天添 | 欧美一区二区三区不卡 | 91成人精品国产刺激国语对白 | 久久久久亚洲精品中文字幕 | 伊人国产在线观看 | 日韩一区二区三区在线看 | 91在线免费观看网站 | 国产小视频精品 | 国产性天天综合网 | 免费观看一区二区 | 国产精品久久精品国产 | 久久韩国免费视频 | 九九九九免费视频 | 国产视频久久久 | 亚洲精品久久久久www | 精品亚洲免a | 国产精品久久99 | 国产高清综合 | 福利视频导航网址 | 日韩精品久久久久久久电影竹菊 | 免费男女羞羞的视频网站中文字幕 | 黄网站色欧美视频 | 久久女同性恋中文字幕 | 亚洲国产小视频在线观看 | 国产 一区二区三区 在线 | 国产高清视频免费在线观看 | 手机在线中文字幕 | 国产精品一区二区久久 | www.久久爱.cn | 91精品爽啪蜜夜国产在线播放 | 久久久毛片 | 97操操| 色五月成人 | 亚洲免费一级电影 | 国产午夜精品一区二区三区四区 | 五月色综合 | 91观看视频 | 亚洲综合欧美激情 | 99久久久久国产精品免费 | 色婷婷97| 17婷婷久久www | 一本一本久久a久久精品综合妖精 | 国产91精品在线播放 | 国产一区高清在线 | 毛片的网址 | 国产成人精品日本亚洲999 | av免费看网站 | 四虎影视av| 亚在线播放中文视频 | 91精品国产福利在线观看 | 欧美日韩在线观看一区二区 | 国产男女无遮挡猛进猛出在线观看 | 亚洲精品乱码久久久久久蜜桃动漫 | 日本三级不卡 | 精品综合久久久 | 福利视频一二区 | 日韩午夜三级 | av中文在线影视 | 婷婷激情网站 | 天天操天天舔天天干 | 香蕉视频18 | 日韩精品久久久久久久电影99爱 | 久久久久久久久久久高潮一区二区 | 免费av小说 | 日韩欧美精品在线观看 | 日日干影院| 99久久超碰中文字幕伊人 | 91av欧美| 国产成人精品一区二区三区免费 | 国产精品综合久久 | 国产免费中文字幕 | 草草草影院 | 美女网站一区 | 在线国产专区 | 麻豆视频在线 | 日韩在线欧美在线 | 欧美一区二区三区在线播放 | 精品国产乱码久久久久久三级人 | 欧美极品久久 | 婷婷色影院| 乱男乱女www7788 | 久久婷婷精品视频 | 欧美日韩一区二区三区在线观看视频 | 色综合久久久久综合99 | 亚洲视频电影在线 | 国产高清在线免费视频 | 欧美激情精品 | 久草在线免费看视频 | 亚洲精品国产精品久久99热 | 日韩欧美在线免费 | 五月天av在线 | 日韩美视频 | 色婷婷综合久久久 | 国产字幕在线观看 | 在线观看爱爱视频 | 亚洲精品999| 五月网婷婷 | 国产精品福利在线观看 | 黄色电影在线免费观看 | 国产精品成人一区二区三区 | 香蕉视频日本 | 在线中文字幕播放 | 国产午夜影院 | 久久久久久毛片 | 国产r级在线观看 | 在线观看久久久久久 | 久久综合天天 | 精品视频资源站 | 日韩美女久久 | 欧美精品中文字幕亚洲专区 | 亚洲国产片色 | 日韩精品无码一区二区三区 | 久久国产网 | 国产精品视频内 | 亚洲好视频 | 免费h精品视频在线播放 | av丝袜天堂| 久要激情网 | 久久狠狠婷婷 | 蜜桃av观看 | 97在线免费观看视频 | 欧美视频日韩 | 成人a视频在线观看 | 亚洲精品在线资源 | 欧美日韩色婷婷 | 亚洲视频免费在线观看 | 国产黄色在线 | 婷婷综合成人 | 国产少妇在线观看 | 成人免费视频网站在线观看 | 午夜精品一区二区三区在线播放 | 国产91综合一区在线观看 | 日韩91在线 | 伊人久久婷婷 | 91chinesexxx| 久草久草在线观看 | 麻豆91在线观看 | 日韩www在线| 亚洲最大在线视频 | www.亚洲黄| 亚洲成人一二三 | 天天操天天摸天天爽 | 久久久久女教师免费一区 | 91成人观看 | 亚洲国产美女精品久久久久∴ | 亚洲男模gay裸体gay | 91av中文字幕 | 中文字幕欧美日韩va免费视频 | 久久在线免费视频 | 国产麻豆视频网站 | 婷婷六月中文字幕 | 啪一啪在线 | 国产成人在线观看免费 | 狠狠色伊人亚洲综合成人 | 天天爱天天操天天射 | 五月天网页 | 亚洲日韩精品欧美一区二区 | 在线 日韩 av | 亚洲最大激情中文字幕 | 国产精品亚洲成人 | 日韩成人邪恶影片 | 久草在线免费资源 | 日韩v在线91成人自拍 | 人人草在线视频 | 亚洲最新av在线 | 99热精品视 | 美女精品国产 | 91在线小视频 | 777xxx欧美| 成人免费xxx在线观看 | 亚洲涩涩网站 | 久久黄色片 | 在线久草视频 | 国产午夜在线观看视频 | 久久久黄色av | 日韩在线资源 | av软件在线观看 | 国产一级电影在线 | 亚洲国产影院 | 97人人模人人爽人人喊网 | 日日摸日日碰 | 日韩中文幕 | 91成人久久 | h动漫中文字幕 | 丁香婷婷在线 | 国产国语在线 | 日本 在线 视频 中文 有码 | 天天综合91 | 91精品欧美一区二区三区 | 亚洲激情久久 | 一区二区三区久久 | 亚洲精品啊啊啊 | 日本三级不卡 | 亚洲做受高潮欧美裸体 | 久久xxxx| 国产精品免费在线视频 | 久久婷婷一区二区三区 | 亚洲va欧美va | 国产不卡一 | 久久久久久久久久久久亚洲 | 93久久精品日日躁夜夜躁欧美 | 日韩欧美一区视频 | 国产真实精品久久二三区 | 在线观看精品一区 | 97在线观看视频免费 | 激情综合久久 | 国产精品美女久久久免费 | 69视频网站 | 国产精品系列在线播放 | 91成人在线视频 | 色全色在线资源网 | 永久免费的av电影 | 亚洲高清视频在线观看免费 | 中文字幕 婷婷 | 成人wwwxxx视频 | 中文字幕视频一区 | 久久免费国产精品1 | 久久精品区 | 夜夜视频| 色网站国产精品 | 99热国产在线 | 久久久国产99久久国产一 | 亚洲蜜桃av| 亚洲波多野结衣 | 国产夫妻av在线 | 久久精品视频免费播放 | 国产.精品.日韩.另类.中文.在线.播放 | 丁香在线视频 | 中日韩三级视频 | 国产欧美久久久精品影院 | 中文字幕在线国产 | 亚洲精品视频在线观看网站 | 最新免费av在线 | 亚洲在线日韩 | 男女靠逼app| 中文字幕在线影院 | 日韩欧美视频二区 | 国产精品福利无圣光在线一区 | 精品欧美在线视频 | 国产精品一区电影 | av资源免费在线观看 | 亚洲精品在线免费观看视频 | 天天艹天天操 | 午夜在线免费观看视频 | www.天天操 | 国产视频一区二区在线播放 | 国产精品中文久久久久久久 | 日韩网站免费观看 | 久久理论影院 | 国产一区在线免费观看 | 日日夜夜中文字幕 | 国产一区二区三区四区大秀 | 久久乐九色婷婷综合色狠狠182 | 久久久综合九色合综国产精品 | 免费美女久久99 | 精品国产一二三四区 | 就操操久久| 国产精品12 | 国产精品久久99综合免费观看尤物 | 免费在线观看不卡av | 夜夜躁日日躁狠狠久久88av | 久久人人爽人人片av | 黄色网中文字幕 | 成人在线视频一区 | 黄色在线观看免费网站 | 色国产精品一区在线观看 | 国产精华国产精品 | 欧美成人免费在线 | 国产区网址 | 亚洲视频久久久久 | 天天天在线综合网 | 97超碰国产在线 | 国产精品嫩草影院99网站 | 天天狠狠干| 欧美日韩免费一区 | 人操人 | 婷婷中文字幕 | 久久视| 国产精品视频app | www.69xx | 亚洲永久av| 久久乐九色婷婷综合色狠狠182 | 日韩二区三区在线 | 欧美一区二区三区激情视频 | av大片网站 | 日本三级人妇 | 97国产情侣爱久久免费观看 | 久久久久久久av | 久色婷婷| 色婷婷色| 91日韩精品视频 | 免费视频成人 | a天堂最新版中文在线地址 久久99久久精品国产 | 四虎成人精品 | 黄色特一级片 | 精品国产乱码久久久久久1区二区 | 国产护士av | 国产这里只有精品 | 高潮久久久久久久久 | 在线观看视频一区二区三区 | 成人av资源网 | 精品福利视频在线 | 99精品久久精品一区二区 | 午夜视频免费播放 | 久操免费视频 | 麻豆视频国产在线观看 | 91av观看| 欧美日韩午夜爽爽 | 亚洲成a人片77777潘金莲 | 久久久国产影视 | 国产精品18久久久久vr手机版特色 | 最新在线你懂的 | 最近日本中文字幕a | 天天撸夜夜操 | 亚洲区另类春色综合小说校园片 | 久久毛片网 | 久久伊人精品天天 | 中文字幕av在线不卡 | 人人爽人人爽人人爽 | av免费看在线| 久久精品一区二区三区国产主播 | 成人av在线资源 | 激情视频免费观看 | 久久 精品一区 | 中文字幕最新精品 | 香蕉久久久久久久 | 中文字幕资源网 国产 | 久久综合久久综合久久综合 | 国产精品18videosex性欧美 | 午夜精品中文字幕 | 日本精品一区二区 | 日日干天天 | 成人h在线播放 | 黄色h在线观看 | 黄色美女免费网站 | 最新色视频 | 六月婷色 | 久久精品女人毛片国产 | 国产一区二区在线免费播放 | 一区二区三区在线观看免费 | 丁香六月天婷婷 | 欧美日韩精品在线 | 特级黄色视频毛片 | 99av国产精品欲麻豆 | 91在线小视频 | 91香蕉视频污在线 | 国产探花 | 日产中文字幕 | 国产精品私人影院 | 日韩电影在线观看一区 | 一区二区 不卡 | av电影在线观看完整版一区二区 | 国产精品aⅴ | 99国产在线观看 | 久久久久久久99精品免费观看 | 91精品日韩 | 久久久黄色免费网站 | 特黄特黄的视频 | 精品视频免费 | 在线观看免费一区 | 一区二区三区国 | 69精品久久久 | 久久高清 | 欧美久久久久久久久中文字幕 | 成人久久久电影 | 91爱爱电影| 亚洲三级网站 | 亚洲国产偷 | 国产精品毛片久久 | 国产一级视屏 | 国产黄色看片 | 久久论理 | 国产成人精品免费在线观看 | 亚洲视频在线免费看 | 99久在线精品99re8热视频 | 国产精品毛片一区二区在线看 | 亚洲视频精选 | 亚洲丁香日韩 | 午夜精品一区二区三区在线播放 | av久久在线 | 亚洲精品在线免费播放 | 狠狠色丁香婷婷综合久小说久 | 欧美另类tv | 欧美了一区在线观看 | 日韩免费三级 | 视频在线99re | 国产手机在线播放 | www久久久 | 黄色三级在线观看 | 国产一区二区在线视频观看 | 992tv在线成人免费观看 | 天天天天天干 | 热re99久久精品国产66热 | 国产男女免费完整视频 | 久久视频国产精品免费视频在线 | 美女很黄免费网站 | 国产女人18毛片水真多18精品 | 国产午夜精品一区 | 免费av在 | 国产夫妻自拍av | 国产99在线 | 日韩久久久久久久久久久久 | 国产精品毛片一区二区在线看 | 中文字幕丝袜 | 开心婷婷色 | 成年在线观看 | www.天天成人国产电影 | 一级免费片 | 久久久九色精品国产一区二区三区 | 日韩在线视频线视频免费网站 | 亚洲最大av| 超碰97免费在线 | 一区二区三区在线影院 | 一区二区亚洲精品 | 玖玖爱在线观看 | 91精品久久久久久久久久久久久 | 免费视频久久久久 | 8x成人在线| 亚洲japanese制服美女 | 精品一区二区三区在线播放 | 九九免费在线视频 | 人人狠狠综合久久亚洲婷 | 日韩大片在线免费观看 | av黄在线播放 | 四虎在线免费视频 | 九九热只有这里有精品 | 免费 在线 中文 日本 | 人人狠| 麻豆免费视频网站 | 久久久免费精品视频 | 亚洲综合色婷婷 | 麻豆国产网站 | 久一在线| www.色爱 | 成人影视免费 | 成人av片在线观看 | www.com久久久 | 亚洲一区日韩在线 | 少妇搡bbbb搡bbb搡69 | 日韩在线小视频 | 精品久久一二三区 | 色婷婷国产精品 | 激情五月视频 | 国产成人性色生活片 | www蜜桃视频| 综合网成人 | 久久综合久久综合这里只有精品 | 日韩电影中文,亚洲精品乱码 | 少妇高潮流白浆在线观看 | 欧美视频日韩 | 亚洲精品在线国产 | 欧美日韩亚洲在线观看 | 国产色网站 | 国产污视频在线观看 | 日韩欧美在线观看一区二区 | 精品久久久久免费极品大片 | 国产美女被啪进深处喷白浆视频 | 韩国精品在线观看 | 久久精品欧美一区二区三区麻豆 | 亚洲少妇激情 | 97小视频 | 激情图片区 | 色资源二区在线视频 | 日韩视频一区二区在线观看 | 色综合五月天 | 欧美成人亚洲成人 | 伊人狠狠操 | 精品国产激情 | 中文字幕在线观看一区 | 人人狠狠| 在线观看播放av | 亚洲黄色在线 | a级国产乱理论片在线观看 特级毛片在线观看 | 免费亚洲婷婷 | 欧美日韩在线观看一区 | 亚洲成人av电影在线 | 一区三区在线欧 | 99re久久资源最新地址 | 日韩在线视频观看免费 | 日韩精品视频一二三 | 久久玖| 中文字幕亚洲情99在线 | 视频一区亚洲 | 亚洲另类视频在线观看 | 国产女教师精品久久av | 在线亚州 | 久久在线免费 | 一区三区在线欧 | 久草在线观看资源 | 国产黄色片一级 | 日女人免费视频 | 成年人黄色免费看 | 91视频一8mav | 国内久久精品视频 | 国产一在线精品一区在线观看 | 2024国产在线 | 中文字幕永久在线 | 激情小说网站亚洲综合网 | 亚洲精品av中文字幕在线在线 | 在线观看国产成人av片 | av888.com| h动漫中文字幕 | 超碰人人做 | 青草视频免费观看 | 欧美精品一区在线 | 一级黄视频 | 色香蕉在线视频 | 国产精品久久久久永久免费 | 国产精品18久久久久白浆 | 亚洲国产av精品毛片鲁大师 | 日韩精品一区电影 | 国产精品福利在线观看 | 午夜精品一区二区三区视频免费看 | 丁香5月婷婷 | 三级黄色理论片 | 欧美少妇xxx | 狠狠色噜噜狠狠狠合久 | 婷婷久操 | 精品国产aⅴ麻豆 | 亚洲专区在线视频 | 亚洲综合视频在线观看 | 久久人人添人人爽添人人88v | 亚洲国产精品日韩 | 91在线成人 | 免费网站黄色 | 日韩一区二区免费视频 | 亚洲激情在线播放 | 久久久天堂 | 一级黄色电影网站 | 在线视频日韩一区 | 久久久久久久久久久久av | 国产69精品久久app免费版 | 亚洲人久久久 | 国产视频精品网 | 国产一级片一区二区三区 | 亚洲精品乱码久久久久久蜜桃欧美 | 999电影免费在线观看 | 天天综合久久 | 日韩一区二区免费视频 | 免费看黄的 | 久久午夜免费观看 | 欧美一级艳片视频免费观看 | 91在线免费公开视频 | 久久久久网址 | 久久久久久久久久久久国产精品 | 在线91观看 | 激情黄色av | 97在线观看视频国产 | 色视频国产直接看 | 丁香高清视频在线看看 | 免费影视大全推荐 | 久久不射电影院 | 久久夜av | 欧美日韩精品在线观看视频 | 国产高清99| 国产一级精品在线观看 | 久久精品99国产精品亚洲最刺激 | 日韩在线视频免费观看 | 国产精品久久久久久模特 | 国产一二区精品 | 九九九九九精品 | 日本性xxx | 亚洲精品美女视频 | 久久久免费播放 | 精品欧美一区二区三区久久久 | 精品视频网站 | 久久国产一区 | 制服丝袜亚洲 | 欧美最猛性xxxxx亚洲精品 | 欧美日韩成人 | 999视频网站 | 久久99中文字幕 | 国产欧美久久久精品影院 | 欧美午夜性 | 一级全黄毛片 | 在线观看国产区 | av免费电影网站 | 国产精品一区二区电影 | 亚洲一级电影 | 欧美一级片在线免费观看 | 可以免费观看的av片 | 亚洲va综合va国产va中文 | 一区二区三区中文字幕在线 | 中文字幕免费高清 | 久久99久久久久 | 亚洲国产午夜精品 | 久久免费中文视频 | www.天天干.com| 国产精品理论片 | av成人在线播放 | 成年免费在线视频 | 成人免费电影 | 国内精品久久久 | www五月 | 99视频精品 | av资源中文字幕 | 鲁一鲁影院 | 久久国产精品视频 | 日韩免费视频在线观看 | 久久久久亚洲精品中文字幕 | 国产一线二线三线性视频 | 久久怡红院| 成人黄色片在线播放 | 精品国产美女在线 | 日批在线看 | 久久免费在线视频 | 人人插人人澡 | 成人免费 在线播放 | 亚洲国产成人精品电影在线观看 | 黄a网站| 狠狠色伊人亚洲综合成人 | 日韩免费在线观看 | 色综合欧洲 | 欧美aaa视频| 成人h视频在线 | 91丨九色丨高潮丰满 | av中文字幕日韩 | 国产第一页在线观看 | 91黄色免费网站 | av先锋中文字幕 | 精品播放| 免费在线观看污网站 | 欧美成年网站 | 天天综合人人 | 欧美激情va永久在线播放 | 97在线观看免费 | 在线视频免费观看 | 超碰人人做| av噜噜噜在线播放 | 91自拍视频在线观看 | 国产精品v a免费视频 | 久久综合久色欧美综合狠狠 | 特黄特色特刺激视频免费播放 | 天天综合狠狠精品 | 免费视频成人 | 精品一区二区免费 | 亚洲欧洲国产视频 | 不卡av免费在线观看 | 亚洲精品乱码久久久久久蜜桃91 | 久久免费视频7 | 婷婷六月中文字幕 | 中文字幕av一区二区三区四区 | 国产中文字幕视频在线 | 欧美aa级| 手机在线观看国产精品 | 国产一级电影免费观看 | 欧美夫妻生活视频 | 色www精品视频在线观看 | 99久久这里只有精品 | 西西大胆啪啪 | 中文字幕国产精品一区二区 | 成人av在线一区二区 | 久久精品福利视频 | 99久久er热在这里只有精品66 | 高清国产午夜精品久久久久久 | 国内精品99 | 九九热精品在线 | 久久精品国产一区 | 国产日韩精品一区二区三区 | 夜添久久精品亚洲国产精品 | 人人草在线视频 | 国产精品一区久久久久 | 91一区二区三区在线观看 | 国产一区二区三区高清播放 | 国产又黄又爽无遮挡 | 国产色中涩| 免费看av片网站 |