久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線(xiàn)實(shí)戰(zhàn)洞察。

JVM內(nèi)存溢出排查:數(shù)據(jù)庫(kù)連接對(duì)象堆積與連接池泄漏實(shí)戰(zhàn)

JVM內(nèi)存溢出排查:數(shù)據(jù)庫(kù)連接對(duì)象堆積與連接池泄漏實(shí)戰(zhàn) 某個(gè)線(xiàn)上服務(wù)在凌晨開(kāi)始陸續(xù)出現(xiàn)接口超時(shí)堆內(nèi)存監(jiān)控曲線(xiàn)一路向上從2GB爬到3.8GB只用了幾個(gè)小時(shí)隨后接連拋出OutOfMemoryError: Java heap space。容器重啟后過(guò)了一會(huì)兒又反復(fù)。打開(kāi)GC日志和堆轉(zhuǎn)儲(chǔ)一看老年代里堆滿(mǎn)了同一個(gè)類(lèi)名com.mysql.cj.jdbc.ConnectionImpl對(duì)象數(shù)量達(dá)到六位數(shù)。這就是典型的“JVM內(nèi)存溢出-數(shù)據(jù)庫(kù)連接對(duì)象大量累積”問(wèn)題。數(shù)據(jù)庫(kù)連接本身不算龐然大物但成千上萬(wàn)個(gè)連接對(duì)象疊加在一起足以把堆內(nèi)存榨干。真正有價(jià)值的不只是知道“發(fā)生了什么”而是搞清楚連接對(duì)象為什么只增不減、怎樣在不影響線(xiàn)上業(yè)務(wù)的情況下把它定位出來(lái)、修完之后又怎么防止同類(lèi)問(wèn)題再次出現(xiàn)。這篇文章就按這個(gè)脈絡(luò)寫(xiě)給同樣被內(nèi)存溢出和連接池問(wèn)題折磨的人一份可復(fù)用的排查手冊(cè)。1. 先搞清楚連接對(duì)象累積與堆溢出是什么關(guān)系在動(dòng)手抓堆轉(zhuǎn)儲(chǔ)之前一定要先把問(wèn)題定性。很多人一看到內(nèi)存溢出第一反應(yīng)是堆太小或者GC參數(shù)不對(duì)實(shí)際上連接對(duì)象累積類(lèi)的問(wèn)題根因往往藏在業(yè)務(wù)代碼和連接池策略里??梢园堰@類(lèi)故障從兩個(gè)層面拆開(kāi)看一個(gè)是單條連接在JVM里到底占多少內(nèi)存一個(gè)是這些連接究竟是怎么積累起來(lái)的。1.1 一條數(shù)據(jù)庫(kù)連接在JVM里到底占多大地方“一條Connection能占多大頂多幾百字節(jié)”這是對(duì)數(shù)據(jù)庫(kù)連接對(duì)象的典型誤解。連接在JVM堆里的內(nèi)存占用遠(yuǎn)不止接口對(duì)象本身。以最常見(jiàn)的MySQL客戶(hù)端連接器為例一個(gè)Connection對(duì)象背后至少包含這樣幾塊內(nèi)容Socket通道的輸入緩沖區(qū)和輸出緩沖區(qū)每塊默認(rèn)就是8KB到16KB兩個(gè)加起來(lái)已經(jīng)有十幾KB協(xié)議解析層、編碼轉(zhuǎn)換層、事務(wù)狀態(tài)機(jī)等內(nèi)部對(duì)象預(yù)編譯Statement緩存如果打開(kāi)useServerPrepStmts每條SQL對(duì)應(yīng)一個(gè)對(duì)象連接上下文、字符集元數(shù)據(jù)、用戶(hù)權(quán)限相關(guān)的緩存把這些疊加起來(lái)一條空閑連接在MySQL 8.x連接器下實(shí)測(cè)常常是150KB往上。要是連接上執(zhí)行過(guò)較多SQL產(chǎn)生了較多預(yù)編譯緩存單條連接突破200KB到300KB也不奇怪。做道算術(shù)題堆內(nèi)存設(shè)4GB按單條連接200KB估算累積到2萬(wàn)條連接就是4GB左右。也就是說(shuō)堆里躺上2萬(wàn)個(gè)連接對(duì)象整個(gè)堆就基本廢了。而且連接數(shù)量越多GC掃描這些對(duì)象的時(shí)間越長(zhǎng)Full GC停頓會(huì)越來(lái)越明顯服務(wù)表現(xiàn)為周期性卡頓一直到OOM徹底爆發(fā)。1.2 兩類(lèi)累積泄漏型累積與池容量型累積“大量連接對(duì)象”這個(gè)描述太籠統(tǒng)實(shí)際要分成兩類(lèi)來(lái)看排查方向完全不同。第一類(lèi)是泄漏型累積。連接從池里借出來(lái)之后關(guān)閉動(dòng)作因?yàn)楫惓!⑻崆皉eturn、分支遺漏等原因沒(méi)有執(zhí)行連接對(duì)象就一直被某個(gè)線(xiàn)程棧或者靜態(tài)容器引用著永遠(yuǎn)回不到池里。池本身有上限但借出的連接只要還沒(méi)有歸還池的數(shù)據(jù)結(jié)構(gòu)里就一直持有它的狀態(tài)記錄。于是連接對(duì)象數(shù)量只增不減堆內(nèi)存持續(xù)爬升。這種在堆轉(zhuǎn)儲(chǔ)里的特征是連接對(duì)象被某條業(yè)務(wù)線(xiàn)程的棧幀、或者某個(gè)全局容器持久引用而不是掛在連接池的空閑隊(duì)列上。第二類(lèi)是池容量型累積。這種更隱蔽代碼沒(méi)有泄漏但連接池配置的maximumPoolSize本身極大池策略又允許大量空閑連接長(zhǎng)期存活。比如把池上限設(shè)成500系統(tǒng)實(shí)際日常只需要20個(gè)連接剩下的480個(gè)連接一直活著堆里躺著大量空閑連接純屬浪費(fèi)。每個(gè)空閑連接的內(nèi)存雖然不如活躍連接那么高但架不住數(shù)量多。更麻煩的是池創(chuàng)建連接的速度遠(yuǎn)大于釋放速度高峰期內(nèi)存占用會(huì)迅速膨脹。兩類(lèi)問(wèn)題都會(huì)讓你在堆轉(zhuǎn)儲(chǔ)里看到大量ConnectionImpl對(duì)象但前者要改代碼后者改配置加監(jiān)控就能解決。如果在第一步就把問(wèn)題歸錯(cuò)類(lèi)后面所有的排查動(dòng)作都會(huì)跑偏。2. 根因在哪里常見(jiàn)的連接對(duì)象累積路徑把這些年遇到過(guò)的線(xiàn)上事故疊在一起看連接對(duì)象累積基本逃不出下面幾種模式。2.1 手動(dòng)管理連接關(guān)閉路徑被異常跳過(guò)有些老項(xiàng)目里存在不少手寫(xiě)JDBC的場(chǎng)景開(kāi)發(fā)對(duì)連接池的理解停留在“調(diào)用getConnection就能拿連接”但關(guān)閉邏輯寫(xiě)得非常隨意。Connection conn dataSource.getConnection(); PreparedStatement ps conn.prepareStatement(sql); ResultSet rs ps.executeQuery(); while (rs.next()) { // 業(yè)務(wù)處理 } // 這里沒(méi)有close連接池里永遠(yuǎn)少一個(gè)連接這種代碼在低并發(fā)下長(zhǎng)期不炸因?yàn)檫B接池會(huì)自動(dòng)擴(kuò)容你總覺(jué)得連接夠用??闪髁恳坏┥蟻?lái)池里的連接被借光新請(qǐng)求就開(kāi)始排隊(duì)超時(shí)。同時(shí)泄漏一直在發(fā)生池在擴(kuò)容到上限之后也無(wú)法滿(mǎn)足需求堆內(nèi)存被新連接和等待隊(duì)列不斷撐大量變積累成質(zhì)變OOM就來(lái)了。還有一種更容易被忽視的寫(xiě)法明明寫(xiě)了finally塊做close但方法里catch塊把異常吞了而close操作又依賴(lài)前面某個(gè)資源的中間狀態(tài)。比如在try里初始化PreparedStatement時(shí)就拋了異常對(duì)象還是nullfinally卻直接調(diào)用ps.close()空指針把關(guān)閉動(dòng)作徹底打斷。這種問(wèn)題在代碼評(píng)審時(shí)極易漏掉因?yàn)檎B窂娇雌饋?lái)是完整關(guān)閉的只有異常路徑才露餡。2.2 連接池參數(shù)配置與業(yè)務(wù)容量嚴(yán)重失配另一類(lèi)常見(jiàn)情況是代碼邏輯沒(méi)有明顯泄漏問(wèn)題出在連接池容量規(guī)劃上。我見(jiàn)過(guò)有團(tuán)隊(duì)一遇到“連接池耗盡”的報(bào)錯(cuò)就簡(jiǎn)單粗暴把maxPoolSize從10改成1000。從工程角度講這不是在解決問(wèn)題而是給數(shù)據(jù)庫(kù)下毒。連接池的上限不只是內(nèi)存問(wèn)題1000個(gè)連接同時(shí)建到數(shù)據(jù)庫(kù)實(shí)例上數(shù)據(jù)庫(kù)端的線(xiàn)程、內(nèi)存、鎖全都會(huì)被拖垮整體吞吐量不升反降。更合理的做法是估算連接需求。經(jīng)驗(yàn)公式大概是需要連接數(shù) 接口QPS × 單次操作持有連接的平均秒數(shù)舉個(gè)例子某接口QPS是200每次請(qǐng)求大約占用連接200毫秒那么需要的連接數(shù)就是200 × 0.2 40再留20%到30%余量設(shè)置50就非常寬裕。如果QPS和平均耗時(shí)不變硬把池上限設(shè)成500大部分時(shí)間池里躺著450條空閑連接對(duì)JVM堆是純浪費(fèi)對(duì)數(shù)據(jù)庫(kù)是無(wú)謂壓力。2.3 Spring事務(wù)與MyBatis會(huì)話(huà)的隱性持有還有一類(lèi)比顯式泄漏更隱蔽的問(wèn)題連接并沒(méi)有丟失但被長(zhǎng)時(shí)間占用數(shù)量一多效果等同于泄漏。Spring的Transactional會(huì)把數(shù)據(jù)庫(kù)連接綁定到當(dāng)前線(xiàn)程的ThreadLocal資源管理器只有事務(wù)提交或回滾之后才釋放綁定。如果方法內(nèi)部嵌套了耗時(shí)很長(zhǎng)的本地緩存操作、大批量文件處理、或者一次外部HTTP調(diào)用連接就會(huì)一直被線(xiàn)程攥著不放。消息隊(duì)列消費(fèi)邏輯套事務(wù)注解是重災(zāi)區(qū)。一條消息被消費(fèi)時(shí)觸發(fā)了復(fù)雜的業(yè)務(wù)鏈路處理10秒連接就被綁定10秒。消費(fèi)線(xiàn)程池32個(gè)連接池上限30瞬時(shí)并發(fā)上來(lái)池里可用連接直接歸零。這類(lèi)問(wèn)題的特征是堆轉(zhuǎn)儲(chǔ)里的連接對(duì)象數(shù)量可能并不夸張但連接池的active指標(biāo)一直頂滿(mǎn)pending指標(biāo)持續(xù)上漲。修復(fù)方向不是調(diào)大連接池而是收縮事務(wù)邊界把遠(yuǎn)程調(diào)用、耗時(shí)操作全部挪到事務(wù)方法外面去。2.4 多數(shù)據(jù)源場(chǎng)景下的DataSource重復(fù)創(chuàng)建動(dòng)態(tài)數(shù)據(jù)源也是一個(gè)高頻坑位。為了做讀寫(xiě)分離或者多租戶(hù)隔離有些項(xiàng)目用Map緩存了多個(gè)DataSource實(shí)例每次切換數(shù)據(jù)源就new一個(gè)舊的實(shí)例卻沒(méi)有關(guān)閉。HikariDataSource創(chuàng)建后池后臺(tái)線(xiàn)程會(huì)一直存活。堆轉(zhuǎn)儲(chǔ)里不只是ConnectionImpl數(shù)量多還能看到多個(gè)HikariPool實(shí)例以及成倍增長(zhǎng)的池控制線(xiàn)程。這種場(chǎng)景下連接對(duì)象是被多個(gè)連接池對(duì)象分開(kāi)持有的單看數(shù)量可能沒(méi)到嚇人的程度但加上線(xiàn)程對(duì)象、隊(duì)列對(duì)象、緩沖區(qū)對(duì)象以后內(nèi)存占用依然非??捎^。定位后處理方式也很明確要么統(tǒng)一走路由層整個(gè)JVM只保留真正在用的數(shù)據(jù)源實(shí)例要么為動(dòng)態(tài)數(shù)據(jù)源設(shè)計(jì)完整的生命周期管理確保切換后舊實(shí)例能被正常關(guān)閉和回收。3. 從現(xiàn)象到定位一次完整的在線(xiàn)排查這一章是整個(gè)排查過(guò)程最實(shí)操的部分按我當(dāng)時(shí)處理事故的順序?qū)憽?.1 第一步用jstat觀察GC與堆內(nèi)存趨勢(shì)定位JVM內(nèi)存問(wèn)題最忌諱一上來(lái)就抓堆轉(zhuǎn)儲(chǔ)。正確的第一步是先看趨勢(shì)。登錄到報(bào)警機(jī)器先通過(guò)jps找到進(jìn)程PID然后執(zhí)行jstat -gcutil pid 1000 2000這條命令每秒采樣一次持續(xù)2000秒。輸出里重點(diǎn)看E、O、FGC這三列。E代表Eden區(qū)使用率O代表老年代使用率FGC是Full GC次數(shù)。如果你看到O列持續(xù)上漲Full GC之后O列也不回落說(shuō)明確實(shí)有對(duì)象在老年代不斷累積。再配合系統(tǒng)負(fù)載和接口監(jiān)控就能把問(wèn)題范圍先從“整臺(tái)JVM內(nèi)存溢出”壓縮到“某類(lèi)對(duì)象只增不減”。這一步的目的有兩個(gè)一是確認(rèn)堆轉(zhuǎn)儲(chǔ)有沒(méi)有必要抓二是為后續(xù)分析提供內(nèi)存使用基線(xiàn)。如果老年代穩(wěn)定不動(dòng)Full GC正常單純是堆參數(shù)設(shè)太小那調(diào)整-Xmx就行跟連接對(duì)象沒(méi)關(guān)系。如果像當(dāng)時(shí)那樣O列一路爬升就可以放心進(jìn)入下一步了。3.2 第二步抓堆轉(zhuǎn)儲(chǔ)確認(rèn)對(duì)象構(gòu)成確認(rèn)老年代在持續(xù)上漲后需要抓一份堆轉(zhuǎn)儲(chǔ)jcmd pid GC.heap_dump /tmp/heap-pid.hprof用jcmd而不是jmap -dump抓是因?yàn)閖cmd默認(rèn)不帶live參數(shù)不會(huì)先觸發(fā)一次Full GC能保留堆現(xiàn)場(chǎng)的原始狀態(tài)。抓堆之前先確認(rèn)磁盤(pán)剩余空間堆如果配置4GBhprof文件通常也會(huì)有接近4GB的大小別把磁盤(pán)寫(xiě)爆了。抓完堆之后先用快速命令看對(duì)象分布jmap -histo pid | head -40這段輸出的價(jià)值在于給出對(duì)象數(shù)量的Top N。在連接泄漏事故里你經(jīng)常會(huì)在最前面看到這樣幾個(gè)類(lèi)名com.mysql.cj.jdbc.ConnectionImplMySQL 8.x連接器com.zaxxer.hikari.pool.PoolEntryHikariCP池條目com.alibaba.druid.pool.DruidPooledConnectionDruid池包裝連接當(dāng)ConnectionImpl的對(duì)象數(shù)量達(dá)到幾十萬(wàn)級(jí)時(shí)基本可以確定方向。但我必須提醒一句對(duì)象數(shù)量多只是信號(hào)不直接等于泄漏。繼續(xù)往下看引用鏈才是真正的判定依據(jù)。3.3 第三步用MAT定位GC Root持有鏈路把hprof文件下載到本地用Eclipse MAT打開(kāi)。操作步驟是先看Histogram按對(duì)象個(gè)數(shù)排序過(guò)濾出ConnectionImpl這類(lèi)類(lèi)名右鍵選擇List objects - with outgoing references看這些連接都引用了什么再右鍵選擇Path to GC Roots - exclude weak references把GC Root路徑完整顯示出來(lái)。CG Root路徑通常會(huì)呈現(xiàn)三種典型情況連接被HikariPool內(nèi)部的ConcurrentBag引用這是連接池自己在持有的正常連接。如果數(shù)量已經(jīng)明顯超過(guò)池配置的上限說(shuō)明池被撐爆需要回到池配置審查。連接被某條線(xiàn)程棧的局部變量引用這是正在使用中的連接算不上異常。但如果這些線(xiàn)程都停留在同一個(gè)業(yè)務(wù)方法里而且數(shù)量持續(xù)上漲說(shuō)明這條方法大概率在泄漏連接。連接被某個(gè)實(shí)例字段或靜態(tài)容器引用這是最典型的泄漏實(shí)錘。代碼把Connection對(duì)象塞進(jìn)了數(shù)組、Map、ThreadLocal之類(lèi)容器里使用完沒(méi)有清理導(dǎo)致GC Root能一路找到它。通過(guò)MAT的引用路徑可以直接對(duì)應(yīng)到具體類(lèi)名和字段名再結(jié)合源碼倉(cāng)庫(kù)就能定位到方法行號(hào)比在代碼里瞎搜快得多。3.4 第四步結(jié)合業(yè)務(wù)代碼確認(rèn)泄漏點(diǎn)拿到MAT的結(jié)論后回到代碼倉(cāng)庫(kù)打開(kāi)對(duì)應(yīng)的類(lèi)。我在實(shí)際項(xiàng)目里遇到的漏法主要有三種catch分支里沒(méi)有釋放連接只有正常try路徑執(zhí)行了close方法返回前提前return跳過(guò)了統(tǒng)一釋放邏輯在循環(huán)體里多次調(diào)getConnection最后只關(guān)閉了一個(gè)前面的全部漏掉修好泄漏點(diǎn)之后先別急著擴(kuò)堆。部署新版本觀察連接池的活躍連接數(shù)和JVM內(nèi)存曲線(xiàn)。如果active數(shù)能隨著流量回落內(nèi)存曲線(xiàn)走平才算真正修好。這里還要提個(gè)建議修復(fù)一個(gè)泄漏點(diǎn)往往不夠建議在代碼庫(kù)全局搜索getConnection的調(diào)用點(diǎn)把所有手工獲取連接的代碼統(tǒng)一審一遍把同類(lèi)型的隱患一次性清理掉。4. 修復(fù)方案與參數(shù)調(diào)優(yōu)落地定位到根因之后修復(fù)方案要落在三個(gè)層面代碼寫(xiě)法、連接池配置、監(jiān)控告警。缺一不可。4.1 代碼層修復(fù)連接獲取與釋放的規(guī)范寫(xiě)法如果項(xiàng)目還在使用原生JDBC或者裸連接管理務(wù)必統(tǒng)一成try-with-resources寫(xiě)法try (Connection conn dataSource.getConnection(); PreparedStatement ps conn.prepareStatement(sql); ResultSet rs ps.executeQuery()) { while (rs.next()) { // 業(yè)務(wù)處理 } } catch (SQLException e) { log.error(query failed, e); }這種寫(xiě)法的好處是資源關(guān)閉順序由語(yǔ)言層面保證無(wú)論正常執(zhí)行還是拋出異常都會(huì)按逆序調(diào)用close方法。對(duì)于從連接池取出的代理Connection這個(gè)close的語(yǔ)義是“歸還連接池”并不是真正斷開(kāi)物理連接所以不用擔(dān)心頻繁開(kāi)關(guān)連接帶來(lái)的性能損耗。如果項(xiàng)目Java版本受限無(wú)法用try-with-resources也要遵守一個(gè)原則close動(dòng)作只寫(xiě)在finally里不要分散到try和catch的多個(gè)位置否則極易漏掉分支。還有一個(gè)實(shí)用技巧是給連接操作寫(xiě)一個(gè)統(tǒng)一的工具方法把連接獲取、關(guān)閉邏輯收斂到一處。業(yè)務(wù)代碼只調(diào)用工具方法從源頭杜絕寫(xiě)法混亂。4.2 連接池參數(shù)調(diào)整以HikariCP為例Spring Boot默認(rèn)使用的連接池是HikariCP配置文件可以這樣調(diào)整spring: datasource: hikari: maximum-pool-size: 50 minimum-idle: 10 connection-timeout: 30000 max-lifetime: 1800000 idle-timeout: 600000 leak-detection-threshold: 60000每個(gè)參數(shù)為什么要這樣設(shè)背后都有邏輯maximum-pool-size池上限。不要拍腦袋設(shè)一個(gè)整數(shù)按前面說(shuō)的QPS × 平均連接占用時(shí)間估算留20%到30%余量。連接數(shù)過(guò)大對(duì)數(shù)據(jù)庫(kù)本身也是一種壓力。minimum-idle池保持的最小空閑連接數(shù)。如果服務(wù)空閑期不想保留太多空閑連接可以把值調(diào)低配合idle-timeout使用如果日常流量波動(dòng)大建議設(shè)置成與maximum-pool-size一致避免池頻繁擴(kuò)縮容導(dǎo)致性能抖動(dòng)。connection-timeout客戶(hù)端等待連接的時(shí)間線(xiàn)上建議30秒。設(shè)太短突發(fā)流量時(shí)大量請(qǐng)求直接超時(shí)設(shè)太長(zhǎng)用戶(hù)側(cè)等待感過(guò)強(qiáng)。max-lifetime連接最大存活時(shí)間必須小于數(shù)據(jù)庫(kù)的wait_timeout。MySQL默認(rèn)wait_timeout是28800秒HikariCP默認(rèn)30分鐘。保持默認(rèn)值是安全的只要低于數(shù)據(jù)庫(kù)端即可。idle-timeout空閑連接最大存活時(shí)間。注意它只在池中連接數(shù)超過(guò)minimumIdle時(shí)才生效如果minimumIdle和maximumPoolSize相等空閑連接不會(huì)被銷(xiāo)毀。leak-detection-threshold連接被借出超過(guò)這個(gè)時(shí)間沒(méi)有歸還HikariCP會(huì)輸出警告日志。設(shè)成60000毫秒可以較早捕獲泄漏點(diǎn)。前提是它必須小于max-lifetime否則配置會(huì)沖突。這組參數(shù)改完后連接數(shù)曲線(xiàn)通常兩三個(gè)發(fā)布周期就能看到明顯收斂。參數(shù)本身不是越多越好而是要和業(yè)務(wù)容量的真實(shí)需求匹配。4.3 Druid的特殊兜底手段removeAbandoned如果你用的是Druid連接池它提供了一套針對(duì)連接泄漏的兜底配置spring: datasource: druid: initial-size: 5 min-idle: 5 max-active: 50 max-wait: 30000 remove-abandoned: true remove-abandoned-timeout-millis: 300000 log-abandoned: trueremove-abandoned的意思是連接被借出超過(guò)remove-abandoned-timeout-millis指定的毫秒數(shù)后還沒(méi)歸還Druid會(huì)從代碼里強(qiáng)制回收這個(gè)連接。log-abandoned打開(kāi)后Druid會(huì)打印包含調(diào)用棧的告警日志定位泄漏非常方便。但這把雙刃劍要用得謹(jǐn)慎。如果業(yè)務(wù)里存在合法的長(zhǎng)事務(wù)比如一個(gè)20分鐘的大批量導(dǎo)入任務(wù)而你設(shè)置的回收閾值是300秒事務(wù)后段的數(shù)據(jù)操作會(huì)被強(qiáng)制回收打斷引發(fā)數(shù)據(jù)一致性問(wèn)題。因此這類(lèi)兜底配置只建議在確實(shí)存在泄漏、且業(yè)務(wù)里沒(méi)有超過(guò)閾值的正常長(zhǎng)任務(wù)時(shí)才啟用。更穩(wěn)妥的順序是先用log-abandoned定位泄漏分支修復(fù)代碼再?zèng)Q定是否保留remove-abandoned作為最后防線(xiàn)。4.4 建立三層監(jiān)控防線(xiàn)排查和修復(fù)都完成后最后一步是把防線(xiàn)建立起來(lái)避免同類(lèi)問(wèn)題在無(wú)人值守的深夜再次爆發(fā)。我一般分三層來(lái)做第一層JVM內(nèi)存層。使用Spring Boot Actuator加Micrometer把指標(biāo)暴露給Prometheus重點(diǎn)監(jiān)控jvm_memory_used_bytes和Full GC次數(shù)。一旦老年代內(nèi)存持續(xù)增長(zhǎng)連續(xù)多個(gè)采集周期環(huán)比為正立刻告警。第二層連接池層。HikariCP會(huì)輸出hikaricp_connections_active、hikaricp_connections_idle、hikaricp_connections_pending這幾個(gè)關(guān)鍵指標(biāo)。建議給active占總?cè)萘勘壤O(shè)置80%閾值pending持續(xù)大于0且維持5分鐘以上就觸發(fā)告警。Druid也可以打開(kāi)監(jiān)控頁(yè)但生產(chǎn)環(huán)境一定要做訪問(wèn)鑒權(quán)。第三層SQL與事務(wù)層。開(kāi)啟數(shù)據(jù)庫(kù)慢查詢(xún)?nèi)罩景殉^(guò)1秒的SQL記錄下來(lái)。應(yīng)用側(cè)記錄每個(gè)事務(wù)方法的耗時(shí)超過(guò)閾值就預(yù)警。一條慢SQL執(zhí)行5秒就有一個(gè)連接被占用5秒。慢SQL一旦集中出現(xiàn)連接池很快見(jiàn)底。三層指標(biāo)互相配合連接對(duì)象的任何異常累積都能在早期被捕捉到。5. 常見(jiàn)問(wèn)題排查與避坑記錄這一路排查下來(lái)有些錯(cuò)誤和坑值得單獨(dú)記錄下來(lái)以后遇到類(lèi)似問(wèn)題能少走彎路?,F(xiàn)象可能原因排查或處理建議堆內(nèi)存持續(xù)上漲連接對(duì)象數(shù)量龐大連接泄漏或池配置過(guò)大先看GC Root引用鏈區(qū)分泄漏型還是容量型HikariCP連接池請(qǐng)求超時(shí)池耗盡多與慢SQL或長(zhǎng)事務(wù)有關(guān)查數(shù)據(jù)庫(kù)慢日志收縮事務(wù)邊界日志顯示連接一直未歸還方法提前return或異常分支漏close用try-with-resources重寫(xiě)復(fù)查catch分支連接池頻繁擴(kuò)縮容minimumIdle與maximumPoolSize差距過(guò)大把minimum-idle調(diào)高接近maximum-pool-sizeDruid強(qiáng)制回收后事務(wù)中斷長(zhǎng)任務(wù)超過(guò)回收閾值調(diào)大回收時(shí)間或去掉兜底優(yōu)先修代碼再分享三個(gè)實(shí)際踩過(guò)的坑第一個(gè)坑不要在業(yè)務(wù)高峰期直接抓dump并立刻重啟實(shí)例。抓dump本身會(huì)給服務(wù)增加一次內(nèi)存快照和磁盤(pán)寫(xiě)入如果堆已經(jīng)接近裝滿(mǎn)可能直接觸發(fā)又一次Full GC。更穩(wěn)妥的順序是先記錄現(xiàn)場(chǎng)指標(biāo)把實(shí)例從負(fù)載均衡上摘掉流量再抓dump最后重啟。先留證據(jù)再補(bǔ)救否則重啟完現(xiàn)場(chǎng)沒(méi)了根因也找不到了。第二個(gè)坑不要只盯著ConnectionImpl類(lèi)名就下結(jié)論。之前看一個(gè)案例dump里ConnectionImpl數(shù)量非常多我差點(diǎn)判定是代碼泄漏。但順著GC Root追下去發(fā)現(xiàn)這些連接幾乎全部被HikariPool自己持有原來(lái)是某次擴(kuò)容把maximumPoolSize沖到了800代碼本身反而沒(méi)問(wèn)題。引用鏈才是判官類(lèi)名數(shù)量只是線(xiàn)索。第三個(gè)坑連接池參數(shù)修完之后不要直接撒手。一個(gè)泄漏點(diǎn)往往只在一類(lèi)流量場(chǎng)景下才觸發(fā)比如某個(gè)爬蟲(chóng)任務(wù)、某個(gè)特殊的對(duì)賬流程。修完連接池配置把內(nèi)存壓下來(lái)不代表所有場(chǎng)景都安全了。只要代碼庫(kù)里還存在手工獲取連接的調(diào)用點(diǎn)建議花時(shí)間統(tǒng)一改造讓連接回收路徑經(jīng)得起評(píng)審。我個(gè)人在處理這類(lèi)問(wèn)題時(shí)的習(xí)慣是一開(kāi)始就拒絕調(diào)堆參數(shù)。加大-Xmx只是把癥狀往后推不會(huì)讓泄漏消失。正確路徑永遠(yuǎn)是把GC趨勢(shì)、堆轉(zhuǎn)儲(chǔ)、GC Root引用鏈走完讓證據(jù)說(shuō)話(huà)。如果你也被JVM內(nèi)存溢出和連接池累積問(wèn)題纏住按這套流程走一遍大部分事故都能在幾小時(shí)內(nèi)鎖定根因。最后送一句實(shí)操口訣連接泄漏看GC Root連接池容量看指標(biāo)修復(fù)之后看曲線(xiàn)。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
婷婷五月在线视频| 久久久久久性爱免费视频| 一级特级aaaa毛片免费观看 | 女色综合| 天操天操夜操夜月月年年操操| 国产精品久久久亚洲一区| 欧美呦呦性爱| 午夜小电影在线插入淫高潮| 亚洲av资源| 久久久中文版| 日韩内射视频| 啊啊啊啊啊啊啊网址在线观看| 女人妻一区| 日逼国产| 毛片视频白嫩| 久久国产逼| 久草男人天堂| 一区二区三区蜜桃成人撸久久东京热 | www.AV有限公司一区| 婷婷丁香五月综合| 日本女人操逼| 婷婷99狠狠| 91成人精品在线播放| 韩美日操逼| 国产日本顶级一区二区三区| 夫妻天天操岛国视频| 九九九九一区| 日韩欧美天堂| 激情内射| 久久香蕉国产线看观看亚洲女人| 色777999综合| 91蜜桃传媒精品久久久一区二区| 69丨亚洲丨精品丨入口免费播放| 91精品婷婷国产综合久久| 传媒免费一区二区三区| 精品97久久综合| 亚洲天堂自拍| 亚热日本熟女| 国产AV线| 久久久青青草| 91天天看| 2023天天操夜夜操| 欧美日韩亚洲一区二区在线观看| 欧美的性爱网站免费| 久96热在线观看视频| 一级毛片电影免费看| 欧美第一页| 78久久| 日韩天天综合| 中文字幕第9页萱萱影音先锋| 91在线免费精品视频| A级国产欧美激情在线| 中文操逼字幕| 熟女五十路一区二区三| 日韩人妻中文视频| 欧美人妻二区三区| 欧美日韩国产色五月综合在线| 欧美第二页午夜| 亚州,欧美在线| 蜜桃臀一区二区三区久久| 婷婷久草| 久久内射| 成人精品一区二区91毛片不卡 | 日韩超碰精品综合| 国产97综合| 麻豆精品.欧美精品.日韩精品.| 97超级久久| 久久专区| 午夜影美女日鸡鸡天天视频国产| 大香交伊人网| 天堂射| 91熟女丨91老女人| 操逼逼福利视频| 欧美精品99久久久| 人人澡综合涩| 天天综合网91| 欧美一区二区观看在线| 麻豆天美国美国产| 综合天天。| 亚洲天天综合| 人人射人人操人人摸| av大香蕉| 九九九只有精品| 国产内射爽爽大片| 精品一区二区人妖| 97这里只精品| 国产无码三级视频在线观看| 立川理惠无码一区二区| 香蕉免费一区二区三区不读| 亚洲美女av无码| 超碰av在线| 99色日| 久草综合网| 91影库| 五月综合久久| 国产嫩草精品A88AV| 操国产高清| 五月婷婷激情| 91亚.色| 91成人在线免费视频| 91亚洲黑人| 色臀aV| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 日韩无码精品综合久久| 少妇高潮流水av免费| 亚洲 欧美日韩 另类| 天天舔天天| com 首页 18岁 禁区 女优 免费 精选 同城| 极品肉射| 亚洲天堂色图| 欧美色女人| 色欧美天天| 欧美碰碰综合色| 99久视频| 91中出在线| 久久久久久久国产视频| 天美传媒AV国产在线| 一区二区乱码福利| 亚洲限制级在线| 久久这里只有精品9| 99熟女| 中字一区| 亚洲AV无码国产精品久久久久| 久久精品老司| www.99热| 97爱| 嗯嗯啊啊操死我| 黄色香蕉视频网站一区| 一区二区三区日韩欧美 | 九九九九国产| 欧美嗯啊……在线观看视频免费| 成年无码动漫av片无尽在线 | 久久伊人最新网址视频| 91在线免费观看处女| www.激情| 加勒比综合| 色噜噜国产在线| 69XX一中文字幕人妻91| 亚洲色图综合网| 亚洲黄色a级片| 香蕉精品二区二区| 99热精品青草在线| 3d成人精品一区二区| 亚州综合AⅤ| 国产女人与拘做受视频免费| 色97国产69香蕉| 亚洲AV无码乱码在线观看性色| 天天躁夜夜躁狠狠躁AV| 爽爽淫人网| 国产在线综合福利网站| 日韩综合97P| 日韩欧美字幕亚洲一区二区| 思思久热在线精品66| 精品97久久综合| 欧美亚洲日本视频久久久| 亚洲s色图| 抽插无码高清一区| 欧美综合网| 国产污视频麻豆传媒一区二区 | 人妻天天爽夜夜爽精品2| 人妻色偷色噜| 欧美一品道| 五码视频在线观看| 五月天色色网站| 精品九区| 免费视频观看60秒| 操逼999| 婷婷色中文字幕| 99啪啪视频| 亚欧美综合| 亚洲国产精品久久久久久久久久| 国产又猛又粗又爽又黄| 欧美精品黑人猛交高潮| 亚洲一二三四区在线免费看视频| 99这里有精品| 久久艹逼视频| 久久国产乱子伦精品免费女人| 中文字幕免费在线观看 | 青草地一本线一区二区三区| 97久久精品国产| 大伊香蕉在线视频免费| 欧洲黄色网| 97超碰国产亚洲精品| 久妇网| 亚洲乱码尤物193YW| 一级毛片电影免费看| 亚洲综合另类色图| 欧美亚州色的图| 精品大久久| 色色婷| 人妻精品一区二区在线| 日本操逼视频不卡直接放| 农村少妇久久久久久久| 超碰97久久国| 夜夜免费视频| 欧美精品系列| 美女黄页网站| 日产精品久久久一区二区| 香蕉免费一区二区三区不读 | 97香蕉网| 久久男人的天堂| 精人妻一区二区三区| 福利一级版子| 天天看高清麻豆| 久久夜色一区二区| 超碰97资源大奶| 婷婷五月在线视频| 青青草九九九九九| 91精品电影18| 日韩精品熟妇| 91nbbbbbb| 国产第11页| 天堂伊人久久| 激情人妻另类| 超碰吊日色| 成人情色综合网| 日韩欧美中文字亚洲慕| 91久久国产精品| 九九五月天| 超碰偷拍| 日韩成年人性爱视频| 日韩肏逼视频| gogogo免费高清看中国国语| 日韩欧美国产高清视频| 国产成人资源| 激情露脸爱| 国产青视频| 99久久9| 国产又大又粗又长视频| 国产亚洲欧美每日在线| 欧美日韩国产三级黄色| 99热精品在线播放| 影音先锋一区二区在线资源| 欧美第二页午夜| 天天搞欧美| 777超碰| 囯产精品久久久久久久久久梁医生 | 狼人狠干| 人妻一区视频| 精品一区二区三区蜜桃臀赵总| 日本超碰在线国产一区| 中文字日本乱码| 蜜桃一区二区三区| 少妇被c 黄 免费观看| 小视频国产| 乱伦系列一区二区| 99久久无色码| 亚洲天堂资源在线| 亚洲欧美在线观看免费| 亚洲五月丁香花狠狠干一区二区三区 | 99精品热| 成人性生活高清视频在线播放| 国产午夜在线观看| 大香网站| 欧洲Au麻豆| 夜夜夜夜爽| 九九九色| 国产精点久久久成人| 欧美人妻二区三区| 天天影视综合色| 91大神精品长腿在线观看网站| av午夜影院在线播放| 亚洲va综合va国产va中文| 伊人久久久日韩一区| 欧美日日人人天天| AV天堂国产| 人人考人人摸人人干| 啊啊啊好舒服好爽啊啊啊视频| 国产白丝网站| 日本超碰在线国产一区| 亚洲在线综合| 国产成年免费大片黄在线观看| 五月色丁香| 天堂国产AV| 久久久久久久人妻| 亚洲欧洲激情| 精品少妇人妻一区二区三区| 久久男人精品| 黑丝少妇麻豆| 少妇淫妇久久久久久久| 国产一区二区视频在线播放| 青青草乱入乱欲视频在线观看| 91老司机精品| 色婷婷电影网| 精品人妻一区二区三区四区| 日韩国产成人自拍视频| 中国小夫妻勾搭露脸淫荡对白| 九九热九九| 欧美在线观看综合国产| 日本加勒比无码专区一二三| 熟女乱伦A| 97亚洲一区| 欧美激情专区| 欧美亚洲国内自拍| 曰韩中文人妻视频| 久久精品人体AV| 久久久青青草| 一本道综合色图| 99久久久| 草b在线 | 9久在线视频只有精品| 亚洲 日本 一 二 三| 亚洲色棕合| 日本123区操B视频| 亚洲欧美电影| 大香网伊人久久综合网eew| 2017av无码免费无线播| 欧美日韩理论一区| 激情 欧美 亚洲 小说| 怡红院怡春院| 国产特级毛片AAAAAA高潮流水 | 超碰色图| 中文字幕精品丝袜| 久久性生大片免费观看性| 欧美性区| 亚洲国产成人精品无码专区| 91色欧美| 精品九九淫乱男| 天天做日日做天天欢。| 日本在线999| 欧美视频在线第3页| 五十路熟女人妻一区二区三区四区五| 人妻在线中出视频| a一区二区三区乱码在线| 欧美 日韩 婷婷 五月| 性做久久久久久久| 四虎免费在线观看| 女人的天堂大香蕉网| 日韩乱插| 精品无码久久久久久久久果冻糖心| 韩日男人的天堂| 免费一级特黄特色大片在线观看看| 天堂亚洲精品久久老牛| 视频二区美腿丝袜制服人妻欧美 | 嗯嗯啊啊啊好舒服| 欧美大香蕉专区网| 思思热一热婷婷热一热| 亚洲色婷婷| 国产中文字幕在线点播| 性做久久久久久久| 熟妇人妻精品一区二区| 制服中出中文人人精品| 人人操AV| 91强奸乱轮| 91亚洲人| 狠操91,com| 国产精品一区二区三区在线密挑| 美国精品国产精品| 九九热三级片| 密臀国产在线| 校园春色家庭伦理欧美激情| 亚洲综合图色在线| 色97| 国产尹人在线视频免费| 国产91av在线播放| 玖玖综合网| 日韩精品影视| 精品无码一区二区人妻久久蜜桃| 色五月天AV| 加勒比无码一区二区三区| 黄色区免费观看中文字幕| 国产精品剧情| 亚洲 日本 不卡| 啊灬啊灬啊灬啊灬高潮奶出了免费视| 亚洲AO在线| 99无码| 久久久国产亚洲精品系列| 啊啊啊啊操死我| 亚洲在钱| 小电影欧美91| 亚欧操逼片在线观看| 久久亚洲人妻| 天天爽夜夜欢视| www.91色综合| 欧美日韩高潮喷水91| av一区二区三区 中文| 草草影院日本第一页| 天天影视色香欲综合网小说| 69一区二区| 亚洲丝袜在线观看| 欧美第五页| 久久久一区二区| 色男人色天堂东京热| 亚洲色9| 国产蜜臀精品一区免费尤物| 国产欧美伊人| 日本青青草在线| 久久9亚洲| 秋霞男人网| 99re9这里只有精品| 欧洲中文字幕| 欧美亚洲美少妇一区二区| 操人妻逼91| 美腿丝袜高跟网免费视频免费视频| 95精品在线| 成人五月香网在线| 久久蜜桃综合网| 日本97久久久精品| 狠色婷婷久久一区二区三区_| 97亚洲欧美日韩| 蜜桃久久精品一区二区三区| 乱子伦一区二区三区国产精品| 欧美 牲| 色香网| 国产9l 大屁股| 午夜精品久久一区二区| 综合av社区| 日本性爱网址| 骚货人妻偷情自拍在线视频| 欧美亚洲一区二区久久久婷精品大包诱| 久久99手机免费视频| 亚洲drav色图| 久久久精品网| 性爱乱伦视频免费| 亚洲中文字幕网| 99超碰色| 视频黄站| 久热一区二区| 欧美一级国产一级| 亚洲天天艹| 久久久久ab| 97在线免费公开视频| 欧美国产精品久久九九| 黄片aaaaa一区| 精品视频久久久久九九九九9999| 亚洲码和欧洲精品激情系列| 蜜桃臀一区二区三区久久| 96久久久久| 国产91啪| 91逼逼女人91| 91欧| 国产精品无码av| 五月婷婷六月激情| 东方亚洲在线操逼天堂| 免费AV中文网在线观看| 久久激情网| 天天内射| 粉嫩av平台| 五月婷久久| 日韩欧美资源| 超碰日韩人妻| 欧美亚洲20p| 78精品| 中日韩久久久| 97这里只精品| 日本成熟少妇A∨网站| 99人人干| 日韩人人精品| 欧美精品成人在线播放| 人人综合| 欧美18老人禁| 校园春色之综合网| 97免费在线观看视频| 国产高清精品福利| 亚欧美综合网。| 26UUU欧美日本| 日韩国语字幕| 97Ai亚洲| 乱精品一区字幕二区| 99久在线精品99re8| 日韩人妻一二三区视频| 97干天天| 亚洲天堂中文字| 成人网欧美风情| 男人天堂电影院| 日本天天操| 97色欧洲| 日本人妻A片成人免费看片| 天堂综合| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 欧美,亚洲,日韩,v,天堂,手机在线观看| 欧美极品美女aaaaaa级黄片| 又大又白奶子| 麻豆久久久久久久久丝袜 | 呦女网站| 影音先锋乱| 国产中文日韩欧美一区二区三区人妻丝袜美腿| 欧美精品日韩久久久九| 国产成人主播| 国产传媒操逼视频| 国产操逼视频在线观看| 亚熟在线| 尹人免费观看视频在线| 日韩av三四区| 欧美日韩不卡a片| 久久亚洲色图中文字幕| 国语国产操逼伊人AV网| 久艹视频在线| 久久黄色网址| 欧美特大AA级黄片| 牛牛久久国产精品视频一二三| 日韩免费在线视频观看| 99热日| 国产男女无套视频免费观看| 4虎在线观看| 丝袜夫妻自拍| 操逼操逼逼操操逼91| 亚洲蜜臀精品视频久久| 久都青青视频| 久久亚洲AV无码专区国产精品| 国产91专区| 丁香六月婷婷久久综合| 午夜男女爽爽大片免费观看| 天天干人妻| 91精品国产高清久久久久久,亚洲成人| 久久婷婷苹果| 欧美亚洲丝袜美女电影| 久久久久成人亚洲国产| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 国产精品点击进入在线影院| 九七毛片九九毛片| 国产欧美日韩在线观看麻豆传媒公司 | 亚洲美女AV无码| 啊啊啊快操我视频| 97色婷| 2020久久免费视频| 黄页网站成人免费| 欧美狠狠操| 国产又操| 黄色片,com| 加勒比中文av| 男人的天堂无码| 日韩伦理视频| 丁香五月影院| 亚洲国产麻豆一区二区三区| 日本中文字幕不卡视频| 亚洲AV色图| 嗯嗯,好大,好爽,好骚 | 欧美手机在线综合| 日韩懂色网| 天天干天天插| 留下AⅤ黄色片| 亚洲欧洲日本精品中文a∨| 日日摸日日弄日日拍| 欧美熟女妇同| 高树玛利亚无码流出| 超碰在线成人| 天天看,天天做| 国产对白刺激视频| 日韩性爱一级片| 青青在线视频免费| 999久久久久久久久| 成人热久久精品| 青青青操| 偷拍 精品另类 凸凹了四区| 一区二区三区机械有限公司| 亚洲综合精品国产一区| 黑人操一区二区| 亚洲天堂一区二区久久| 亚欧高清| 国产多人在线观看视频| 午夜福利1区2区3区| 九九九免费视频| 在线不欧美| 日日摸日日碰夜夜爽视频| 午夜九九| 日本韩国五十路六十路七十路老熟女作爱视频网站 | 99999久久精| 日韩三级性| 人妻激情在线视频| 亚洲精品久久一区二区三区蜜桃臀| 97人人爱人人做人人乐| 日韩中文字幕av在线播放| 好爽,再快点啊哈嗯嗯嗯嗯| 大香蕉伊人亚洲| 亚洲91av| 国产精品 午夜福利| 涩爱AV在线| 成人A片男人的天堂| 一区 欧美 日韩 麻豆| 天天综合欧美综合| 欧洲亚洲天堂精品| 精品丰满熟妇人妻一区| av天堂电影网| jazzjazz国产精品麻豆| 久久无码成人| 久精品无码av一区二免费国产在线观看| 亚洲最大的综合性av| 无码自拍SM| 欧美亚洲综合色| 日韩一999精品| 97精品第3页| 中文日韩欧美熟| 九九热精品视频六| 亚洲无线观看久久| 国产欧美一级在线观看| 日本久久精品| 校园春色亚洲欧洲| 北野未奈加勒比av| 久久国产乱子伦精品免费女,网站| 永久免费观看的毛片的网站| 嗯啊抽插大香蕉网页| 九九性爱网| 久久精品人体| 视频二区熟女人妻| 男人午夜天堂| 黄色一级视| 99国产精品人妻人伦| 欧美情色男人的天堂| 国产成人啪一区二区| 日本一二区不卡| 97天天做| 国产黄色小视频网站| 久久riav中文精品| 亚洲人成网www| 欧美中字二区| 日韩欧美女求操每天更新| 91av熟女人妻| 妺妺跟我一起洗澡没忍住| 亚洲情色电影网| 1024午夜激情男人的天堂| 欧美在线啊啊| 亚洲欧洲日韩国产自在线| 亚洲春色激情小说| 国产吹潮女在线观看| 色姑娘综合网| 色五月婷婷中文字幕| 国内操逼视频二区| 性色aV一区二区三区噜噜| 欧美一区二区三区蜜桃| 久久久久久久久久久97| 人人操人人精品影片| .精品人妻一区二区三| 五月天婷婷成人网| 日本天天干天天日一区| 国产极品精品美女视频| 久久国色天香香蕉| 超碰在线免费一区二区三区| 婷婷激情五月天小说网| AV在线资源| 久久精品午夜国产亚洲AV无码| 91|九色|国产熟女| 色偷综合| 日本精品无码三级网站| 国产精品视频播放| 久久草草亚洲蜜桃臀| 精品精品精品| 伊人91| 欧洲色色| 97色综合中文网| 婷婷色婷婷| 黄久久| 被体育老师抱着c到高潮| 欧美亚洲AN| 老司机午夜精品视频| 旡码电影特区| 日本人妻最新在线中| 久久久影院| 欧美性第一页| 日韩内射视频| 国产色综合亚洲色综合吹潮| 天天综合网在线| 久久精品国产亚洲AV清纯| 欧美日本视频一区| 欧美性爱精品七区| 78p欧美| 欧美人人操人人插| 操逼内射干逼白丝91| 国产无码精品成人| 亚洲第一色页夜| 99国产在线 精品 视频| 是还免费视频1727我| 亚洲系列第一页| 久久视频,这里只有精品| 人人操人人操草草| 日韩综合第八区国产精品| 狠狠色婷婷7777久| 久久78| 亚洲成人一二三区| 少妇无码av专区线| 人人爽夜夜玩视频| 国产精品色| av网站免费看| 91爱看| 欧美日综合| 97干在线| 18禁久极品美女久久哦哟呀!| 人人摸人人干人人拍97| 久久婷婷成人综合色怡春院| 久久熟女人| 福利操逼| 99999re| 10000部十八禁看电影| 国产区91柔拿会所技师| 中文字幕黄色一起草| 国产丝袜美女诱惑| 日韩A优精品在线观看| 熟女少妇视频| 国产后入| www. 男人天堂成人在线| 亚洲精品亚洲人成人网| 婷婷超| 欧美91丝袜| 亚洲老熟妇xxx| 在线观看无码三级少妇| 老司机香蕉| 青青草啪啪网| 99成人| 乱伦图av| 日本操逼视频免费| 熟女熟妇伦久久影院毛片一区二区| 一区二区激情国产熟女| 永久免费发布性爱网| 91综合中文字幕| 搡老女人老91妇女熟女| 青青草视频爽一爽| 狠狠色色| 亚洲欧综合另类无码一区| 婷婷爽人人婷婷爽视频| 超碰到97情色| 日韩欧美丝袜诱惑| 欧美日不卡| 综合久久欧美| xxxx网站亚洲精品| 人人搞人人插人人操| 大香蕉性欧美| 蜜臀av网址| 目产99999久久999| 国产精品对白内射| 久久午夜伦| 婷婷五月天久久久| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 天天弄天天操| 精品日韩人妻视频| 久久精品一区二区| 九九热精品视频六| 久久久精品九| 欧美玖玖爱免费玖玖| 白丝jkav| 国产精品午夜成人福利| 按摩中文字幕| 精品夜夜澡人妻无码| 五月天激情小说网| 五月丁香啪啪网| 十八禁视频网站| 午夜福利免费精品视频| 最新中文字幕精品在线| 免费啪啪av| 国产美女口爆吞精视频| 日韩三级伦理中文字幕| 97超碰欧美| 偷拍精品一区二区三区| 五十路熟女在线不卡观看一区二区| 白嫩妹子国产骚| 青娱乐 成人娱乐在线| 免费αⅴ在线观看| 国产在线视频二区| 亚洲一卡二卡在线免费| 国产强奸无码乱伦| 黄片视频观看| 亚洲人妻在线精品| 欧美18老人禁| 精品高清av中文字幕| 久久国产AⅤ| 精品人妻中文字幕高清| 婷婷操视频| 草莓精品视频在线免费观看| 亚洲国产91精品一区二区久久| AV天堂国产| 日韩人妻中文视频| 成人av动漫在线观看| 日本三级日本三级99| 九九久久99| 大香蕉在线视频15| 国产精品欧美激在线| 欧美大色交| 久久久无码精品人妻二区| 97综合激情| 在线视频 亚洲精品| 无码高清操逼网址| 亚洲精品啪视频| 日韩人妻资源在线看| 亚洲AV免费在线观看| 欧美97视频| 91操熟女视频 | 亚洲欧美国产其他二区| 99色在线观看| 夜夜狼人妻| julia ann久久| 日韩熟女精一区二区三区不卡| 国产成人超碰在线| 国产精品自在线发布| 国产精品一二三区福利| 国产极品久久久| 亚洲色欧| 国产多人在线观看视频| 日韩国产中文字幕| 超碰97色色| 日本黄色精品| 久热在线精品免费观看| 久热大香蕉| 亚洲AV不卡在线观看尤物| 97久操| 两女互慰AV高潮喷水在线观看| 再深点灬舒服灬太大了好硬好爽| 欧美色图亚洲色图成人在在线| 啊啊啊啊啊啊啊在线| 97日韩欧美| 国产精品亚洲一区二区三区四区| 爆乳免费黄网站| 天堂av最新电影网| 国产亚洲性生活视频播放| 国产精品久久久三级无码| 97大色网| 人妻少妇精品| 在线国产探花| 很很很很操| 蜜乳AV免费观看| 91狠| 四虎在线视频| 无码WWW免费视频网站| 在线女人91| 久久99九九九九6666免费观看软件| 少妇3P性爱自拍| 久久久久久久久九九久孕交| 免费视频97| 中文字幕在线免费观看视频| 骚人妻少妇视频| 眼镜人妻101.com| 中文字幕日产av人| 欧美日韩97| 狠狠色婷婷| 亚洲天堂一区二区| 日韩一级特黄av毛片| 欧美日韩少妇色情| 欧美色www亚洲国产阿娇要播| 激情五月综合网| 超碰欧美COM| 亚欧国产无码精品在线| 国产精品在线一区二区| 秋霞成人做爱| 999综合色| 98人妻精品一区二区色欲| 视频在线观看一二三区| 日本一区不卡| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 五月天婷婷社区| 综合五月婷婷| 台湾佬大香蕉| 欧美日不卡| 国产品精品自在在线午夜免费 | 亚州男人天堂| 97WW精品| 91丨国产丨白浆秘 洗澡动漫| 狼人综合婷婷激情四射| 日本人妻丰满熟妇久久久久久| 天天欧美欧美亚洲网| 国产福利合集| 亚欧美天堂在线| 免费啪啪av| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊 | 日韩精品9999| 欧美一级黄片视频在线| 香蕉av一区二区三区| 亚洲色 国产 欧美 日韩| 无码人妻毛片丰满熟妇精品区| 1769精品一区二区三区| 人妻丝袜二区| 91女在线观看| 大香蕉一区二区在线观看.| 欧洲精品久久| 久久激情网| 麻豆久久精品亚洲精品88| 日欧美色| 国产亚洲精品美女久久久m| 老熟妇一区二区三区| 亚洲 日韩 欧美 国产综合体| 9118禁| 婷婷情色五月天| 凸凹视频在线观看| 人妻丝袜一区二区三区在线| 久久久不能久久久久| 色黄色美女大长腿午夜视频| 超碰97.com| 英伦大奶子熟妇吊带| 日本东京热加勒比久久| 亚洲中文字幕av| 亚洲色欲一区二区三区| 3p国产色噜噜一区| 在线亚洲欧美| 综合一区二区影视| 欧美另类色图片| 欧 美 自 拍 偷 拍| 亚洲精品 欧美97色色| 德国一二三不卡| 免费在线观看AV无码网站| 国产成人在线观看网址| 在线中文AV| www.97在线| 在免费jIzzjIzz在线视频| 美女啊啊啊啊啊| 久日综合网| 厕所偷拍在线| www欧美性爱| 日韩美女啪啪一区| 亚洲欧洲综合| 欧美亚洲宗合色性图| 丝袜AV一二三区| 欧美日韩性爱操大逼| 久久精品国产亚洲5555| 精久久久| 99蜜桃臀亚洲成人在线观看| 开心五月婷婷| 亚洲古典另类欧美在线| 尹人免费观看视频在线| 婷婷激情四射| 亚洲综合伊人| 一区二区三区 丝袜高跟| 久久亚洲不卡| 久久久久9| 91强热人妻| AV一区观看| 精品无码久久久久久久杏吧| 欧美色图校园春色| 色综合 加勒比| 美女诱惑在线一区| 久久超碰免费的| 欧美嗯啊……在线观看视频免费| 成人性爱电影一区二区| 国产精品999zyz| 欧洲亚洲国产综合在线| 97免费在线视频| 男人的天堂免费| 蜜臀va69| 亚洲脚交| 人人操人人精品影片| 老司机午夜福利视频一区二区| 亚洲瓯美色图| 色九月综合| av情色影音| 嗯……啊…嗯嗯…啊…好舒服| 婷婷久草一区二区三区| 伊人色综合网| 精品久久久久久亚洲| 人妻久久久久久| 久久婷五月天| 丁香五月激情综合| 熟妇人妻精品一区二区视频色欲| 狠狠综合| 久久色人体| 久久久久久久久久久久久久久性生活视频 | 亚洲性综合9| 炮色五月| 97激情97激情| 久久久穴999| 色超碰综合| 国产精品一区二区后入| 台湾佬中文娱乐网久久久久久久久久com | 中文字幕中文字幕一区二区| 黄片色区软件| 国产成人精品日本视频| 中文字幕一区日韩精| 色五月综合| 射丝袜高跟鞋99| 丝袜视频一区二区在线播放国产中文| 日本蜜桃| 91AV国产精品| 久久粉色| 国产精品久久久久久久无码AV| 久久免费99精品久久久久久| 国产亚洲精品农村妇女| 国产一级αv免费看片| 五月激情在线| 欧美熟妇精品黑人巨大一二三区| 歐美性天天| 久9综合在线| 欧美天天弄| 成人精品一区二区91毛片不卡 | 人妻丰满熟妇av无码区蜜桃| 国产精品夜夜| AV一起草在线| 久久一区二区三区入口| 青青草视频久久| 亚洲色图国产另类| 密臀成人视频久久久| 青青草中文字幕| ji熟女.com| 色综合久久久久| 欧美 青青草| 91插B网站| 国产高清午夜成人在线观看| 日本午夜操逼| 狠狠躁AV| 超碰欧美97资源| 国产一区二区二区按摩精品啪视频| 特级特黄一级毛片免费| 大屁股xxxxx| 色女综合| 久久久久女教师免费一区| 操啊国产| 久久久婷| 无毛精品| 国产精品一二三区18| 视频分类 国内精品| 日韩内射视频| 全国男人天堂网| 大香蕉视频一二三区| 操91| 超碰97导航| 欧美综合国产精品久久丁香| 乱色视频中文字幕| 人妻人人澡人人爽人人| 亚洲精品人体| 国产18精品亚洲精品| 免费9 1久久| 骚女天天综合网| 狠狠色噜噜狠狠狠狠狠色综合久久 | 欧美毛片在线网| 台湾佬中文娱乐网久久久久久久久久com | 亚洲九九视频| 777AV电影| 欧美亚洲20p| 五月天亚洲色图| 亚洲成?V人片在线观看福利| 日韩ab网| 黄色AV免费| 久久精品亚洲婷婷| 亚洲一区二区av| 999国产精品999| 99re这里| 在线岛| 麻豆人妻少妇在线免费观看| 国产精品自拍视频| 91超级碰碰| 久草成人影片| 中国国国产一级特黄毛片| 精品一区二区三区四区女| 麻豆精品一区二区三区四区免费观看| 3p国产欧美99热| 色偷偷人人玩人人舔人人操人人摸人人爽 | 18禁中文字幕| 欧美成人综合| 在线无码视频| 目产99999久久999| 1人人看人人摸人人操| 综精品久久久aaaa| 国产成人在线观看网址| 伊人综合色网| 夫妻天天操岛国视频| 久久人妻丝袜一区二区三| 亚洲丝袜在线观看| 五月天综合网| 凌辱美少妇久久aV| 午夜天堂精品久久久久91| 蜜臀久久99精品久久久久久成人小说 | 人妻无一区二区三区| 麻豆黄四叶草网站| 日本成人A片网站| 熟妇人妻一区二区三在线| 国产精品美女在线一区| 精国久久一区二区三区98| 免费αⅴ在线观看| 懂色av中文字幕一区二区三区天美| 强奸乱伦日韩AV| 色网亚洲人| 又黄又爽在线观看视频| 超碰欧美| 国产日韩人人| 欧日a| 亚洲激情在线| 精品妇女一区二区三区| 久久永久无码人妻视频| 啊啊啊97视频| 久久久久九九九| 日韩有码中文字幕女同性恋| 97精品国产97久久久久久免费| 丰满美女一级毛片在线播放| 91性感网站| 色婷婷网| 国内毛片欧美香蕉精品| 好屌色综合| 五月大香蕉| 国产午夜福利专区综合| 人妻激情在线视频| 日本狠狠干| 中文字幕,人妻,日韩| 91精品操美女| 蜜臀精品1区2区| 亚洲成?V人片在线观看福利| 大香蕉日韩| 精品96久久| 久9热| 人人做,人人操,人人摸| 97久久久久久久久久| 青青草密桃在线播放| 人人看欧美性爱| 日韩猛交| 久久精品视频一区三区小泽玛利亚| 欧美色色色| 亚洲熟女精品| 夜夜性| 国产精品天干天干综合网麻豆| 国产一级片| 成人性爱视频在线看| 91爱网| 亚洲精品国产熟女久久久| 四月丁香婷婷| 去干网最新版| 国产久久成人| 精品免费一区| 黄页网站成人免费| 一级黄碟在线观看| 久久亚洲不卡| 男女真人网18| 国产久久成人| 少妇久久久久久| 国产三级中文字幕粉嫩| 91亚洲影院综合| 1024香蕉视频| 精品久久人妻成人网| 在线播放免费av福利片| 精品国产乱码久久久久久网站入口| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊| 国产亚洲一黄| 少妇滛荡视频| 伊人影院综合是一个与深夜成人在线| 亚洲人成在线放东京热| 欧亚三区动漫| 97操综合| 中文字幕一区二区三四五区日日骚| 刺激性视频黄页| 亚洲不卡AV在线| 色婷婷久久| 久久久国产成人一区二区三区在线| 国产AV色黄看到爽| 亚欧免费观看视频| 国产精品蜜乳AV| 強姦亂倫a| 东北少妇高潮zzzz| 欧美不在线| 久久精品国产97欧美精品亚洲| 99黄页网站| 欧美亚州综合图片| 91伊人大香蕉| 青青草视频在线观看一区二区| 97超碰碰碰| 极品色社| 婷婷久草一区二区三区| 久热超碰| 色五月网址| 色丁香五月婷婷| 亚洲综合五月天婷婷丁香| 色婷婷基地| 五月天婷婷成人网| 天天日天天舔天天喷天天射| 久久精品99| 五月天开心网| 蜜臀久久一区二区| 骚货| 校园春色制服丝袜中文字亚洲| www.91色综合| 殴美,日韩国产伦精品| 天美精品av| 九九九九九九亚洲| 免费农村成人少妇人妻Aa一区二区视频 | 国产污视频麻豆传媒一区二区| 96AV久久久| 亚热日本熟女| 亚洲骚男同com| 蜜臀久久99精品久久久久久成人小说|