完整版!Java線上故障排查必備指南

21ic電子網(wǎng) 2020-05-12 00:00


線上故障主要會(huì)包括 CPU、磁盤、內(nèi)存以及網(wǎng)絡(luò)問題,而大多數(shù)故障可能會(huì)包含不止一個(gè)層面的問題,所以進(jìn)行排查時(shí)候盡量四個(gè)方面依次排查一遍。同時(shí)例如 jstack、jmap 等工具也是不囿于一個(gè)方面的問題的,基本上出問題就是 df、free、top 三連,然后依次 jstack、jmap 伺候,具體問題具體分析即可。

CPU

一般來講我們首先會(huì)排查 CPU 方面的問題。CPU 異常往往還是比較好定位的。原因包括業(yè)務(wù)邏輯問題(死循環(huán))、頻繁 gc 以及上下文切換過多。而最常見的往往是業(yè)務(wù)邏輯(或者框架邏輯)導(dǎo)致的,可以使用 jstack 來分析對(duì)應(yīng)的堆棧情況。
使用 jstack 分析 CPU 問題
我們先用 ps 命令找到對(duì)應(yīng)進(jìn)程的 pid(如果你有好幾個(gè)目標(biāo)進(jìn)程,可以先用 top 看一下哪個(gè)占用比較高)。

接著用top -H -p pid來找到 CPU 使用率比較高的一些線程

然后將占用最高的 pid 轉(zhuǎn)換為 16 進(jìn)制printf '%x\n' pid得到 nid

接著直接在 jstack 中找到相應(yīng)的堆棧信息jstack pid |grep 'nid' -C5 –color

可以看到我們已經(jīng)找到了 nid 為 0x42 的堆棧信息,接著只要仔細(xì)分析一番即可。
當(dāng)然更常見的是我們對(duì)整個(gè) jstack 文件進(jìn)行分析,通常我們會(huì)比較關(guān)注 WAITING 和 TIMED_WAITING 的部分,BLOCKED 就不用說了。我們可以使用命令cat jstack.log | grep "java.lang.Thread.State" | sort -nr | uniq -c來對(duì) jstack 的狀態(tài)有一個(gè)整體的把握,如果 WAITING 之類的特別多,那么多半是有問題啦。

頻繁 gc
當(dāng)然我們還是會(huì)使用 jstack 來分析問題,但有時(shí)候我們可以先確定下 gc 是不是太頻繁,使用jstat -gc pid 1000命令來對(duì) gc 分代變化情況進(jìn)行觀察,1000 表示采樣間隔(ms),S0C/S1C、S0U/S1U、EC/EU、OC/OU、MC/MU 分別代表兩個(gè) Survivor 區(qū)、Eden 區(qū)、老年代、元數(shù)據(jù)區(qū)的容量和使用量。YGC/YGT、FGC/FGCT、GCT 則代表 YoungGc、FullGc 的耗時(shí)和次數(shù)以及總耗時(shí)。如果看到 gc 比較頻繁,再針對(duì) gc 方面做進(jìn)一步分析,具體可以參考一下 gc 章節(jié)的描述。

上下文切換
針對(duì)頻繁上下文問題,我們可以使用vmstat命令來進(jìn)行查看

cs(context switch)一列則代表了上下文切換的次數(shù)。

如果我們希望對(duì)特定的 pid 進(jìn)行監(jiān)控那么可以使用 pidstat -w pid命令,cswch 和 nvcswch 表示自愿及非自愿切換。


磁盤

磁盤問題和 CPU 一樣是屬于比較基礎(chǔ)的。首先是磁盤空間方面,我們直接使用df  -hl來查看文件系統(tǒng)狀態(tài)

更多時(shí)候,磁盤問題還是性能上的問題。我們可以通過 iostatiostat -d -k -x來進(jìn)行分析

最后一列%util可以看到每塊磁盤寫入的程度,而rrqpm/s以及wrqm/s分別表示讀寫速度,一般就能幫助定位到具體哪塊磁盤出現(xiàn)問題了。

另外我們還需要知道是哪個(gè)進(jìn)程在進(jìn)行讀寫,一般來說開發(fā)自己心里有數(shù),或者用 iotop 命令來進(jìn)行定位文件讀寫的來源。

不過這邊拿到的是 tid,我們要轉(zhuǎn)換成 pid,可以通過 readlink 來找到 pidreadlink -f /proc/*/task/tid/../..。

找到 pid 之后就可以看這個(gè)進(jìn)程具體的讀寫情況cat /proc/pid/io

我們還可以通過 lsof 命令來確定具體的文件讀寫情況lsof -p pid

內(nèi)存

內(nèi)存問題排查起來相對(duì)比 CPU 麻煩一些,場(chǎng)景也比較多。主要包括 OOM、GC 問題和堆外內(nèi)存。一般來講,我們會(huì)先用free命令先來檢查一發(fā)內(nèi)存的各種情況。

堆內(nèi)內(nèi)存

內(nèi)存問題大多還都是堆內(nèi)內(nèi)存問題。表象上主要分為 OOM 和 Stack Overflo。

OOM

JMV 中的內(nèi)存不足,OOM 大致可以分為以下幾種:

Exception in thread "main" java.lang.OutOfMemoryError: unable to create new native thread

這個(gè)意思是沒有足夠的內(nèi)存空間給線程分配 Java 棧,基本上還是線程池代碼寫的有問題,比如說忘記 shutdown,所以說應(yīng)該首先從代碼層面來尋找問題,使用 jstack 或者 jmap。如果一切都正常,JVM 方面可以通過指定Xss來減少單個(gè) thread stack 的大小。另外也可以在系統(tǒng)層面,可以通過修改/etc/security/limits.confnofile 和 nproc 來增大 os 對(duì)線程的限制

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
這個(gè)意思是堆的內(nèi)存占用已經(jīng)達(dá)到-Xmx 設(shè)置的最大值,應(yīng)該是最常見的 OOM 錯(cuò)誤了。解決思路仍然是先應(yīng)該在代碼中找,懷疑存在內(nèi)存泄漏,通過 jstack 和 jmap 去定位問題。如果說一切都正常,才需要通過調(diào)整Xmx的值來擴(kuò)大內(nèi)存。
Caused by: java.lang.OutOfMemoryError: Meta space
這個(gè)意思是元數(shù)據(jù)區(qū)的內(nèi)存占用已經(jīng)達(dá)到XX:MaxMetaspaceSize設(shè)置的最大值,排查思路和上面的一致,參數(shù)方面可以通過XX:MaxPermSize來進(jìn)行調(diào)整(這里就不說 1.8 以前的永久代了)。
Stack Overflow
棧內(nèi)存溢出,這個(gè)大家見到也比較多。
Exception in thread "main" java.lang.StackOverflowError
表示線程棧需要的內(nèi)存大于 Xss 值,同樣也是先進(jìn)行排查,參數(shù)方面通過Xss來調(diào)整,但調(diào)整的太大可能又會(huì)引起 OOM。
使用 JMAP 定位代碼內(nèi)存泄漏
上述關(guān)于 OOM 和 Stack Overflo 的代碼排查方面,我們一般使用 JMAPjmap -dump:format=b,file=filename pid來導(dǎo)出 dump 文件

通過 mat(Eclipse Memory Analysis Tools)導(dǎo)入 dump 文件進(jìn)行分析,內(nèi)存泄漏問題一般我們直接選 Leak Suspects 即可,mat 給出了內(nèi)存泄漏的建議。另外也可以選擇 Top Consumers 來查看最大對(duì)象報(bào)告。和線程相關(guān)的問題可以選擇 thread overview 進(jìn)行分析。除此之外就是選擇 Histogram 類概覽來自己慢慢分析,大家可以搜搜 mat 的相關(guān)教程。

日常開發(fā)中,代碼產(chǎn)生內(nèi)存泄漏是比較常見的事,并且比較隱蔽,需要開發(fā)者更加關(guān)注細(xì)節(jié)。比如說每次請(qǐng)求都 new 對(duì)象,導(dǎo)致大量重復(fù)創(chuàng)建對(duì)象;進(jìn)行文件流操作但未正確關(guān)閉;手動(dòng)不當(dāng)觸發(fā) gc;ByteBuffer 緩存分配不合理等都會(huì)造成代碼 OOM。

另一方面,我們可以在啟動(dòng)參數(shù)中指定-XX:+HeapDumpOnOutOfMemoryError來保存 OOM 時(shí)的 dump 文件。

gc 問題和線程

gc 問題除了影響 CPU 也會(huì)影響內(nèi)存,排查思路也是一致的。一般先使用 jstat 來查看分代變化情況,比如 youngGC 或者 fullGC 次數(shù)是不是太多呀;EU、OU 等指標(biāo)增長(zhǎng)是不是異常呀等。

線程的話太多而且不被及時(shí) gc 也會(huì)引發(fā) oom,大部分就是之前說的unable to create new native thread。除了 jstack 細(xì)細(xì)分析 dump 文件外,我們一般先會(huì)看下總體線程,通過pstreee -p pid |wc -l。

或者直接通過查看/proc/pid/task的數(shù)量即為線程數(shù)量。


堆外內(nèi)存

如果碰到堆外內(nèi)存溢出,那可真是太不幸了。首先堆外內(nèi)存溢出表現(xiàn)就是物理常駐內(nèi)存增長(zhǎng)快,報(bào)錯(cuò)的話視使用方式都不確定,如果由于使用 Netty 導(dǎo)致的,那錯(cuò)誤日志里可能會(huì)出現(xiàn)OutOfDirectMemoryError錯(cuò)誤,如果直接是 DirectByteBuffer,那會(huì)報(bào)OutOfMemoryError: Direct buffer memory。

堆外內(nèi)存溢出往往是和 NIO 的使用相關(guān),一般我們先通過 pmap 來查看下進(jìn)程占用的內(nèi)存情況pmap -x pid | sort -rn -k3 | head -30,這段意思是查看對(duì)應(yīng) pid 倒序前 30 大的內(nèi)存段。這邊可以再一段時(shí)間后再跑一次命令看看內(nèi)存增長(zhǎng)情況,或者和正常機(jī)器比較可疑的內(nèi)存段在哪里。

我們?nèi)绻_定有可疑的內(nèi)存端,需要通過 gdb 來分析gdb --batch --pid {pid} -ex "dump memory filename.dump {內(nèi)存起始地址} {內(nèi)存起始地址+內(nèi)存塊大小}"

獲取 dump 文件后可用 heaxdump 進(jìn)行查看hexdump -C filename | less,不過大多數(shù)看到的都是二進(jìn)制亂碼。

NMT 是 Java7U40 引入的 HotSpot 新特性,配合 jcmd 命令我們就可以看到具體內(nèi)存組成了。需要在啟動(dòng)參數(shù)中加入 -XX:NativeMemoryTracking=summary 或者 -XX:NativeMemoryTracking=detail,會(huì)有略微性能損耗。

一般對(duì)于堆外內(nèi)存緩慢增長(zhǎng)直到爆炸的情況來說,可以先設(shè)一個(gè)基線jcmd pid VM.native_memory baseline。

然后等放一段時(shí)間后再去看看內(nèi)存增長(zhǎng)的情況,通過jcmd pid VM.native_memory detail.diff(summary.diff)做一下 summary 或者 detail 級(jí)別的 diff。

可以看到 jcmd 分析出來的內(nèi)存十分詳細(xì),包括堆內(nèi)、線程以及 gc(所以上述其他內(nèi)存異常其實(shí)都可以用 nmt 來分析),這邊堆外內(nèi)存我們重點(diǎn)關(guān)注 Internal 的內(nèi)存增長(zhǎng),如果增長(zhǎng)十分明顯的話那就是有問題了。

detail 級(jí)別的話還會(huì)有具體內(nèi)存段的增長(zhǎng)情況,如下圖。

此外在系統(tǒng)層面,我們還可以使用 strace 命令來監(jiān)控內(nèi)存分配 strace -f -e "brk,mmap,munmap" -p pid

這邊內(nèi)存分配信息主要包括了 pid 和內(nèi)存地址。

不過其實(shí)上面那些操作也很難定位到具體的問題點(diǎn),關(guān)鍵還是要看錯(cuò)誤日志棧,找到可疑的對(duì)象,搞清楚它的回收機(jī)制,然后去分析對(duì)應(yīng)的對(duì)象。比如 DirectByteBuffer 分配內(nèi)存的話,是需要 full GC 或者手動(dòng) system.gc 來進(jìn)行回收的(所以最好不要使用-XX:+DisableExplicitGC)。那么其實(shí)我們可以跟蹤一下 DirectByteBuffer 對(duì)象的內(nèi)存情況,通過jmap -histo:live pid手動(dòng)觸發(fā) fullGC 來看看堆外內(nèi)存有沒有被回收。如果被回收了,那么大概率是堆外內(nèi)存本身分配的太小了,通過-XX:MaxDirectMemorySize進(jìn)行調(diào)整。如果沒有什么變化,那就要使用 jmap 去分析那些不能被 gc 的對(duì)象,以及和 DirectByteBuffer 之間的引用關(guān)系了。

GC 問題

堆內(nèi)內(nèi)存泄漏總是和 GC 異常相伴。不過 GC 問題不只是和內(nèi)存問題相關(guān),還有可能引起 CPU 負(fù)載、網(wǎng)絡(luò)問題等系列并發(fā)癥,只是相對(duì)來說和內(nèi)存聯(lián)系緊密些,所以我們?cè)诖藛为?dú)總結(jié)一下 GC 相關(guān)問題。

我們?cè)?CPU 章介紹了使用 jstat 來獲取當(dāng)前 GC 分代變化信息。而更多時(shí)候,我們是通過 GC 日志來排查問題的,在啟動(dòng)參數(shù)中加上-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps來開啟 GC 日志。

常見的 Young GC、Full GC 日志含義在此就不做贅述了。

針對(duì) gc 日志,我們就能大致推斷出 youngGC 與 fullGC 是否過于頻繁或者耗時(shí)過長(zhǎng),從而對(duì)癥下藥。我們下面將對(duì) G1 垃圾收集器來做分析,這邊也建議大家使用 G1-XX:+UseG1GC。

youngGC 過頻繁

youngGC 頻繁一般是短周期小對(duì)象較多,先考慮是不是 Eden 區(qū)/新生代設(shè)置的太小了,看能否通過調(diào)整-Xmn、-XX:SurvivorRatio 等參數(shù)設(shè)置來解決問題。如果參數(shù)正常,但是 young gc 頻率還是太高,就需要使用 Jmap 和 MAT 對(duì) dump 文件進(jìn)行進(jìn)一步排查了。

youngGC 耗時(shí)過長(zhǎng)

耗時(shí)過長(zhǎng)問題就要看 GC 日志里耗時(shí)耗在哪一塊了。以 G1 日志為例,可以關(guān)注 Root Scanning、Object Copy、Ref Proc 等階段。Ref Proc 耗時(shí)長(zhǎng),就要注意引用相關(guān)的對(duì)象。Root Scanning 耗時(shí)長(zhǎng),就要注意線程數(shù)、跨代引用。Object Copy 則需要關(guān)注對(duì)象生存周期。而且耗時(shí)分析它需要橫向比較,就是和其他項(xiàng)目或者正常時(shí)間段的耗時(shí)比較。比如說圖中的 Root Scanning 和正常時(shí)間段比增長(zhǎng)較多,那就是起的線程太多了。

觸發(fā) fullGC

G1 中更多的還是 mixedGC,但 mixedGC 可以和 youngGC 思路一樣去排查。觸發(fā) fullGC 了一般都會(huì)有問題,G1 會(huì)退化使用 Serial 收集器來完成垃圾的清理工作,暫停時(shí)長(zhǎng)達(dá)到秒級(jí)別,可以說是半跪了。

fullGC 的原因可能包括以下這些,以及參數(shù)調(diào)整方面的一些思路:

  • 并發(fā)階段失敗:在并發(fā)標(biāo)記階段,MixGC 之前老年代就被填滿了,那么這時(shí)候 G1 就會(huì)放棄標(biāo)記周期。這種情況,可能就需要增加堆大小,或者調(diào)整并發(fā)標(biāo)記線程數(shù)-XX:ConcGCThreads。

  • 晉升失?。涸?GC 的時(shí)候沒有足夠的內(nèi)存供存活/晉升對(duì)象使用,所以觸發(fā)了 Full GC。這時(shí)候可以通過-XX:G1ReservePercent來增加預(yù)留內(nèi)存百分比,減少-XX:InitiatingHeapOccupancyPercent來提前啟動(dòng)標(biāo)記,-XX:ConcGCThreads來增加標(biāo)記線程數(shù)也是可以的。

  • 大對(duì)象分配失?。捍髮?duì)象找不到合適的 region 空間進(jìn)行分配,就會(huì)進(jìn)行 fullGC,這種情況下可以增大內(nèi)存或者增大-XX:G1HeapRegionSize。

  • 程序主動(dòng)執(zhí)行 System.gc():不要隨便寫就對(duì)了。

另外,我們可以在啟動(dòng)參數(shù)中配置-XX:HeapDumpPath=/xxx/dump.hprof來 dump fullGC 相關(guān)的文件,并通過 jinfo 來進(jìn)行 gc 前后的 dump

jinfo -flag +HeapDumpBeforeFullGC pid

jinfo -flag +HeapDumpAfterFullGC pid

jinfo -flag +HeapDumpBeforeFullGC pid

jinfo -flag +HeapDumpAfterFullGC pid

這樣得到 2 份 dump 文件,對(duì)比后主要關(guān)注被 gc 掉的問題對(duì)象來定位問題。

網(wǎng)絡(luò)

涉及到網(wǎng)絡(luò)層面的問題一般都比較復(fù)雜,場(chǎng)景多,定位難,成為了大多數(shù)開發(fā)的噩夢(mèng),應(yīng)該是最復(fù)雜的了。這里會(huì)舉一些例子,并從 tcp 層、應(yīng)用層以及工具的使用等方面進(jìn)行闡述。

超時(shí)

超時(shí)錯(cuò)誤大部分處在應(yīng)用層面,所以這塊著重理解概念。超時(shí)大體可以分為連接超時(shí)和讀寫超時(shí),某些使用連接池的客戶端框架還會(huì)存在獲取連接超時(shí)和空閑連接清理超時(shí)。

  • 讀寫超時(shí)。readTimeout/writeTimeout,有些框架叫做 so_timeout 或者 socketTimeout,均指的是數(shù)據(jù)讀寫超時(shí)。注意這邊的超時(shí)大部分是指邏輯上的超時(shí)。soa 的超時(shí)指的也是讀超時(shí)。讀寫超時(shí)一般都只針對(duì)客戶端設(shè)置。

  • 連接超時(shí)。connectionTimeout,客戶端通常指與服務(wù)端建立連接的最大時(shí)間。服務(wù)端這邊 connectionTimeout 就有些五花八門了,Jetty 中表示空閑連接清理時(shí)間,Tomcat 則表示連接維持的最大時(shí)間。

  • 其他。包括連接獲取超時(shí) connectionAcquireTimeout 和空閑連接清理超時(shí) idleConnectionTimeout。多用于使用連接池或隊(duì)列的客戶端或服務(wù)端框架。

我們?cè)谠O(shè)置各種超時(shí)時(shí)間中,需要確認(rèn)的是盡量保持客戶端的超時(shí)小于服務(wù)端的超時(shí),以保證連接正常結(jié)束。

在實(shí)際開發(fā)中,我們關(guān)心最多的應(yīng)該是接口的讀寫超時(shí)了。

如何設(shè)置合理的接口超時(shí)是一個(gè)問題。如果接口超時(shí)設(shè)置的過長(zhǎng),那么有可能會(huì)過多地占用服務(wù)端的 tcp 連接。而如果接口設(shè)置的過短,那么接口超時(shí)就會(huì)非常頻繁。

服務(wù)端接口明明 rt 降低,但客戶端仍然一直超時(shí)又是另一個(gè)問題。這個(gè)問題其實(shí)很簡(jiǎn)單,客戶端到服務(wù)端的鏈路包括網(wǎng)絡(luò)傳輸、排隊(duì)以及服務(wù)處理等,每一個(gè)環(huán)節(jié)都可能是耗時(shí)的原因。

TCP 隊(duì)列溢出

tcp 隊(duì)列溢出是個(gè)相對(duì)底層的錯(cuò)誤,它可能會(huì)造成超時(shí)、rst 等更表層的錯(cuò)誤。因此錯(cuò)誤也更隱蔽,所以我們單獨(dú)說一說。

如上圖所示,這里有兩個(gè)隊(duì)列:syns queue(半連接隊(duì)列)、accept queue(全連接隊(duì)列)。三次握手,在 server 收到 client 的 syn 后,把消息放到 syns queue,回復(fù) syn+ack 給 client,server 收到 client 的 ack,如果這時(shí) accept queue 沒滿,那就從 syns queue 拿出暫存的信息放入 accept queue 中,否則按 tcp_abort_on_overflow 指示的執(zhí)行。

tcp_abort_on_overflow 0 表示如果三次握手第三步的時(shí)候 accept queue 滿了那么 server 扔掉 client 發(fā)過來的 ack。tcp_abort_on_overflow 1 則表示第三步的時(shí)候如果全連接隊(duì)列滿了,server 發(fā)送一個(gè) rst 包給 client,表示廢掉這個(gè)握手過程和這個(gè)連接,意味著日志里可能會(huì)有很多connection reset / connection reset by peer。

那么在實(shí)際開發(fā)中,我們?cè)趺茨芸焖俣ㄎ坏?tcp 隊(duì)列溢出呢?

netstat 命令,執(zhí)行 netstat -s | egrep "listen|LISTEN"

如上圖所示,overflowed 表示全連接隊(duì)列溢出的次數(shù),sockets dropped 表示半連接隊(duì)列溢出的次數(shù)。

ss 命令,執(zhí)行 ss -lnt

上面看到 Send-Q 表示第三列的 listen 端口上的全連接隊(duì)列最大為 5,第一列 Recv-Q 為全連接隊(duì)列當(dāng)前使用了多少。

接著我們看看怎么設(shè)置全連接、半連接隊(duì)列大小吧:

全連接隊(duì)列的大小取決于 min(backlog, somaxconn)。backlog 是在 socket 創(chuàng)建的時(shí)候傳入的,somaxconn 是一個(gè) os 級(jí)別的系統(tǒng)參數(shù)。而半連接隊(duì)列的大小取決于 max(64, /proc/sys/net/ipv4/tcp_max_syn_backlog)。

在日常開發(fā)中,我們往往使用 servlet 容器作為服務(wù)端,所以我們有時(shí)候也需要關(guān)注容器的連接隊(duì)列大小。在 Tomcat 中 backlog 叫做acceptCount,在 Jetty 里面則是acceptQueueSize。

RST 異常

RST 包表示連接重置,用于關(guān)閉一些無用的連接,通常表示異常關(guān)閉,區(qū)別于四次揮手。

在實(shí)際開發(fā)中,我們往往會(huì)看到connection reset / connection reset by peer錯(cuò)誤,這種情況就是 RST 包導(dǎo)致的。

端口不存在

如果像不存在的端口發(fā)出建立連接 SYN 請(qǐng)求,那么服務(wù)端發(fā)現(xiàn)自己并沒有這個(gè)端口則會(huì)直接返回一個(gè) RST 報(bào)文,用于中斷連接。

主動(dòng)代替 FIN 終止連接

一般來說,正常的連接關(guān)閉都是需要通過 FIN 報(bào)文實(shí)現(xiàn),然而我們也可以用 RST 報(bào)文來代替 FIN,表示直接終止連接。實(shí)際開發(fā)中,可設(shè)置 SO_LINGER 數(shù)值來控制,這種往往是故意的,來跳過 TIMED_WAIT,提供交互效率,不閑就慎用。

客戶端或服務(wù)端有一邊發(fā)生了異常,該方向?qū)Χ税l(fā)送 RST 以告知關(guān)閉連接

我們上面講的 tcp 隊(duì)列溢出發(fā)送 RST 包其實(shí)也是屬于這一種。這種往往是由于某些原因,一方無法再能正常處理請(qǐng)求連接了(比如程序崩了,隊(duì)列滿了),從而告知另一方關(guān)閉連接。

接收到的 TCP 報(bào)文不在已知的 TCP 連接內(nèi)

比如,一方機(jī)器由于網(wǎng)絡(luò)實(shí)在太差 TCP 報(bào)文失蹤了,另一方關(guān)閉了該連接,然后過了許久收到了之前失蹤的 TCP 報(bào)文,但由于對(duì)應(yīng)的 TCP 連接已不存在,那么會(huì)直接發(fā)一個(gè) RST 包以便開啟新的連接。

一方長(zhǎng)期未收到另一方的確認(rèn)報(bào)文,在一定時(shí)間或重傳次數(shù)后發(fā)出 RST 報(bào)文

這種大多也和網(wǎng)絡(luò)環(huán)境相關(guān)了,網(wǎng)絡(luò)環(huán)境差可能會(huì)導(dǎo)致更多的 RST 報(bào)文。

之前說過 RST 報(bào)文多會(huì)導(dǎo)致程序報(bào)錯(cuò),在一個(gè)已關(guān)閉的連接上讀操作會(huì)報(bào)connection reset,而在一個(gè)已關(guān)閉的連接上寫操作則會(huì)報(bào)connection reset by peer。通常我們可能還會(huì)看到broken pipe錯(cuò)誤,這是管道層面的錯(cuò)誤,表示對(duì)已關(guān)閉的管道進(jìn)行讀寫,往往是在收到 RST,報(bào)出connection reset錯(cuò)后繼續(xù)讀寫數(shù)據(jù)報(bào)的錯(cuò),這個(gè)在 glibc 源碼注釋中也有介紹。

我們?cè)谂挪楣收蠒r(shí)候怎么確定有 RST 包的存在呢?當(dāng)然是使用 tcpdump 命令進(jìn)行抓包,并使用 wireshark 進(jìn)行簡(jiǎn)單分析了。tcpdump -i en0 tcp -w xxx.cap,en0 表示監(jiān)聽的網(wǎng)卡。

接下來我們通過 wireshark 打開抓到的包,可能就能看到如下圖所示,紅色的就表示 RST 包了。

TIME_WAIT 和 CLOSE_WAIT

TIME_WAIT 和 CLOSE_WAIT 是啥意思相信大家都知道。

在線上時(shí),我們可以直接用命令netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'來查看 time-wait 和 close_wait 的數(shù)量

用 ss 命令會(huì)更快ss -ant | awk '{++S[$1]} END {for(a in S) print a, S[a]}'

TIME_WAIT

time_wait 的存在一是為了丟失的數(shù)據(jù)包被后面連接復(fù)用,二是為了在 2MSL 的時(shí)間范圍內(nèi)正常關(guān)閉連接。它的存在其實(shí)會(huì)大大減少 RST 包的出現(xiàn)。

過多的 time_wait 在短連接頻繁的場(chǎng)景比較容易出現(xiàn)。這種情況可以在服務(wù)端做一些內(nèi)核參數(shù)調(diào)優(yōu):

#表示開啟重用。允許將TIME-WAIT sockets重新用于新的TCP連接,默認(rèn)為0,表示關(guān)閉

net.ipv4.tcp_tw_reuse = 1

#表示開啟TCP連接中TIME-WAIT sockets的快速回收,默認(rèn)為0,表示關(guān)閉

net.ipv4.tcp_tw_recycle = 1

#表示開啟重用。允許將TIME-WAIT sockets重新用于新的TCP連接,默認(rèn)為0,表示關(guān)閉

net.ipv4.tcp_tw_reuse = 1

#表示開啟TCP連接中TIME-WAIT sockets的快速回收,默認(rèn)為0,表示關(guān)閉

net.ipv4.tcp_tw_recycle = 1

當(dāng)然我們不要忘記在 NAT 環(huán)境下因?yàn)闀r(shí)間戳錯(cuò)亂導(dǎo)致數(shù)據(jù)包被拒絕的坑了,另外的辦法就是改小tcp_max_tw_buckets,超過這個(gè)數(shù)的 time_wait 都會(huì)被干掉,不過這也會(huì)導(dǎo)致報(bào)time wait bucket table overflow的錯(cuò)。

CLOSE_WAIT

close_wait 往往都是因?yàn)閼?yīng)用程序?qū)懙挠袉栴},沒有在 ACK 后再次發(fā)起 FIN 報(bào)文。close_wait 出現(xiàn)的概率甚至比 time_wait 要更高,后果也更嚴(yán)重。往往是由于某個(gè)地方阻塞住了,沒有正常關(guān)閉連接,從而漸漸地消耗完所有的線程。

想要定位這類問題,最好是通過 jstack 來分析線程堆棧來排查問題,具體可參考上述章節(jié)。這里僅舉一個(gè)例子。

開發(fā)同學(xué)說應(yīng)用上線后 CLOSE_WAIT 就一直增多,直到掛掉為止,jstack 后找到比較可疑的堆棧是大部分線程都卡在了countdownlatch.await方法,找開發(fā)同學(xué)了解后得知使用了多線程但是確沒有 catch 異常,修改后發(fā)現(xiàn)異常僅僅是最簡(jiǎn)單的升級(jí) sdk 后常出現(xiàn)的class not found。


作者:fredalxin

來源:https://fredal.xin/java-error-check


21ic電子網(wǎng) 即時(shí)傳播最新電子科技信息,匯聚業(yè)界精英精彩視點(diǎn)。
評(píng)論
  • 產(chǎn)品使用18V供電,配套4串鋰離子電池,需要設(shè)計(jì)一個(gè)充電器。因?yàn)檩斎?8V,電池最高 16.8V,壓差僅 1.2V。因?yàn)閴翰钐 J褂瞄_關(guān)型的充電控制芯片不穩(wěn)定。嘗試自行設(shè)計(jì)一個(gè)。整體采用分立三極管 + TL431架構(gòu),分4個(gè)功能單元:使能控制回路、限流環(huán)路、TL431 精密恒壓反饋環(huán)路、PNP 功率管主功率輸出回路;實(shí)現(xiàn)完整鋰電池充電邏輯。使能控制回路按鍵按下:5V 電壓經(jīng) R12 (2kΩ) 送入 NPN 管 Q3 基極,Q3 飽和導(dǎo)通,對(duì)地拉低 R1、R2 組成的分壓控制節(jié)點(diǎn)電位;該節(jié)點(diǎn)直
    southcreek 2026-08-07 13:45 315瀏覽
  • 導(dǎo)語(yǔ)在現(xiàn)代高速數(shù)字電路設(shè)計(jì)中,信號(hào)的完整性已不僅是理想波形推演,而是一場(chǎng)與物理非理想特性正面博弈的工程實(shí)踐。濾波器芯片作為凈化傳輸鏈路的關(guān)鍵屏障,其核心挑戰(zhàn)在于:能否有效識(shí)別并濾除那些隱匿在電平跳變過程中的亞納秒級(jí)瞬態(tài)脈沖干擾,這類干擾持續(xù)極短,卻足以在高速鏈路中引發(fā)誤觸發(fā)。然而,傳統(tǒng)函數(shù)發(fā)生器受限于采樣率與邊沿速率,根本無法忠實(shí)復(fù)現(xiàn)如此狹窄且陡峭的異常波形。針對(duì)此困境,德思特TS-AWG7000系列任意波形發(fā)生器以17 GS/s采樣率與50 ps原生邊沿速度,為瞬態(tài)脈沖提供精細(xì)刻畫,配合SPG
    德思特測(cè)試測(cè)量 2026-08-05 14:06 5瀏覽
  •        很多人只見過封裝在SMD外殼里的小尺寸晶振,卻不知道一顆2016、1612甚至1210封裝的微型石英晶振,從一塊巴掌大的石英原礦,到最終能穩(wěn)定起振的成品,要經(jīng)過十幾道精密工序。它內(nèi)部的石英晶片厚度最薄不到20微米,比普通A4紙的1/5還薄,整個(gè)生產(chǎn)過程里哪怕0.1微米的誤差,都會(huì)直接廢掉整批產(chǎn)品,這也是小尺寸晶振過去長(zhǎng)期依賴進(jìn)口,國(guó)內(nèi)廠商花了十幾年才啃下量產(chǎn)硬骨頭的核心原因。1. 原石定向切割:0.01度的角度誤差都不能有小尺寸晶振的第一步,
    TKD泰晶科技 2026-08-07 08:43 368瀏覽
  •     長(zhǎng)期專注WiFi領(lǐng)域,也算是行業(yè)老兵了!同行閑聊中,時(shí)不時(shí)能提起我和我們!從疫情起,國(guó)產(chǎn)替代風(fēng)生水起,起起落落,大浪淘沙,生存下來的都是強(qiáng)者!    WiFi模塊應(yīng)用廣泛,對(duì)于高端市場(chǎng)和特定市場(chǎng),要求WIFI模塊需要過CE/FCC之類的認(rèn)證,也就是說沒有認(rèn)證的模塊,不具備導(dǎo)入產(chǎn)品設(shè)計(jì).接下來就和大家聊聊認(rèn)證模塊選型參考!    WIFi模塊硬件方面主要考慮以下九點(diǎn)特性:    1
    納拓科技 2026-07-31 17:56 252瀏覽
  • 在物聯(lián)網(wǎng)從“萬(wàn)物互聯(lián)”邁向“萬(wàn)物智聯(lián)”的進(jìn)程中,LTE Cat.1憑借其在速率、成本與網(wǎng)絡(luò)覆蓋之間的完美平衡,正成為中低速物聯(lián)網(wǎng)市場(chǎng)的絕對(duì)主力。隨著2G/3G網(wǎng)絡(luò)的逐步退網(wǎng)以及新國(guó)標(biāo)對(duì)終端設(shè)備智能化、定位功能的強(qiáng)制要求,Cat.1模組迎來了爆發(fā)式的增長(zhǎng)窗口。在這一關(guān)鍵節(jié)點(diǎn),基于華為海思Hi2131芯片設(shè)計(jì)的LTE Cat.1模組,憑借其在能效、射頻、架構(gòu)及物理規(guī)格上的底層創(chuàng)新,成功打破了“高性能必高功耗”的傳統(tǒng)魔咒,為行業(yè)提供了極具競(jìng)爭(zhēng)力的連接最優(yōu)解。核心技術(shù)優(yōu)勢(shì):重塑Cat.1能效與連接標(biāo)桿海
    用戶1778981989717 2026-08-05 21:04 166瀏覽
  • 摘要在防爆電氣設(shè)計(jì)中,只參照芯數(shù)選型而忽略額定載流量,長(zhǎng)期滿負(fù)荷運(yùn)行會(huì)出現(xiàn)插頭發(fā)熱、接觸面氧化、IP67 密封受熱老化等問題。結(jié)合常用 3 針 3 孔、4 芯、5PIN、8PIN 圓形防爆連接器,制作分級(jí)電流參數(shù)對(duì)照表,區(qū)分冷壓免焊接、焊接兩種接線結(jié)構(gòu)的安全載流數(shù)值,設(shè)置合理電流冗余系數(shù),搭配使用環(huán)境修正參數(shù),規(guī)范防爆接近開關(guān)連接器、防爆法蘭插座的選型計(jì)算方式。關(guān)鍵詞圓形防爆連接器,載流參數(shù)表,防爆法蘭插座,防爆端子接頭,IP67 防爆防水接插件1 產(chǎn)品概述圓形防爆連接器觸點(diǎn)載流能力由插針直徑、
    kyfbest科迎法電氣 2026-08-03 09:18 128641瀏覽
  • ?摘要:低價(jià)大流量卡正全面退市,政策收緊已成定局。面對(duì)傳統(tǒng)號(hào)卡的不確定性,隨身WiFi憑借穩(wěn)定連接、多設(shè)備共享、獨(dú)立設(shè)備和靈活套餐等優(yōu)勢(shì),成為務(wù)實(shí)可靠的備選方案。1、流量卡黃金時(shí)代要結(jié)束了通信行業(yè)正迎來一場(chǎng)前所未有的“地震式”調(diào)整——曾讓無數(shù)用戶追捧的低價(jià)大流量卡,正在全速退出各大平臺(tái)。這早已不是一次普通的競(jìng)合,而是一場(chǎng)趨勢(shì)性的行業(yè)洗牌?;赝^去,19元200G的神卡,那時(shí)真是“睡著都能笑醒”,便宜到不敢相信,爽到忍不住炫耀。那些日子,好像隨便刷、隨便看,流量自由觸手可及。可如今,回頭再看,那種
    愛上電路設(shè)計(jì) 2026-08-03 10:21 128864瀏覽
  • 在前六期中,我們已經(jīng)分別討論了 CRA 的適用范圍、整體影響、漏洞通報(bào)義務(wù)、風(fēng)險(xiǎn)評(píng)估與技術(shù)文檔證據(jù)鏈、第三方組件與 SBOM 供應(yīng)鏈治理,以及產(chǎn)品上市后的支持期、安全更新、用戶說明和終止支持管理。到這里,企業(yè)已經(jīng)能夠回答幾個(gè)核心問題:產(chǎn)品是否落入 CRA 適用范圍,產(chǎn)品由哪些組件構(gòu)成,企業(yè)如何證明自己在設(shè)計(jì)、開發(fā)和上市前采取了必要的安全措施,以及產(chǎn)品上市后如何持續(xù)維護(hù)和安全下線。但對(duì)于真正準(zhǔn)備落地 CRA 合規(guī)的企業(yè)來說,還有一個(gè)更現(xiàn)實(shí)的問題:CRA 的法規(guī)條文相對(duì)原則化,企業(yè)應(yīng)當(dāng)如何把“網(wǎng)絡(luò)安
    虹科云科技 2026-08-03 16:51 147468瀏覽
  •                                                                        
    廣州鐵金剛 2026-08-06 17:44 98592瀏覽
  • 摘要防爆自控系統(tǒng)同時(shí)布設(shè)本安信號(hào)、工業(yè)總線、動(dòng)力供電三類線路,僅依靠標(biāo)識(shí)標(biāo)牌管控插接極易出現(xiàn)人為錯(cuò)插問題,高壓動(dòng)力回路竄入本安弱電回路會(huì)突破安全柵限能標(biāo)準(zhǔn),產(chǎn)生點(diǎn)火風(fēng)險(xiǎn)。依托 A、D、K 標(biāo)準(zhǔn)化機(jī)械防呆編碼體系,搭配護(hù)套顏色區(qū)分管理,適配 3 針 3 孔免焊接冷壓增安型防爆航插、5PIN 總線防爆航空插頭、8 芯焊接防爆法蘭插座的選型使用,從物理結(jié)構(gòu)層面杜絕防爆接近開關(guān)連接器、防爆傳感器航插接頭混用插接問題,補(bǔ)齊防爆系統(tǒng)被動(dòng)安全防護(hù)體系。關(guān)鍵詞圓形防爆連接器,防呆編碼防爆航插,防爆航空插頭,防爆
    kyfbest科迎法電氣 2026-07-31 18:29 407瀏覽
  • 文:杜杰編輯:侯煜當(dāng)?shù)貢r(shí)間7月28日,美國(guó)特朗普政府落地最新科技封鎖政策,美國(guó)聯(lián)邦通信委員會(huì)(FCC)正式更新《受管制清單》,新增兩大類設(shè)備——境外生產(chǎn)的先進(jìn)機(jī)器人設(shè)備、境外生產(chǎn)的聯(lián)網(wǎng)電力逆變器。FCC在官方情況說明書中明確,該類境外制造產(chǎn)品,“會(huì)對(duì)美國(guó)國(guó)家安全或美國(guó)民眾的人身安全構(gòu)成無法承受的風(fēng)險(xiǎn)”。本次新規(guī)設(shè)置明確豁免機(jī)制:經(jīng)美國(guó)國(guó)防部(DoW)、電力逆變器品類經(jīng)美國(guó)國(guó)土安全部(DHS)審核并授予“有條件批準(zhǔn)”,認(rèn)定對(duì)應(yīng)設(shè)備品類不存在重大安全風(fēng)險(xiǎn),即可獲得準(zhǔn)入豁免。同時(shí)政策嚴(yán)格執(zhí)行新老劃斷原
    華爾街科技眼 2026-08-03 21:28 324瀏覽
  • 在EMC測(cè)試過程中,傳導(dǎo)發(fā)射(Conducted Emission,CE)超標(biāo)是工程師最常遇到的問題之一。更令人頭疼的是,同樣的超標(biāo)曲線背后,可能對(duì)應(yīng)著完全不同的干擾機(jī)理:有的是差模噪聲沿電源回路傳播,有的是共模電流通過寄生路徑耦合,還有些問題甚至并非來自電源本身,而是負(fù)載、電纜布局或接地結(jié)構(gòu)引起的連鎖反應(yīng)。 · 150kHz~1MHz 超標(biāo):多為差模噪聲為主,干擾沿火線-零線回路傳輸。 · 1MHz~30MHz 超標(biāo):通常共模噪聲占主導(dǎo),干擾通過火線/零線對(duì)地回路傳播。 如果條件允許,用電流探
    譽(yù)磁電磁兼容EMC 2026-07-31 18:45 501瀏覽
  • 做藍(lán)牙音箱的工程師大概都碰過這個(gè)局面。產(chǎn)品要連手機(jī)放歌,要本地播開機(jī)提示音和按鍵音,還要接 App 做配網(wǎng)和狀態(tài)上報(bào)。三件事拆開,早先的常規(guī)做法是音頻藍(lán)牙一顆料、數(shù)傳藍(lán)牙一顆料、本地播放再掛一顆小 MCU 加一片 Flash。板子越畫越大,BOM 越算越貴,待機(jī)電流和固件工作量也跟著漲。WT2605C 出來以后,這套需求可以集成到一顆芯片,就是 WT2605C-32N,該芯片采用QFN32 封裝,4×4 毫米,把音頻藍(lán)牙、BLE 數(shù)傳和 MP3 本地播放三樣全包了。對(duì)藍(lán)牙音箱來說,最實(shí)在的好處就
    唯創(chuàng)知音語(yǔ)音芯片 2026-08-06 15:14 267瀏覽
我要評(píng)論
0
點(diǎn)擊右上角,分享到朋友圈 我知道啦
請(qǐng)使用瀏覽器分享功能 我知道啦
主站蜘蛛池模板: 烧饼皇后| 九重紫电视连续剧免费看| 布兰妮不雅照| 渔夫荒野| 两天一夜20110529| 一闪一闪亮晶晶 电视剧| 都市妖孽战神林齐 小说| 慕海情深 电视剧泰剧在线观看| 伦理《法国空乘13》| 龙梅子mv| 肯尼迪头盖骨飞了gif图| 哇嘎电影免费观看国语高清 | 无颜之月1到5集全集观看电视剧| 乐视网甄嬛传全集| 漂亮小瘦子7电视剧免费观看| 东北话版蜡笔小新| 重庆绝杀上港| 菠萝菠萝蜜电影| 顶楼的大象 百度影音| 风中奇缘电视剧全集| 杨春霞乱云飞| 红海行动2蛟龙行动电影在线观看 天堂之吻电影版在线看 | 父女版因为爱情| 邻居也疯狂高清完整版| 《Wan etd 西部通緝令》| 花样男子大结局| 一个好汉二个帮| 樱桃红之袖珍电视剧全集| 囧妈电影完整版免费| 金银悔5普通话版免费播放| 卢靖姗太强了| 月升沧海电视剧| 和部长出差日韩电影| 怦然心动第三季全集免费观看| 让子弹飞未删减高清完整版| 带队横扫全球:电竞女王全集免费| 危险关系| 特警力量全集观看| 血战台儿庄高清| 风水讲座| 绝地战警3| 多大点事| xl司令动漫第一季全集在线观看免费 | 我叫白小飞第二季| 风尘女画家| 《一对二》韩剧姜汉娜免费观看全集| 360大佬爱上我免费观看| 男媒婆全集在线观看| 水管维修工韩国免费在线| 三十而立剧情介绍| 阿凡提的故事电影| 长风镖局情人保镖| 加油菊花国语| 武山县| 林师傅在首| 龚《新金梅》| 工作女郎克拉拉测试视频原版| 喜羊羊之异国大营救| 吕良伟电影全集国语| 爱我几何无删减版| 真命天子朱元璋在线观看| 不扣钮扣的女孩| 鸡婆大师| 余炜南昌| 《交换上司的秘书2》| 飞驰人生1免费观看全集| 美少女战士免费观看| 假面超人全集| 电视剧相逢时节| 罗刹海市刀郎原唱完整版| 《法国空乘5》在线观看| 韩国情书复古舞| 时来运转国语高清| 周弘版《村枝》正版下载| 不思议游戏全集| 夺命金电影| 兔子先生视频第一季免费观看全集高清 | 我的丑娘续集| 春风定风波全集免费播放在线观看 | 法证先锋5大结局| 传闻中的陈芊芊在线观看| 女超人麦乐迪电影无删减| 鬼吹灯湘西怒晴| 今日的霸道股评| 野花日本免费高清7| 平凡之路电视剧免费| 辛福爱人| 军事不当行为电影完整版免费观看| 扫黑行动在线观看免费高清完整版| 云上的日子在线| 男女一起愁愁愁免费网站| 公与3个媳HD播放| 米尼的第一次全集免费观看| 灵域4 动漫| 我的上司尺码是XL类似| 夏家三千金第三部| 水润女人电影在线观看| 开心鬼撞鬼迅雷下载| 江湖夜雨十年灯电视剧| 维修工与丰腴女子中文字幕电影| 五哈第二季| 玉蒲团之| 激战丛林电影完整版在线播放 | 搞笑一家人韩国版百度影音| 高压监狱法版在线| 百年孤独 电影| 新人类毒医肥尸完整版免费观看| 非诚勿扰聂倩| 卖房子的女销售3| 宿敌在线观看| 吸血鬼的拥抱| 给我免费观看片在线电影的| 高压监狱1时43分多少| 《爱你的基蒂 第三季》| 保罗1—3| 恐怖照相馆| 恋恋维纳斯电视剧泰剧免费观看| 1—5全集免费| 在异世界迷宫开宫口樱花| 花样年华在线观看| 黑崎先生停不下来的专一之爱| 火舞风云电影粤语版| 孩奴全集在线观看40| 好奇姐妹漩漩和聪聪| 摩登保镖国语完整版在线观看| 超越情感| 冷风暴电视剧| 长乐曲电视剧免费播放| 韩剧《姐姐的闺蜜》免费观看| 快乐大本营2017免费观看完整版| 朱朱宠物| 暮光之城女主克里斯汀| 社长夫人用身补偿客户怎么说| 儿媳妇你里面好暖| 牙医姐妹1986日语版| 孽欲隔墙花| 瑜伽老师诱惑2| 外太空杀人小丑| 天美影院电视剧在线观看免费视频| 单身妈妈| 《风流女管家》电影在线看免费版| 全红婵夺冠后被英国选手熊抱离场| 侄女开发日记1-6季| 罗密欧与朱丽叶电影| 男女愁愁愁在线观看免费| 穆桂英挂帅花絮| 法国色情巜野性无蚂| 悲伤时爱你| 邻家娇妻| 真实伦 乱| 我们在线观看免费BD视频| 铁蹄下的村庄| 门当户对相亲节目| 和嫂子一起同居的日子电影| 樱花动漫鬼灭之刃游郭篇第五集| 大明星在线播放完整版电影| 保山在线| 电视剧真心英雄全集免费观看| 汉尼拔第四集| 人蛇大战1| 《公的浮之手中字》2023| 《红海行动》| 怀念战友刀郎| 妻子的妈妈双字ID| 鬼骨场国语| 爱情真善美40| 色即是空第一部| 混战两姐妹4免费观看中文版| 斗破苍穹缘起在线观看| 妻子的背叛动漫第1季| 杰西.简壮志凌云| 电影倩女幽魂2| 青年医生演员表名单| 强伦轩办公室女教师HD| 维密天使内衣秀2015| 善良的小妈| 马腾你别走未删减| 办公室风云在线观看完整版| 梦想光荣| A计划电影| 类似周末同床的电影| 韩剧三个爸爸一个妈| 飞屋环游记在线观看| 古惑仔全集3| 渔夫的荒野史记高清下载| 妖精的尾巴45| 日本空姐2019 | 使徒行者3剧情| 护士凯登电影| 电视剧几度夕阳红| 蛇姬恋电影完整版免费观看| 动漫裸体无遮挡屁股| 夫妻本是林中鸟短剧全集免费观看| 打雀英雄传粤语| 柬埔寨公主用中文拜年| 打蛇电影完整版免费观看国语| 一夜之间| 翘臀嫩美少年被调教灌尿| 厨王电视剧| 轩辕剑之天之痕全集| 乾隆大帝粤语| 高清《女神宿舍的管理员》| 高清《通往你的地图》电影| 浪客剑心追忆篇免费观看完整版| 魔鬼恋人| 坎贝奇品味人生三部曲在线观看 | 电影卖春| 熟睡的继拇HD| 孙颖莎赛后瘫倒原因出炉| 秀逗魔导士第四部| 打扑克视频| 《世子无双》短剧| 向涟苍骑士献上纯洁 | 漂亮的保姆五完整版免费| 电视剧蓝狐| 男生和女生愁愁愁电视剧在线观看30分 | 相亲相爱一家人| 降世神通第四季| 做aj的剧免费观看| 聊斋之艳蛇电影| 恋夜秀手机视频uc| 宴遇永安 电视剧 在线观看| 《瑜伽的狂热》完整版在线观看| 乞救之噬,覆食殆尽未删减 | 你微笑时很美免费看| 幸福里的故事| 鼓浪屿之波原唱| 女版战狼6免费播放国语版| 邪王追妻短剧全集| 名字打架| 《时间静止》完整版| 他为什么依然单身电视剧| 高清《死侍3》在线观看| 我的奴隶| 过江龙洪金宝| 360大佬爱上我第四季 | 手机免费观看狂飙追剧| flower第二季无马赛真人版| 异种2015| 白毛女在线观看| 韩国三级维修师傅的艳遇 | 平凡的世界电影| 少帅传奇48集电视剧| 秘密搜查官在线观看完整版免费 | 俄罗斯hd| 光头强的妈妈是谁| 欲望免费观看| 女友的妈妈双字ID怎么设置| 桃花请缨免费看全集| 通灵王国语版| 战狼6免费下载完整版国语高清| 花便当未删减| 《漂白》电视剧在线播放 | over flow 第一集| 西出玉门电视剧免费看| 不死者之王在线观看| 落魄琉璃川1-2集免费| 刘亦菲放飞美丽mv| 密挑aV| 胭脂第45集电视剧在线观看| 真爱惹的祸| 需要爸爸种子未删减| 妻子的校友 电影| 电影高朋满座| 韩剧特邀外卖员| 梦断乐缘堂| 孤男寡女免费观看电视剧下载 | 蒂凡尼的早餐迅雷下载| 诱人的女邻居BD在线观看| 乌克兰娃娃脸女孩| 《特殊的汽车销售》中文版| 奇异博士3电影免费观看| 遮天动漫在线观看高清完整版| 吗吗的朋友e| 女黑侠黄莺国语| 不怕开水烫| 黑白配高清国语免费观看| 电影美容室的特殊待遇7| 监狱不设防百度影音| 善良的嫂子完整视频| 按摩院里的黑人按摩师| 王牌大间谍| 名门望族粤语| 长岛县| 加勒比女海盗1在线观看| 恋恋维纳斯泰剧| 第二十二条婚规35| 爸爸的种子电视剧在线观看| 蔡李佛拳下载| 南海富婆玲姐| 相约青春 电视剧| 女超人麦乐迪免费浏览观看完整版网站 | 姗姗来了| 杀破狼贪狼免费观看| 棋魂国语版| XL司令全集在线观看免费| 激情燃烧的岁月主题曲| 新世界孙红雷电视剧| 招远市| 男按摩师影院在线观看| 《17岁》电影陈修如| 降央卓玛歌曲大全播放| 隐形的帽子在线观看完整版免费高清| 皇太子的初恋| 皋兰县| 赤血龙鳞| 如此婚姻电视剧免费观看| 再见总有一天电影完整版在线观看| 第五空间电视剧下载| 混血儿的摇篮| 上海滩简谱| 禁忌1980满天星| 原始女人| 哈利波特1国语版免费| 蛇姬恋没删减| 锦月如歌电视剧免费观看全集| 诱人的岳HD中文字幕| 深夜的濡恋频道| 泷泽萝拉在线观看| 猛男诞生记下载| 纪连海 灌篮高手| 7巴字开头中字| 倚天屠龙记2阴阳圣火令最新| 金瓶梅电视剧下载| 老女人免费观看高清电视剧大全| 妖精的尾巴100| 爱情回来了结局| 飞哥与小佛全集免费观看| 落花时节又逢君电视剧免费播放| 女长官的体罚1-43集介绍| 森林狼vs火箭| 插曲的痛第60集免费观看高清强制| 电视剧华丽一族| 大秦帝国第二部高清| 高清《幽灵狙击手》电影| 白蛇:缘起电影| 家属动漫完整版在线观看| 战狼2免费| 问心电视剧免费观看| 华晨宇 假行僧| 余温陷阱短剧免费观看| 女军医满天星资源| 湖南黑山羊价格| 《北越暴行》2在线观看| 梦戏巴黎电影完整版高清在线观看| 青蛙王子| 晚娘 电影完整版| 草莓之夜电影版在线观看| 卖车的女销售2电影| 王向阳书法| 杨澜 王菲| 法国空乘五在线观看| 隋唐英雄111| 《卖百科全书》播放| 巡回检察组全集免费观看西瓜| 声音的战争导师| 郭奶奶相声网| 哈哈哈哈哈 第六季| 莫陌2微电影完整版| 合肥话评书| 朋友交换| 辣警狂花1国语版免费观看完整版| 黑社会之龙城岁月| 电视剧亲情保卫战| 瓜达卢佩玫瑰无删减下载| 少女免费版在线观看第6集| 嘉阳之夜| 新洗冤录| 海泽·摩尔暗黑满天星电影| 聊斋志异之连琐| 秘密花园韩国版| 夏家三千金第三部| 已婚妇女的下午中字| 葛雷奥特曼国语全集| 曹查理 风流电影| 保时捷货拉拉| 三年中文观看免费国语| 记忆的静物免费观看完整版| 为了爱离开你| 美国新版娃娃脸9| 圣托贝热女孩1982国语版免费观看| 十七岁电影免费看| 假面骑士REVICE第五集| 青春禁区视频在线观看直播免费| 《女体铳》高清完整版| 老严有女不愁嫁片尾曲| 魔兽主页| 战狼8整版国语免费观看姐弟| 夏家三千金全集下载| 偏偏喜欢你 电视剧| 丧家之女| 木下檀檩子在线观看| 杨幂的421事件| 缺宅男女大结局| 鬼灭之刃免费看| 麦迪乐女超人在线观看完整免费高清原声满天星百度云 | 好妈妈完整版在线播放| 艾曼纽3| 独刺电视剧全集36集免费观看| 吸血鬼检察官| 梅州民生820| 凪光K罩杯电车模特经理电影| 超人变身| 电视剧永不回头免费观看全集高清版| 罚罪电视剧全集免费播放| 俄罗斯电影《绣感》在线观看| 王的女人谁敢动| 咋们结婚了吧| 破密电视剧40集免费观看全集| 血恋3在线观看完整免费高清原声满天星奔跑吧 | 男生女生一愁愁愁电视剧在线观看大片| 私人女性监狱miande| 英雄有约| 小沈阳和他媳妇唱的歌| 电影巜瓜达卢佩的玫瑰| 入室暴行中文版免费观看完整版| 桃色香居下载| 桃花马请长缨短剧免费| 湘潭县| 上门推销避孕套当场试货电影 | 谍战深海百度影音| 超级整蛊霸王国语版| 黛比浪漫女家教台剧在线观看 | 普法栏目剧听见凉山6| 浪漫女家教| 金梅瓶1至5集免费杨思敏| 惊变1996完整版| 男男同志王伦宝| 美丽教师未删减完整免费观看| 《激战丛林》电影观看| 天使奶奶| 《梦中的那片海》电视剧| 天美麻花mv免费观看电视剧视频下载| 水手服电影| 左撇子艾伦电视剧| 电影战狼四免费观看| 走火电视剧40集免费完整版| rbd-509| 特殊游泳课在线观看| 神隐电视剧1-40集免费看| 总裁的独家私宠短剧全集| 牝教师4在线观看| 守护解放西纪录片| 苹果电视剧免费观看全集横屏| 星克莱尔| 镖行天下前传| 环太平洋 电影天堂| 站起来再来一次第30集剧情介绍| 舍我其谁| 理想之城在线观看免费完整版| 《overflower》第一季马赛免费观看 | 多伦县| 大理寺少卿电视剧| 不要对我撒谎| 高清《顽主》| 小蓝视频勇敢做自己| 橘梨纱 快播| 总裁的独家私宠短剧全集| 法国女版顶级飞行员哪里看| 王楚钦张本智比赛视频| 绝伦人妻的一夜日本电影| 法国空姐2008满天星法版:星辉照耀下 | 倒霉爱神下载| 从天而降的女子从2楼掉下来了| 大牛影库战狼6在线播放| 有情饮水饱国语版| 一天内全球多地发生客机事故| 康熙谈靘谭1一10太后剧情解析| 心战粤语版| 母亲的职责电影韩剧完整免费观看| 美丽小蜜蜂3美丽人生| 公主嫁到大结局| 无名d罩杯美女| 女子护卫队1973满天星免费观看| 假面骑士欧兹免费观看| 爱情悠悠药草| 斗破苍穹年番第56集免费观看 | 假面骑士极狐免费观看完整版中文| 禁止想象电影完整版| 私人女性监| 小欢喜2| 青青河边草高清免费版新闻刘涛| 人猿泰山hr版的女主演| 孤注一掷2023电影完整| 黄奕演过电视剧| 美容院的待遇5中文| 电视剧养女全集| 宁城县| 郭德纲新济公传| 站着再来一次第26集剧情介绍| 普京呼吁纳卡停火| 牙医姐妹在线看完整版| 僵尸之地国语| 战狼六欧美版在线观看| 鲸鱼向渔民求助| 《纯情罗曼史》| 棘手狂情电影完整版在线观看 | 水浒传25| 免费插曲完整版在线观看| 人猿泰山1995在线观看完整版| 花的勇气ppt| 权宠电视剧免费观看全集高清| 陆小凤张智霖| 熊出没回家过年| 《女特警满天星版》在线电影| 女子自卫队满天星免费观看中文版| 少年包青天1高清| 大宋少年志1免费观看| 巴东县| 因父去世休假被辞| 社会图片| 混合宿舍2| 治狐臭偏方| 高压监狱2完整免费高清观看| 青春四十电视剧| 火影忍者国语版全集高清优酷| 隔壁邻居很美味电影在线观看免费高清 | 电视剧雾里看花在线观看| 初音未来歌姬计划2pc| 月饼来历| 王刚夜幕下的哈尔滨| 大牛战狼6免费观看高清完整视频下载| 绽放许开心电视剧全集免费观看| 相门嫡女全集免费| 一家4口换着玩| 反黑路人甲粤语| 斗罗大陆第206集免费观看| 女子特警队全集| 电影美容院的待遇| 恋爱结婚国语| 盖世英雄方世玉电影| 2对1:女性3对1体检| 翻斗鞋柜的安装视频| 《卿本佳人》李月仙| 战狼6在线观看完整免费| 春闺梦里人电视剧| 恋恋不忘的我们综艺免费观看| 恋恋不忘全集在线观看| 乐麦迪在线| 小蓝在线播放| 《满天星女狱警》| 年轻人到底有多爱辣条| 法国女超人免费| 《隋唐英雄传》| 禁忌4年转一代禁忌| 山海情全剧免费观看| 白蛇后传剧情介绍| 女教师被入侵| 身在其中在线观看| 三级片善良的同学| 漫画威龙之大话特务在线观看| 法医秦明| 漫城电视剧免费观看全集高清| 年轻漂亮的邻居瘦子4| 宾馆高清野鸡激战| 我爱你中国伴奏下载| 到底是谁出卖了毕福剑| 高清野党| 需要爸爸播种在线播放| 倔强驱魔人の花子在线免费观看| 杀手阿一| 老版肉蒲团| 360大佬爱上我第四季| 钟点工们电视剧| 2012电影在线观看神马影视| 和部长一起去出差旅电影叫什么名字 | 欧洲少女16集最后一集剧情介绍大全 | 成人版泰坦尼克号叫什么名字| 3d柔铺团之极宝乐鉴宝鉴电影中文在线观看| 乡村爱情第三部全集| 蝴蝶效应2电影完整版观看| 复仇者联盟 人人影视| 鹰什么大队| 龙门镖局哪个台播| 美国电影保罗与芭芭拉1984| 女教师白洁张敏玩交换| 岳飞传刘兰芳| jizzwu| 斗罗大陆第4部终极斗罗| 电视剧夫妻密码| 离人心上番外| 铿铿锵锵在线看免费观看 | 借枪在线观看| 鼠来宝3电影完整版| 《卖保险套销售员》导演麦金| 水手服饲养120分钟原版| 隋唐英雄68| 怪奇笔记电视剧免费观看| 人皮灯笼在线观看| 丰满的女学生三级| kyadenkloss无码HD| 中华大丈夫高清| 黑白配HD1080免费全集| 三生有幸遇见你免费观看西瓜网| 我们都要好好的| 绝密543部队免费观看| 《姐妹牙医》完整版在线观看免费播放 | 女兵酷刑性暴行电影| 铁石心肠2019免费观看全集| 少年派2免费观看全集| 国风按摩院1-5季顺序| 波斯拉病毒| 契约结婚| 爱不爱都是错| 超市店员制伏行凶者现场曝光| 今夜无人入睡大牛电影高清手机免费| 韩国电影r在线共食| 高清《潜渊》电视剧全集免费观看 | 商务旅行2019版免费观看| 王牌部队在线观看| 需要爸爸的种子免费观看电视剧意大利| 猛士极品FREEDOM| 沉默的羔羊香港版| 女超人免费完整版满天星| 壮硕军警猛男高H| 安拉拉斋电影版免费看| 人间大炮| 秘密爱情| 东京塔之越南女子别动队完整版 | 不能说的秘密| 我叫赵甲第免费观看| 《渔夫的荒野史记》在线观看免费| 束缚游戏在线| 百万日元的女人们| 上流社会韩剧电影完整版免费观看| 只手遮天九千岁1到100集| 哇嘎电影免费高清在线| 瓦噶黄色电影| 赘婿全集免费观看| 陷入热恋的我们在线观看| 电影欢乐英雄| 塞罗奥特曼电影版| 私人女性监狱电影在线观看| 鸭王2迅雷下载| 《亢奋》| 高清《最强大脑 第十三季》| 太太度假时电影| 姐妹牙医在线观看高清免费版| 战国电影| 人妻女警官痴汉电车在线| 新月格格电视剧全集播放免费观看| 孩奴全集在线观看40| 《激战丛林》完整版播放在线观看| 篮球少年1| 樱井梨亚| 阴阳镇怪谈在线观看| 拍的不错| 谈判官电视剧免费观看完整版| 女子当众撩衣给男友喂NAI| 灰姑娘满天星版在线观看| 皓镧传免费观看| 西安地铁保安女子完整版| 特殊美容室待遇.7| 爱我几何完整版在线播放免费| 玉米男孩| 斩神15集全集免费看完| 终极一家3部全集| 家庭分歧麦乐迪| 漂亮瑜伽4在线观看| 斗罗大陆第161集免费观看| 夏娃的丑闻| 高清《恶之华》电视剧| 《花子vs倔强驱魔师》第1集免费观看| 美国灭火宝贝2| 判处勇者刑未删减| 快乐之家1980意大利版| 爱情睡醒了21| 偶像运动会120725| 白峰电影全集免费全集| 《色戒》电影在线观看| 十面埋伏在线观看| 流浪汉电影| 玩偶游戏第二部| 禁忌1980满天星凯·帕克| 爱我几何免费完整版多长| 电视剧我要和你在一起免费观看全集| 沉香如屑60集全免费看| 同桌露出了她粉嫩的那一个| 灌南县| 美国一级伦理巜生殖按摩| 翁虹电影全集| 东北大叶芹的功效| 最后的希望| 花琉璃轶闻免费观看全集| 麦乐迪家庭矛盾在线播放| 绝密飞行| 出世就逆天了| 电视剧使命全集| 丰县新闻| 女超人满天星版麦乐迪马克斯| 急诊护士电影完整版在线观看| 卢靖姗回应顺产36小时言论| 浪客剑心追忆篇免费观看完整版| 致命id百度影音| 金梅瓶之爱奴1在线观看| 女儿国3在线观看免费版高清,挡不住的思念电影免费观看 | 朋友的妈妈2020中字| 高清《飓风营救1》完整版| 星克莱尔合集免费观看完整版| 满清禁宫奇案百度影音| honeygirl| 君岛美绪电影在线观看| 強暴處女系列1~12| 东京漂移| 乘风踏浪 电视剧| 忧郁的蓝色手机论坛| 密挑在线观看| 满天星电视剧全集| 情深深雨蒙蒙全集高清| 小草进城电视剧全集免费观看| 牙医姐妹1986完整版手机在线观看 | 吸血鬼猎人d有几部| 君岛美绪电影在线观看| 牝教师在线免费观看| 学校怪谈| 灵蛇爱泰剧| 古剑奇谭电视剧剧情介绍| 1986《牙医姐妹》| 木下檀檀子《女邻居》| 请做我的奴隶| 禁忌II| 希岛爱理| 《朋友夫妻:交换4》韩国| 高清《美景之屋4》完整版在线观看 | 禁止的爱:善良的小姨子| 中华之剑电视剧全集免费观看| 奇妙发型屋| 电影《灭火宝贝1》免费观看灭| 平凡的世界 电视剧| 《伊藤润二惊选集·富江》| 你是我爱人电视剧全集| 丫鬟逆袭全集免费| 俄罗斯美女学院第一季完整版| 星客来尔迷宫| 聊斋艳谭之幽| 校墓处1| 两小孩抢秋千 双方家长大打出手| 斗破苍穹年番第56集免费观看 | 老女人免费观看高清电视剧大全| 屏幕放大器多少钱一个| 哇嘎高清完整视| 夏目彩春全部作品| 铃原エミリ| 龙珠国语版| 长腿校花无力呻吟娇喘的视频| 禁忌女孩第1季| 激战丛林电影在线观看| 没落要塞| 黑白潜行免费观看高清| 风暴西瓜在线观看免费完整版| 皇帝心仙人| 孙卓被拐案2名人贩子获刑| 特邀外卖员免费在线观看| 白色月光在线电视剧免费观看| 东京异种 电影| 白山市| 酒店1到50集免费观看| 华灯初上第三季电视剧免费观看| 消失的她完整版| 娱乐圈顶流全集免费| 电影《美容院的特殊待遇》纹身女演 | 五等分花嫁| 我爱美女| 外出免费观看| 王牌对王牌第九季免费观看完整版 | 尖峰时刻2国语版| 捏造未删减| 迷你小公主| 日本JiZZ| 《需要爸爸播种子》高清完整版免费在线观看-电影频道 - 光棍影院 | 银魂262| 恋童电影全部免费播放| 先锋影音资源2中文字幕| 朴诗妍《爱的释放》电视剧免费观看| 同学的母亲伦理国语在线观看 | 狂飙免费观看完整电视剧| 金瓶梅在线播放| 锁春宵短剧全剧免费观看| 二人台小寡妇上坟| 渡情原唱| 新白娘子传奇免费50集| 仓田真央| 四川频道| 应召女郎秘密日记| 葡萄美酒夜光杯的下一句是| 《overflower》动漫全集免费| 369你懂的电影永久入口| 除却巫山| 熊孩子惨案| 家有虎妻 电影| 美国往事| 电视剧《薄冰》免费观看| 满天星电影在线观看完整| 倔强驱魔人の花子在线免费观看| 狂飙全集免费高清| 张雨筱人体| 明星有戏寻找唢呐王| 卜案下载| 电影《私人女性监狱》HD在线观看,高清完整版美国伦理片,伦理_OK电影天堂 | 陈明月微博| 妻子的陷阱大结局| 花木兰字幕| 惜花芷电视剧| 高清东北警察故事3未删减| 国风按摩院1-5季最新更新内容| 后营露宿第8集| 互换青春| 璀璨人生有多少集| 还珠格格第一部高清| 泽塔奥特曼动漫| 插曲的痛第60集| 《我的身体》1985年帕尼怀尔| 火遮眼电影| 《17岁》电影陈修如| 穿靴子的猫1免费观看完整版 | 做aj的免费视频电视剧大全| 妖舞耳机| 花木兰2动画片国语| 巡回检察组43| 我的大旧父母| 日本战狼10免费完整| 战狼6免费观看在线成人版| 嫁错豪门嫁对郎短剧在线观看| 世界上毛最多的人| 真相2021电视剧在线观看| 玩弄我的三位美艳馊子在线电影| 初代奥特曼国语全集| 《激战丛林》完整版在线观看电影| 女员工抵不住部长的口才电影| 群星闪耀时在线观看| 高清《英雄》在线观看完整版| 至上之法| 再次我的人生第二季| 电影魔镜号中文字幕| 黄色仓库在线观看天堂| 海军陆战队员| 密室大逃脱第四季免费观看完整版 | 人世间全集免费观看| 京山县| 售楼小姐韩国| 影音先锋中文字幕资源| 美国总统就职典礼直播| 高清《爱上朋友的母亲》电影| 巴黎春梦| 三十而已在线观看免费| 补课台湾下雨| 金银梅5一10普通话版免费观看 | 荫道BBWBBB高潮潮喷| 斯托雅《壮志凌云》| 《妻子3》免费高清电视剧在线观看| 非礼勿视2|