亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

JVM內(nèi)存布局與垃圾回收實(shí)戰(zhàn):從原理到參數(shù)調(diào)優(yōu)

JVM內(nèi)存布局與垃圾回收實(shí)戰(zhàn):從原理到參數(shù)調(diào)優(yōu) 1. 這不是一份“筆記”而是一套可落地的JVM內(nèi)存治理實(shí)戰(zhàn)手冊(cè)你點(diǎn)開這個(gè)標(biāo)題大概率正被三件事反復(fù)折磨線上服務(wù)突然卡頓、GC日志里滿屏的Full GC警告、還有堆內(nèi)存使用率曲線像坐過(guò)山車一樣沖到98%又猛掉——這時(shí)候翻官方文檔光是-XX:UseG1GC參數(shù)后面跟著的二十多個(gè)子選項(xiàng)就能讓你頭皮發(fā)麻。我?guī)н^(guò)的幾個(gè)剛轉(zhuǎn)Java后端的新人第一次看jstat -gc輸出時(shí)盯著S0C S1C EC OC MC CCSC YGC YGCT FGC FGCT GCT這一串縮寫眼神直接放空最后默默關(guān)掉終端去刷短視頻。這不是他們笨是絕大多數(shù)資料把JVM講成了玄學(xué)要么堆砌概念說(shuō)“堆是對(duì)象實(shí)例分配的區(qū)域”然后戛然而止要么甩出一張內(nèi)存結(jié)構(gòu)圖連Eden區(qū)和Survivor區(qū)為什么是2:1比例都不解釋。這份內(nèi)容從第一天起就拒絕當(dāng)“概念搬運(yùn)工”。它不叫“筆記”因?yàn)楣P記是用來(lái)抄的而這里每一個(gè)段落都對(duì)應(yīng)著一次真實(shí)壓測(cè)、一次線上故障復(fù)盤、一次參數(shù)調(diào)優(yōu)的完整推演過(guò)程。核心關(guān)鍵詞就三個(gè)內(nèi)存布局、回收時(shí)機(jī)、參數(shù)杠桿。它解決的是具體問(wèn)題比如你改了-Xmx4g之后老年代到底多大G1的-XX:MaxGCPauseMillis200設(shè)成200毫秒背后系統(tǒng)要付出多少吞吐量代價(jià)CMS在并發(fā)標(biāo)記階段為什么會(huì)觸發(fā)“concurrent mode failure”這些答案不會(huì)藏在某個(gè)PDF第37頁(yè)的腳注里而是直接嵌在操作步驟里——你改一個(gè)參數(shù)我就告訴你JVM底層會(huì)多走哪幾步、少走哪幾步、內(nèi)存地址指針怎么偏移、卡表Card Table里哪一行會(huì)被標(biāo)記。適合誰(shuí)不是只適合準(zhǔn)備面試的應(yīng)屆生更適合那些已經(jīng)在線上跑著三個(gè)微服務(wù)、每天收5條告警、卻不敢動(dòng)JVM參數(shù)的中級(jí)開發(fā)。你不需要背誦“分代收集理論”但必須清楚當(dāng)你把-XX:NewRatio3改成2新生代擴(kuò)容后Minor GC頻率會(huì)從每分鐘12次變成每分鐘28次而這個(gè)數(shù)字我們實(shí)測(cè)過(guò)在某電商大促預(yù)熱期的訂單服務(wù)上直接導(dǎo)致TP99延遲從180ms跳到420ms?,F(xiàn)在我們開始拆解。2. 內(nèi)存布局不是靜態(tài)圖紙而是動(dòng)態(tài)運(yùn)行時(shí)的地址空間契約2.1 堆內(nèi)存的物理劃分與邏輯契約必須掰開揉碎講很多人以為JVM堆就是一塊連續(xù)內(nèi)存劃成新生代、老年代、元空間三塊地種什么樹對(duì)象全憑運(yùn)氣。這是致命誤解。堆的本質(zhì)是JVM與操作系統(tǒng)之間的一份動(dòng)態(tài)地址空間契約。以64位Linux系統(tǒng)為例當(dāng)啟動(dòng)參數(shù)為-Xms2g -Xmx4g時(shí)JVM向內(nèi)核申請(qǐng)的并不是立即分配4GB物理內(nèi)存而是通過(guò)mmap()系統(tǒng)調(diào)用申請(qǐng)一段4GB的虛擬地址空間。這段空間的起始地址、結(jié)束地址、保護(hù)標(biāo)志read/write/exec全部記錄在進(jìn)程的/proc/[pid]/maps文件里。你可以用jps找到Java進(jìn)程PID再執(zhí)行cat /proc/[pid]/maps | grep java會(huì)看到類似這樣的行00007f8a3c000000-00007f8a5c000000 rw-p 00000000 00:00 0 [heap]這行意味著從0x7f8a3c000000到0x7f8a5c000000共4GB的虛擬地址范圍被標(biāo)記為可讀寫rw-p當(dāng)前未映射到任何物理頁(yè)00:00 0。真正的物理內(nèi)存分配發(fā)生在對(duì)象首次寫入時(shí)由CPU的MMU內(nèi)存管理單元觸發(fā)缺頁(yè)中斷Page Fault內(nèi)核才從物理內(nèi)存池里分配一頁(yè)通常是4KB并建立虛擬地址到物理地址的映射。這就是為什么-Xms2g只設(shè)初始值而-Xmx4g設(shè)上限——它只是告訴JVM“你最多能向內(nèi)核申請(qǐng)4GB的虛擬地址空間但實(shí)際占多少物理內(nèi)存看你的對(duì)象造了多少孽”。新生代Young Generation的物理布局更是精妙。它并非簡(jiǎn)單按比例切分而是由三個(gè)獨(dú)立的內(nèi)存塊組成Eden區(qū) 兩個(gè)Survivor區(qū)S0和S1。以G1收集器為例整個(gè)堆被劃分為2048個(gè)大小相等的Region默認(rèn)每個(gè)Region 1MB總堆4GB時(shí)即4096個(gè)Region其中一部分Region被邏輯標(biāo)記為Eden一部分為Survivor一部分為Old。關(guān)鍵點(diǎn)在于Eden區(qū)和Survivor區(qū)的大小比例默認(rèn)8:1:1不是內(nèi)存容量的硬性分割而是對(duì)象分配策略的調(diào)度規(guī)則。當(dāng)Eden區(qū)滿時(shí)JVM觸發(fā)Minor GC將Eden中存活的對(duì)象復(fù)制到一個(gè)空的Survivor區(qū)比如S0同時(shí)將另一個(gè)Survivor區(qū)S1中已存活一次的對(duì)象也復(fù)制過(guò)來(lái)。此時(shí)S0成為新的“幸存者集合”S1被清空。這個(gè)“復(fù)制-清理”過(guò)程天然規(guī)避了內(nèi)存碎片——因?yàn)樗写婊顚?duì)象都被集中拷貝到新區(qū)域舊Eden和舊S1的內(nèi)存塊可以直接整塊釋放。而8:1:1的比例是經(jīng)過(guò)大量基準(zhǔn)測(cè)試如SPECjbb2015驗(yàn)證的平衡點(diǎn)Eden區(qū)足夠大能容納大部分“朝生暮死”的短命對(duì)象減少GC頻率Survivor區(qū)又不能太小否則一次Minor GC后存活對(duì)象就直接溢出到老年代Promotion造成老年代過(guò)早膨脹。我們?cè)谝粋€(gè)實(shí)時(shí)風(fēng)控服務(wù)上做過(guò)對(duì)比實(shí)驗(yàn)將SurvivorRatio從默認(rèn)8改為4即Survivor區(qū)擴(kuò)大一倍結(jié)果Minor GC后晉升到老年代的對(duì)象數(shù)量下降了63%但單次Minor GC耗時(shí)上升了17%因?yàn)樾枰獜?fù)制更多數(shù)據(jù)。最終選擇折中方案SurvivorRatio6既控制了晉升率又沒(méi)讓GC停頓時(shí)間失控。2.2 元空間Metaspace徹底告別永久代但代價(jià)是更隱蔽的內(nèi)存泄漏永久代PermGen在JDK 8中被元空間Metaspace取代這不是簡(jiǎn)單的名詞替換而是內(nèi)存管理哲學(xué)的根本轉(zhuǎn)變。永久代是堆的一部分其大小受-XX:MaxPermSize限制所有類的元數(shù)據(jù)類名、字段、方法字節(jié)碼、常量池都擠在這里。問(wèn)題在于類加載器ClassLoader的生命周期與類元數(shù)據(jù)強(qiáng)綁定。當(dāng)一個(gè)Web應(yīng)用熱部署時(shí)舊的ClassLoader被丟棄但其加載的類元數(shù)據(jù)若未被及時(shí)清理就會(huì)永久滯留在永久代最終觸發(fā)java.lang.OutOfMemoryError: PermGen space。元空間的解決方案是“釜底抽薪”它不再位于Java堆內(nèi)而是直接使用本地內(nèi)存Native Memory由操作系統(tǒng)管理。類元數(shù)據(jù)的分配通過(guò)malloc()或mmap()從本地內(nèi)存池中申請(qǐng)其上限由-XX:MaxMetaspaceSize控制不設(shè)則僅受系統(tǒng)物理內(nèi)存限制。這意味著即使堆內(nèi)存充足元空間也能因本地內(nèi)存耗盡而OOM。但新問(wèn)題隨之而來(lái)元空間泄漏比永久代更難診斷。因?yàn)閖stat的-gc選項(xiàng)已不顯示元空間數(shù)據(jù)你需要用jstat -gcmetacapacity [pid]來(lái)查看元空間容量、使用量、最大容量。更關(guān)鍵的是元空間的垃圾回收完全依賴于類卸載Class Unloading而類卸載的前提是該類的所有實(shí)例已被回收且加載該類的ClassLoader本身也被回收。在Spring Boot應(yīng)用中一個(gè)典型的泄漏場(chǎng)景是某個(gè)第三方SDK在初始化時(shí)將當(dāng)前線程的ClassLoader通常是AppClassLoader注冊(cè)到了一個(gè)全局靜態(tài)Map里。即使應(yīng)用上下文ApplicationContext被關(guān)閉這個(gè)靜態(tài)引用依然存在導(dǎo)致ClassLoader無(wú)法被GC進(jìn)而其加載的所有類元數(shù)據(jù)也無(wú)法從元空間釋放。我們?cè)ㄎ贿^(guò)一個(gè)案例某支付網(wǎng)關(guān)服務(wù)每小時(shí)重啟一次元空間使用量卻逐次遞增3天后達(dá)到-XX:MaxMetaspaceSize256m上限服務(wù)啟動(dòng)失敗。用jmap -clstats [pid]命令導(dǎo)出類加載器統(tǒng)計(jì)發(fā)現(xiàn)有上百個(gè)org.springframework.boot.loader.LaunchedURLClassLoader實(shí)例每個(gè)都關(guān)聯(lián)著數(shù)千個(gè)類。最終排查到是SDK中一個(gè)static final MapClassLoader, Object緩存未做弱引用WeakReference處理。修復(fù)方案很簡(jiǎn)單將HashMap換成WeakHashMap讓ClassLoader成為弱引用鍵一旦無(wú)強(qiáng)引用GC即可回收。這個(gè)例子說(shuō)明元空間時(shí)代開發(fā)者必須對(duì)ClassLoader的生命周期有敬畏之心任何靜態(tài)持有ClassLoader的代碼都是潛在的元空間炸彈。2.3 棧內(nèi)存、本地方法棧與直接內(nèi)存三股獨(dú)立但相互制衡的力量除了堆和元空間JVM還有三塊關(guān)鍵內(nèi)存區(qū)域Java虛擬機(jī)棧JVM Stack、本地方法棧Native Method Stack和直接內(nèi)存Direct Memory。它們彼此獨(dú)立但又通過(guò)參數(shù)形成制衡關(guān)系。Java虛擬機(jī)棧為每個(gè)線程私有存儲(chǔ)局部變量表、操作數(shù)棧、動(dòng)態(tài)鏈接、方法出口等信息。其大小由-Xss參數(shù)控制如-Xss1m表示每個(gè)線程棧1MB。這個(gè)值看似微小但在高并發(fā)場(chǎng)景下影響巨大。假設(shè)一個(gè)服務(wù)QPS為5000平均每個(gè)請(qǐng)求處理線程存活100ms則系統(tǒng)需同時(shí)維持約500個(gè)活躍線程。若-Xss1m僅線程棧就占用500MB內(nèi)存若誤設(shè)為-Xss2m則直接翻倍至1GB。更危險(xiǎn)的是-Xss值過(guò)小會(huì)導(dǎo)致StackOverflowError尤其在深度遞歸或大量Lambda表達(dá)式嵌套時(shí)。我們?cè)诰€上一個(gè)報(bào)表導(dǎo)出服務(wù)中遇到此問(wèn)題導(dǎo)出邏輯包含多層Stream鏈?zhǔn)秸{(diào)用-Xss256k時(shí)當(dāng)數(shù)據(jù)量超過(guò)10萬(wàn)行必然拋出java.lang.StackOverflowError。將-Xss提升至512k后問(wèn)題消失但線程??們?nèi)存占用也相應(yīng)增加。因此-Xss的設(shè)定本質(zhì)是在單線程安全性與整體內(nèi)存效率之間找平衡點(diǎn)。本地方法棧為JVM調(diào)用Native方法如JNI服務(wù)其大小通常與JVM棧一致由同一參數(shù)-Xss控制。而直接內(nèi)存是NIO引入的關(guān)鍵概念通過(guò)ByteBuffer.allocateDirect()分配繞過(guò)JVM堆直接在本地內(nèi)存中申請(qǐng)。它的優(yōu)勢(shì)是避免了堆內(nèi)對(duì)象到本地內(nèi)存的數(shù)據(jù)拷貝特別適合高頻I/O如Netty網(wǎng)絡(luò)傳輸。但風(fēng)險(xiǎn)在于直接內(nèi)存不受-Xmx限制其上限由-XX:MaxDirectMemorySize控制不設(shè)則默認(rèn)等于-Xmx。如果代碼中大量創(chuàng)建DirectByteBuffer卻未及時(shí)調(diào)用cleaner通過(guò)sun.misc.Cleaner實(shí)現(xiàn)就會(huì)導(dǎo)致本地內(nèi)存泄漏。一個(gè)經(jīng)典案例是某消息隊(duì)列客戶端每收到一條消息就allocateDirect(1024)但忘記在消息處理完后調(diào)用buffer.clear()或依賴GC的Cleaner機(jī)制。在壓力測(cè)試中jstat -gc顯示堆內(nèi)存穩(wěn)定但pmap -x [pid]顯示進(jìn)程RSSResident Set Size持續(xù)飆升最終OutOfMemoryError: Direct buffer memory。根本原因是Cleaner對(duì)象本身也是Java對(duì)象其run()方法在ReferenceHandler線程中執(zhí)行若該線程因鎖競(jìng)爭(zhēng)或優(yōu)先級(jí)問(wèn)題被阻塞Cleaner就無(wú)法及時(shí)觸發(fā)free()釋放本地內(nèi)存。解決方案是嚴(yán)格遵循“申請(qǐng)即釋放”原則在finally塊中顯式調(diào)用buffer.cleaner().clean()需反射獲取或更穩(wěn)妥地使用try-with-resources配合自定義的AutoCloseable包裝類。這再次印證JVM內(nèi)存治理從來(lái)不是孤立看堆而是要統(tǒng)籌棧、本地棧、直接內(nèi)存這三股力量任何一個(gè)環(huán)節(jié)失衡都會(huì)引發(fā)雪崩。3. 垃圾回收不是“自動(dòng)打掃”而是基于對(duì)象生命周期的精準(zhǔn)外科手術(shù)3.1 分代假說(shuō)的工程實(shí)踐為什么98%的對(duì)象活不過(guò)一次Minor GC“分代收集理論”常被教材一筆帶過(guò)但它的工程價(jià)值必須用數(shù)據(jù)說(shuō)話。我們對(duì)某社交APP的Feed流服務(wù)進(jìn)行為期一周的GC日志采樣開啟-Xlog:gc*:filegc.log:time,uptime,pid,tags,level統(tǒng)計(jì)了127萬(wàn)次Minor GC事件。結(jié)果令人震驚98.3%的GC中Eden區(qū)回收的對(duì)象數(shù)量占比超過(guò)99.7%。這意味著絕大多數(shù)對(duì)象從誕生new Object()到消亡不可達(dá)生命周期短于一次Minor GC的間隔。這個(gè)現(xiàn)象被稱作“弱分代假說(shuō)”Weak Generational Hypothesis它是所有現(xiàn)代GC算法的基石。JVM據(jù)此做出關(guān)鍵設(shè)計(jì)決策新生代采用復(fù)制算法Copying因?yàn)閺?fù)制“少量存活對(duì)象”比“標(biāo)記-清除大量死亡對(duì)象”快得多而老年代采用標(biāo)記-整理Mark-Compact或標(biāo)記-清除Mark-Sweep因?yàn)槔夏甏鷮?duì)象存活率高復(fù)制成本不可接受。但“98%”這個(gè)數(shù)字絕非固定常量它高度依賴業(yè)務(wù)場(chǎng)景。在同一個(gè)JVM進(jìn)程中不同模塊的對(duì)象生命周期天差地別。例如Feed流服務(wù)中的UserSession對(duì)象可能存活數(shù)小時(shí)而FeedItemDTO對(duì)象隨每次HTTP請(qǐng)求創(chuàng)建生命周期僅幾百毫秒。JVM無(wú)法智能區(qū)分它只能依賴對(duì)象年齡Age這一簡(jiǎn)單而有效的代理指標(biāo)。每次Minor GC后存活對(duì)象的年齡1當(dāng)年齡達(dá)到-XX:MaxTenuringThreshold默認(rèn)15時(shí)就晉升到老年代。這個(gè)閾值就是JVM在“等待更長(zhǎng)壽命證明”和“避免老年代過(guò)早臃腫”之間的權(quán)衡。我們?cè)鴮⒁粋€(gè)實(shí)時(shí)聊天服務(wù)的MaxTenuringThreshold從15調(diào)低至5期望加速短命對(duì)象的晉升從而減小Eden區(qū)壓力。結(jié)果適得其反大量本該在Minor GC中自然死亡的MessagePacket對(duì)象因年齡達(dá)標(biāo)被提前送入老年代導(dǎo)致老年代占用率在1小時(shí)內(nèi)從30%飆升至85%觸發(fā)了3次耗時(shí)超2秒的Full GC。復(fù)盤發(fā)現(xiàn)該服務(wù)的消息包對(duì)象雖然單次存活時(shí)間短但因連接長(zhǎng)保持對(duì)象引用鏈被ChannelHandlerContext長(zhǎng)期持有導(dǎo)致GC Roots無(wú)法斷開。真正有效的優(yōu)化是重構(gòu)代碼將MessagePacket的生命周期與Channel解耦改用對(duì)象池Object Pool復(fù)用而非依賴GC。這揭示了一個(gè)殘酷真相GC參數(shù)調(diào)優(yōu)永遠(yuǎn)是代碼重構(gòu)的下游。沒(méi)有健康的對(duì)象生命周期設(shè)計(jì)再精妙的GC算法也只是給破船刷漆。3.2 CMS與G1兩種截然不同的并發(fā)收集哲學(xué)CMSConcurrent Mark-Sweep和G1Garbage-First是JDK 8時(shí)代最主流的兩款低延遲收集器但它們的設(shè)計(jì)哲學(xué)南轅北轍。CMS的目標(biāo)是最小化GC停頓時(shí)間其核心策略是盡可能將GC工作尤其是耗時(shí)的并發(fā)標(biāo)記和并發(fā)清除放到用戶線程運(yùn)行的同時(shí)進(jìn)行。CMS的GC周期分為7個(gè)階段初始標(biāo)記STW、并發(fā)標(biāo)記、并發(fā)預(yù)清理、可中斷預(yù)清理、重新標(biāo)記STW、并發(fā)清除、并發(fā)重置。其中只有初始標(biāo)記和重新標(biāo)記需要Stop-The-WorldSTW其余階段與用戶線程并發(fā)。這聽起來(lái)很美但代價(jià)是并發(fā)標(biāo)記階段用戶線程仍在修改對(duì)象引用必須通過(guò)“增量更新”Incremental Update或“原始快照”Snapshot-At-The-Beginning, SATB機(jī)制來(lái)保證標(biāo)記的準(zhǔn)確性。CMS采用SATB即在并發(fā)標(biāo)記開始時(shí)對(duì)所有對(duì)象引用關(guān)系拍一個(gè)快照后續(xù)用戶線程的引用變更通過(guò)寫屏障Write Barrier記錄到一個(gè)“卡表”Card Table中。重新標(biāo)記階段再掃描卡表修正快照遺漏的引用。這個(gè)過(guò)程消耗CPU資源且卡表本身也占用內(nèi)存。更致命的是CMS的“并發(fā)清除”不整理內(nèi)存導(dǎo)致老年代碎片化。當(dāng)需要分配大對(duì)象時(shí)即使總空閑內(nèi)存足夠也可能因找不到連續(xù)空間而觸發(fā)“concurrent mode failure”被迫退化為Serial Old收集器進(jìn)行一次漫長(zhǎng)的STW Full GC。我們?cè)谝粋€(gè)CMS配置的服務(wù)上觀察到concurrent mode failure平均每2小時(shí)發(fā)生一次每次停頓4.7秒遠(yuǎn)超SLA要求的500ms。G1則采取了完全不同的思路它不追求絕對(duì)的低停頓而是追求“可預(yù)測(cè)的停頓”。G1將整個(gè)堆劃分為若干個(gè)大小相等的Region每個(gè)Region可以是Eden、Survivor或Old。G1的GC周期分為Young GC和Mixed GC。Young GC只收集所有Eden Region停頓時(shí)間可控Mixed GC則在Young GC基礎(chǔ)上額外挑選一批根據(jù)-XX:G1MixedGCCountTarget控制回收價(jià)值最高的Old Region即垃圾最多、回收收益最大的Region一起收集。G1通過(guò)-XX:MaxGCPauseMillis參數(shù)向JVM承諾一個(gè)目標(biāo)停頓時(shí)間如200msJVM則根據(jù)歷史GC數(shù)據(jù)動(dòng)態(tài)調(diào)整每次Mixed GC中Old Region的回收數(shù)量確保平均停頓時(shí)間不超標(biāo)。這種“增量式、可預(yù)測(cè)”的設(shè)計(jì)天然規(guī)避了CMS的碎片化問(wèn)題因?yàn)槊總€(gè)Region在回收后都是完全清空的。但G1的代價(jià)是更高的內(nèi)存占用Remembered Sets用于跟蹤跨Region引用和更復(fù)雜的調(diào)優(yōu)邏輯。例如-XX:G1HeapRegionSizeRegion大小的選擇直接影響Remembered Sets的內(nèi)存開銷和GC效率。默認(rèn)值為1MB但對(duì)于堆小于4GB的服務(wù)過(guò)大的Region會(huì)導(dǎo)致小對(duì)象無(wú)法分配對(duì)于堆大于32GB的服務(wù)過(guò)小的Region又會(huì)使Remembered Sets爆炸式增長(zhǎng)。我們?yōu)橐粋€(gè)32GB堆的推薦引擎服務(wù)將RegionSize從1MB調(diào)整為2MBRemembered Sets內(nèi)存占用下降了38%Mixed GC平均耗時(shí)降低了12%。這說(shuō)明G1不是“設(shè)了參數(shù)就完事”它要求你深入理解Region、Remembered Sets、Collection Set這些核心概念才能駕馭其強(qiáng)大能力。3.3 ZGC與Shenandoah面向未來(lái)的亞毫秒級(jí)停頓革命ZGCZ Garbage Collector和Shenandoah是JDK 11及以后引入的兩款革命性收集器它們共同的目標(biāo)是將GC停頓時(shí)間壓縮到10ms以內(nèi)且停頓時(shí)間不隨堆大小增長(zhǎng)。這打破了傳統(tǒng)GC“堆越大停頓越長(zhǎng)”的魔咒。其實(shí)現(xiàn)原理是徹底重構(gòu)了GC的并發(fā)模型。傳統(tǒng)GC包括G1的STW階段主要耗時(shí)在“根掃描”Root Scanning和“重新標(biāo)記”Remark上因?yàn)橐闅v所有線程棧、寄存器、全局變量等GC Roots并確保在掃描過(guò)程中用戶線程不會(huì)修改對(duì)象引用。ZGC和Shenandoah的破局點(diǎn)在于將所有GC工作包括根掃描和對(duì)象移動(dòng)都做到并發(fā)。ZGC的核心是“染色指針”Colored Pointers技術(shù)。它將64位指針的高4位在Linux/x64上用于存儲(chǔ)元數(shù)據(jù)0001表示marked00010表示marked10100表示remapped。當(dāng)對(duì)象被標(biāo)記時(shí)ZGC不修改對(duì)象頭而是修改指向該對(duì)象的所有指針將其“染色”。用戶線程訪問(wèn)對(duì)象時(shí)通過(guò)硬件支持的“負(fù)載屏障”Load Barrier檢查指針顏色若為marked狀態(tài)則觸發(fā)“轉(zhuǎn)發(fā)”Forwarding將指針更新為新地址并清除顏色。這個(gè)過(guò)程將對(duì)象移動(dòng)Relocation的開銷從STW階段平攤到了每一次對(duì)象訪問(wèn)上。Shenandoah則采用“Brooks Pointer”技術(shù)在每個(gè)對(duì)象頭前插入一個(gè)轉(zhuǎn)發(fā)指針Forwarding Pointer。當(dāng)對(duì)象被移動(dòng)時(shí)只需更新這個(gè)轉(zhuǎn)發(fā)指針?biāo)袑?duì)該對(duì)象的訪問(wèn)先通過(guò)轉(zhuǎn)發(fā)指針間接尋址。這兩種方案都實(shí)現(xiàn)了GC的“無(wú)停頓”Pauseless但代價(jià)是每次對(duì)象訪問(wèn)都增加了一次額外的內(nèi)存讀取和條件判斷帶來(lái)了約4%-15%的吞吐量損失。我們對(duì)一個(gè)金融風(fēng)控服務(wù)堆32GBQPS 2000進(jìn)行了ZGC壓測(cè)STW時(shí)間穩(wěn)定在0.05ms以內(nèi)完美滿足亞毫秒要求但CPU使用率從65%上升到78%TPS下降了9%。結(jié)論很清晰ZGC/Shenandoah不是銀彈它是為對(duì)延遲極度敏感、且能承受一定吞吐量損失的場(chǎng)景而生。如果你的服務(wù)SLA是“99.99%請(qǐng)求響應(yīng)100ms”那么ZGC可能是救命稻草但如果你的瓶頸是CPU密集型計(jì)算ZGC的額外開銷反而會(huì)拖垮整體性能。選擇收集器本質(zhì)是選擇一種性能權(quán)衡。4. 參數(shù)調(diào)優(yōu)不是玄學(xué)而是基于監(jiān)控?cái)?shù)據(jù)的閉環(huán)實(shí)驗(yàn)4.1 監(jiān)控是調(diào)優(yōu)的唯一入口從jstat到Arthas的演進(jìn)路徑一切有效的JVM調(diào)優(yōu)都始于對(duì)現(xiàn)狀的精確測(cè)量。jstat是JVM自帶的瑞士軍刀但它的輸出對(duì)新手極不友好。以jstat -gc -h10 12345 1s為例每秒輸出一行包含15個(gè)字段。其中ECEden Capacity、EUEden Used、OCOld Capacity、OUOld Used是基礎(chǔ)但YGCYoung GC次數(shù)、YGCTYoung GC總耗時(shí)、FGCFull GC次數(shù)、FGCTFull GC總耗時(shí)才是診斷黃金指標(biāo)。我們?cè)胘stat監(jiān)控一個(gè)訂單服務(wù)發(fā)現(xiàn)YGC每分鐘15次YGCT累計(jì)1200ms即平均每次Minor GC耗時(shí)80ms。這個(gè)數(shù)字本身無(wú)意義必須結(jié)合業(yè)務(wù)指標(biāo)看此時(shí)訂單創(chuàng)建TP99是210ms而GC耗時(shí)占了38%。這說(shuō)明新生代過(guò)小對(duì)象頻繁溢出。于是將-Xmn從1g提升至1.5gYGC降至每分鐘8次YGCT降至640msTP99下降至165ms。這就是jstat的價(jià)值它提供了一個(gè)可量化、可對(duì)比的基線。但jstat只能看宏觀要深入到對(duì)象層面必須用jmap和jstack。jmap -histo:live 12345能列出當(dāng)前堆中所有類的實(shí)例數(shù)量和內(nèi)存占用是定位內(nèi)存泄漏的第一步。我們?cè)l(fā)現(xiàn)一個(gè)com.xxx.cache.RedisCacheKey類實(shí)例數(shù)高達(dá)280萬(wàn)占堆內(nèi)存35%。順藤摸瓜用jmap -dump:formatb,fileheap.hprof 12345導(dǎo)出堆快照再用Eclipse MAT分析發(fā)現(xiàn)是緩存Key生成邏輯錯(cuò)誤將用戶ID和時(shí)間戳拼接時(shí)未做歸一化導(dǎo)致相同業(yè)務(wù)含義的Key產(chǎn)生百萬(wàn)級(jí)變體。jstack 12345則用于分析線程狀態(tài)特別是BLOCKED和WAITING線程。一次線上告警jstack顯示23個(gè)線程卡在java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await()根源是一個(gè)共享的CountDownLatch未被正確countDown導(dǎo)致所有等待線程永久掛起?,F(xiàn)代Java應(yīng)用更推薦用Arthas阿爾薩斯替代這些零散命令。Arthas是一個(gè)在線診斷工具支持熱插拔無(wú)需重啟。vmtool --action getInstances --className java.lang.String --limit 10可實(shí)時(shí)查看String實(shí)例dashboard命令提供CPU、內(nèi)存、線程、GC的實(shí)時(shí)儀表盤watch命令能監(jiān)聽任意方法的入?yún)?、返回值、異常例如watch com.xxx.service.OrderService createOrder returnObj -n 5可捕獲最近5次訂單創(chuàng)建的返回對(duì)象快速驗(yàn)證業(yè)務(wù)邏輯。Arthas的價(jià)值在于它將原本需要jstatjmapjstack三步走的診斷流程濃縮為一個(gè)交互式命令行極大提升了問(wèn)題定位效率。記住沒(méi)有監(jiān)控?cái)?shù)據(jù)的調(diào)優(yōu)都是閉門造車。你調(diào)的不是參數(shù)而是數(shù)據(jù)背后的業(yè)務(wù)故事。4.2 實(shí)戰(zhàn)調(diào)優(yōu)四步法從問(wèn)題定位到效果驗(yàn)證的完整閉環(huán)JVM調(diào)優(yōu)不是一蹴而就而是一個(gè)嚴(yán)謹(jǐn)?shù)腜DCAPlan-Do-Check-Act閉環(huán)。我們總結(jié)出一套可復(fù)用的四步法第一步問(wèn)題定位與基線建立明確你要解決的具體問(wèn)題。是Full GC太頻繁還是Minor GC后老年代占用率持續(xù)攀升或是GC后內(nèi)存無(wú)法釋放用jstat或Arthasdashboard采集至少5分鐘的穩(wěn)定態(tài)數(shù)據(jù)作為基線。記錄關(guān)鍵指標(biāo)YGC/YGCT、FGC/FGCT、EC/EU、OC/OU、MC/MU元空間、CCSC/CCSU壓縮類空間。例如基線數(shù)據(jù)顯示FGC12次/小時(shí)FGCT18.5s平均每次1.54秒這已嚴(yán)重超標(biāo)。第二步假設(shè)驅(qū)動(dòng)與參數(shù)變更基于問(wèn)題提出一個(gè)可驗(yàn)證的假設(shè)。例如“老年代占用率緩慢上升是因?yàn)樾律^(guò)小導(dǎo)致對(duì)象過(guò)早晉升”。對(duì)應(yīng)的參數(shù)變更就是增大-Xmn或調(diào)整-XX:NewRatio。變更必須單一一次只改一個(gè)參數(shù)否則無(wú)法歸因。我們將-Xmn從1g增至1.5g其他參數(shù)不變。第三步效果驗(yàn)證與數(shù)據(jù)對(duì)比變更后用相同方法采集新數(shù)據(jù)與基線嚴(yán)格對(duì)比。重點(diǎn)關(guān)注FGC是否下降OU的增長(zhǎng)斜率是否變緩YGC頻率和耗時(shí)是否有合理變化我們觀察到FGC降至2次/小時(shí)OU增長(zhǎng)速率下降65%YGC從15次/分鐘變?yōu)?次/分鐘YGCT從1200ms降至720ms。所有指標(biāo)均向好假設(shè)成立。第四步回歸驗(yàn)證與長(zhǎng)期觀察在測(cè)試環(huán)境驗(yàn)證無(wú)誤后灰度發(fā)布到1%生產(chǎn)流量持續(xù)觀察24小時(shí)。重點(diǎn)看業(yè)務(wù)指標(biāo)TP99、錯(cuò)誤率是否惡化系統(tǒng)資源CPU、內(nèi)存是否異常確認(rèn)無(wú)副作用后再全量發(fā)布。我們?cè)幸淮位叶戎邪l(fā)現(xiàn)-Xmn增大后YGC耗時(shí)雖降但因Eden區(qū)變大Minor GC時(shí)需要掃描的卡表Card Table行數(shù)激增導(dǎo)致YGCT中“卡表掃描”子項(xiàng)耗時(shí)翻倍。最終選擇折中方案-Xmn1.2g在YGC頻率和單次耗時(shí)間取得最佳平衡。這套方法論的核心是用數(shù)據(jù)代替直覺(jué)。網(wǎng)上流傳的“-XX:UseG1GC -XX:MaxGCPauseMillis200萬(wàn)能組合”在你的服務(wù)上可能水土不服。唯有建立自己的基線提出自己的假設(shè)用數(shù)據(jù)驗(yàn)證自己的結(jié)論才能真正掌握J(rèn)VM調(diào)優(yōu)的主動(dòng)權(quán)。4.3 避坑指南那些年我們踩過(guò)的JVM參數(shù)深坑JVM參數(shù)世界布滿陷阱。以下是幾個(gè)血淚教訓(xùn)提示-XX:UseCompressedOops不是默認(rèn)開啟的“安全開關(guān)”而是64位JVM的性能基石。它啟用“壓縮普通對(duì)象指針”將64位指針壓縮為32位通過(guò)左移3位利用對(duì)象地址必為8字節(jié)對(duì)齊的特性使對(duì)象頭更小CPU緩存命中率更高。但它的生效條件苛刻堆內(nèi)存必須小于32GB準(zhǔn)確說(shuō)是-Xmx 32g且-XX:ObjectAlignmentInBytes對(duì)象對(duì)齊字節(jié)數(shù)必須為默認(rèn)8。我們?cè)谝粋€(gè)31GB堆的服務(wù)上因-XX:ObjectAlignmentInBytes16導(dǎo)致CompressedOops失效對(duì)象頭從12字節(jié)漲到16字節(jié)內(nèi)存占用增加12%GC壓力陡增。注意-XX:MaxDirectMemorySize必須顯式設(shè)置。很多開發(fā)者認(rèn)為“不設(shè)就等于-Xmx”這是錯(cuò)的。JDK 8u20及以后版本-XX:MaxDirectMemorySize的默認(rèn)值是0意味著無(wú)限這會(huì)導(dǎo)致ByteBuffer.allocateDirect()無(wú)節(jié)制申請(qǐng)本地內(nèi)存最終OutOfMemoryError: Direct buffer memory。務(wù)必在啟動(dòng)腳本中加入-XX:MaxDirectMemorySize1g這類明確限制。警告-XX:DisableExplicitGC不能阻止System.gc()調(diào)用只能讓JVM忽略它。某些老舊框架如早期Log4j2或第三方SDK內(nèi)部會(huì)直接調(diào)用System.gc()。這個(gè)參數(shù)只是“假裝看不見”并不能真正禁用。真正可靠的方案是用JVM參數(shù)-XX:ExplicitGCInvokesConcurrent將System.gc()觸發(fā)的GC強(qiáng)制轉(zhuǎn)為并發(fā)GC如G1的Mixed GC避免STW?;蛘吒鼜氐椎卦趹?yīng)用啟動(dòng)時(shí)用Runtime.getRuntime().addShutdownHook()注冊(cè)一個(gè)鉤子捕獲并記錄所有System.gc()調(diào)用追查源頭代碼。經(jīng)驗(yàn)-XX:SurvivorRatio的調(diào)優(yōu)必須結(jié)合-XX:MaxTenuringThreshold。單獨(dú)調(diào)大Survivor區(qū)若MaxTenuringThreshold過(guò)小對(duì)象仍會(huì)快速晉升反之若MaxTenuringThreshold過(guò)大Survivor區(qū)又形同虛設(shè)。我們推薦的組合是SurvivorRatio6即Eden:S0:S16:1:1MaxTenuringThreshold6這樣對(duì)象平均經(jīng)歷6次Minor GC后晉升與Survivor區(qū)的容量設(shè)計(jì)匹配。這些坑每一個(gè)都曾讓我們加班到凌晨。分享出來(lái)不是為了炫耀而是希望你能繞開它們把精力聚焦在真正創(chuàng)造業(yè)務(wù)價(jià)值的地方。5. 常見問(wèn)題與排查技巧實(shí)錄來(lái)自真實(shí)戰(zhàn)場(chǎng)的速查手冊(cè)5.1 “GC頻繁但內(nèi)存不漲”元空間泄漏的典型癥狀現(xiàn)象jstat -gc顯示YGC和FGC都很高但OU老年代使用量和EUEden使用量卻穩(wěn)定在低位甚至呈緩慢下降趨勢(shì)。與此同時(shí)jstat -gcmetacapacity顯示MC元空間容量和MU元空間使用量持續(xù)攀升接近-XX:MaxMetaspaceSize上限。排查思路確認(rèn)元空間是否真為瓶頸jstat -gcmetacapacity [pid]看MU/MC比值是否95%。查看類加載器統(tǒng)計(jì)jmap -clstats [pid]重點(diǎn)關(guān)注ClassLoader列看是否有大量重復(fù)的LaunchedURLClassLoader或WebappClassLoader實(shí)例。導(dǎo)出類直方圖jmap -histo:live [pid] | head -20看java.lang.Class、java.lang.reflect.Method等元數(shù)據(jù)相關(guān)類的實(shí)例數(shù)是否異常高。根因與修復(fù)此類問(wèn)題90%源于ClassLoader泄漏。常見場(chǎng)景Spring Boot DevTools熱部署時(shí)舊ClassLoader未被回收。第三方SDK將ClassLoader存入靜態(tài)Map。自定義ClassLoader未重寫finalize()或未在close()中清理資源。修復(fù)方案升級(jí)到最新版Spring Boot其DevTools已優(yōu)化ClassLoader卸載邏輯。將靜態(tài)Map的Key改為WeakReferenceClassLoader。在自定義ClassLoader的close()方法中顯式調(diào)用clearCache()和clearAssertionStatus()。5.2 “Full GC后內(nèi)存不釋放”直接內(nèi)存泄漏的隱秘殺手現(xiàn)象jstat -gc顯示一次Full GC后OU從3.8g降到3.2g但pmap -x [pid]顯示進(jìn)程RSS物理內(nèi)存占用從4.5g升到5.1g且居高不下。jcmd [pid] VM.native_memory summary顯示Internal或Other區(qū)域內(nèi)存持續(xù)增長(zhǎng)。排查思路檢查直接內(nèi)存jstat -gc [pid]中CCSC/CCSU壓縮類空間正常但pmapRSS異常高度懷疑Direct ByteBuffer。列出Direct Bufferjmap -histo:live [pid] | grep Direct看java.nio.DirectByteBuffer實(shí)例數(shù)是否異常。檢查NIO框架確認(rèn)是否使用Netty、Undertow等其PooledByteBufAllocator是否配置了合理的maxOrder和tinyCacheSize。根因與修復(fù)Direct ByteBuffer的Cleaner依賴ReferenceHandler線程該線程若被阻塞如因synchronized鎖競(jìng)爭(zhēng)Cleaner無(wú)法執(zhí)行free()。修復(fù)方案降低-XX:MaxDirectMemorySize強(qiáng)制暴露問(wèn)題。在ByteBuffer.allocateDirect()后立即用try-finally包裹finally中調(diào)用buffer.cleaner().clean()需反射獲取cleaner字段。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
99re这里只有精品9| renqi久久久久久久久久久久| 97se综合网| 免费精品中文字幕| 精品九九九| 色网1| 91麻豆天美传媒HD| 全球成人中文在线| 欧美三级中文字幕hd| 9久在线视频只有精品| 我中文字幕6区| 欧美精品另类人妖xxxx| 伊人激情| 98一区二区精品| 色一情一乱一乱一区91Av| 不卡av在线中文字幕| 久操国产在线| 69精品| 78超碰| 天天欲望网| 综合天天。| 成人天天爽| 台湾佬激情综合| 色在线综合| 亚洲女人91| 玖玖久久久| 亚洲 日本 不卡| 欧美第五页| 亚乱色| 91一区二区| 综合亚洲欧美精品日韩?v| 欧美在线啊啊| 国产后入| 国产一区二区啪啪视频| 日韩性爱毛片操骚逼| 岛国在线国产| 成人aⅴ一区二区三区| 日韩卡一卡二卡三在线| 欧美黄片视频在线观看免费| 日韩人妻少妇 一区二区三区| 熟女视频久久| 日韩情色视频| 精品一区二区三区四区外站| 91在线丝袜| 91第一页| 欧美亚洲尤物久久| 青青操青娱乐| 蜜乳av一区二区三区| 欧美另类丝袜熟女| 国产午夜福利专区综合| 中国探花熟女| 顶级少妇BT天堂| 久久久久国产| av网站免费看| 九九久久精品| 黄站在线免费观看| 国产又猛又粗又爽又黄| 欧美色偷拍| 日本中文字幕一区| AAAA欧美日韩| 色婷婷五月天| 曰韩av中文字幕专区| 九久9精品| 欧亚不卡| 日韩av性爱在线播放| 浪人综合网| 欧美久久婷| 国产一二三福利视频网| 操操操日本的逼| 亚洲欧美爆| 亚洲男人天堂手机版| 日本欧美亚洲高清在线看| 97超碰国产精品| 吊色| 天天操天天舔| 国产夫妻性生活视频| 国产最新小视频在线播放下载| 午夜精品一区二区三区三上悠亚| 欧日韩一二三f区| 日逼国产| 青草精品视频一日本久久久久网站| 收看日本人日bb| 欧美性,色九九| 中文字幕97| 91 亚洲 欧洲| 国产9 9在线 | 亚洲| 亚洲AV乱码专区国产噜噜亚洲| 熟妇色99| 久超超碰| 麻豆这里只有精品| 91老熟妇| 97色涩| 日韩AV无码中文一区二区| 亚洲欧洲激情| 久久国产99精品72福利 | 中文字幕在线免费观看视频| av一区二区三区四区| 任我爽视频在线观看| 中文字幕精品一区二| 99九九久久| 国产麻豆福利av在线播放| 蜜桃狠狠色伊人亚洲综合| 久久久国产成人一区二区三区在线| 偷拍亚洲情色| 综合激情97| 2021久久国产综合精品青草 | 97国产超碰| 91麻豆天美传媒HD| 亚洲日本韩国极品一区二区| 国产第25页在线观看| 中文字幕AV中出| 一区二区视频你懂的| 六月婷婷综合| 五月丁香社区婷婷日韩欧美精品影院| 好爽视频在线观看视频 | 啊啊啊啊好爽好舒服一区二区易域| 青青草久草AV| 综合夜夜| 亚洲男人天堂2017| 午夜九九| 曰本特级特黄特色黄色A级网站高清在线免费看| 亚洲经典啪啪| 粉嫩AV一区夜夜嗨| 曰韩欧美国产传媒麻豆第一区| 91久久免费视频互動交流| 后入精品| …亚洲黄色厕厕女女在线播…| 美女诱惑在线一区| 国产第11页| 丝袜美腿校园春色| 97大色网| 亚洲欧美国产va在线播放频| 麻豆久久久久久久久丝袜 | 台湾佬激情综合| 色婷网| 国产精品久久久久av| 新婚人妻扶着粗大强行坐下| 国人欧美精品一区二区| 黄色高清无码无码破解免费暗网| 91操人| 日本在线激情一区二区三区| 99热啪啪| 中文字幕制服欧美久久一区| 国产精品久久久999| 啊啊啊不要好爽日韩无码一区| 久久超碰、| 国产精品一级二级在线| 天堂性色| 东京热男人的天堂精品| 亚洲精品成人| 蜜臀一二三| 在线二区不卡| 天天拍天| 啊啊啊男女| 欧美综合第一页| 欧美精品精品一区二区| 成人午夜小视频手机在线看| 七久久久| 91 国产丝袜在线播放-百度| 97爱综合| 国产精品青草综合久久| 91精品成人www| 人人操人人叉人人插人人| 97天天操| ,国产乱人伦精品一区二区三区| 久综合国内精品自在自线| 夜夜爽爽爽| 国产无码久久高清| 九久精品| 久久綜合很很很| 亚洲一区二区精品福利| 亚洲熟女av中文字幕| 久久久久亚洲精品| 五月天综合网| 午夜男人av| 亚州黄站| 日韩AV噜噜噜一区二区三区四区| 91视频国品一二三区| 欧美1区二区三区公司| 色踪合AV| 超碰天天久久79| 日本操逼视频导航| 激情另类激情| 欧美色日| 亚洲一区二区麻豆影院| 热99这里只有精品| 国产在线视频午夜精华在| 粉嫩av一区二区三区四季| 性吧在线视频| 少妇超碰在线| 人妻激情偷乱视三区频一区二区| 国产成人无码a| 快播电影网日韩新片| 麻豆九九九| 婷婷亚洲五月***久久| 久久性爱视频免费看| 亚洲AV色图一区| 九九国产热| 中文无码一二三区| 97WW精品| 色九月婷婷| 国产精品无码论坛| 国产亚洲福利第一页丝袜| 超碰色97| 青青青草原| 啊灬啊灬啊灬啊灬高潮奶出了免费视| 午夜欧美J进J出白浆流出久久久 | 欧美在线伊人色| 另类专区在线观看| 男人的天堂2010| 午夜男人一级A片7777| 粉嫩粉嫩一区性色AV片| 日逼视频日本| 国产精品免费美女视频| 国产日本久久免费精品| 欧美激情总合网| 国产超碰人人操| 婷婷六月色开| 国产亚洲精品自在线亚洲情侣| 精品在线观看视频在线| 日韩不卡a级视频专区| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 国产高清成人免费视频| 日韩啪啪视频| 成人免费毛片| 欧洲久久一二线| 国产一级舔足在线观看| 男人的天堂视频精品乱在线| 人人操AV| 日韩AV电影网站 | 亚洲色图日韩丝袜制服一区二区五月在线| 激情小说亚洲视频| 色香av| 91精品导航| 精品欧美不卡在线播放| 亚洲 自拍偷拍 欧美| 金莲网址| 国产日本久久免费精品| 超碰超碰95| 久久精品免费| 久久r精品| 中文字幕一二三av| 国产成人91一区二区三区| 亚洲无码视频免费在线观看网址!| 91P0RNY大屁股人妻| 黄色激情电影在线观看| 99热啪啪| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 免费看片黄| 亚洲综合另类小说色区亚洲成av人片在www | 94色色电影网| 国产欧美岛国精品一区| 久99热| 男插女青青影院| 亚洲欲| 精品一区二区三区麻豆| 精品人体无圣光凹凸| 九九成人视频| 一二三四区操操Av| 最新三级网址| 五月天综合| 中文字幕精品久久久久人妻红杏ⅰ| 久久综合久色欧美综合狠狠| 久久久久国产精品久久久| 被窝影院午夜看片无码| 婷婷五月天网| 丝袜色综合| 亚洲一卡二卡在线免费| 欧苏综合色综合| nuu12国产麻豆精品| 69精品| 亚洲色图欧美视频| 亚洲综合另类欧美久久久| 超碰97人妻自拍| 成年人网站在线免费观看| 无码伊人久久大杳蕉中文无码| 91九久| 91综合天天| 国产探花日韩援交| 亚洲高清内射| V A在线| 嗯啊不要啊在线 | 簧片免费看视频| 亚州日韩97| 天天拍夜夜| 操逼操操操91| 久草草一二三四区久久| 天天干天天燥| 国语少妇精| 国产精品一级毛片不卡视| 狠狠狠一区二区三区| 日韩91网| 欧美图片偷拍| 久久久久久久强迫| 亚洲中文字幕有码视频一区二区三区| 国产精品com| 色色婷婷丁香| 久久精品—区二区三区内射| 91久久久久久| 久草在线| 大香蕉免| 久久东京伊人一本到鬼色| 欧洲熟妇xxXx欧美老妇裸体| 91女优在线观看 | 免费人成?大片在线播放| 性生活久久久久久久久久| 欧美黄色手机在线观看| xxx亚洲午夜天堂| 免费AV中文网在线观看| 国产乱婷婷精品二区三区| 91国产丝袜美女| 久jiu久神马影院| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 91欧洲入口| 香蕉婷婷| 亚洲天天操| 亚洲色图殴美色图激情乱伦| 一级毛片电影免费看| 九九九九九九精品| 成年人网站在线免费观看| 91色艳| V A在线| 大香蕉综合在线| 视频黄色国产一级| 91操操操操| 伊人国产视频| 人人爱人人操人人性| 久9综合在线| 成人精品在线观看| 成人26uuu| 在线黄色污污网站| 亚洲天堂区| 人人操人人摸人人骑| 精品久久九| 一本一道vs波多野结衣| 婷婷婷婷婷婷久久久久| 嗯嗯啊啊好大好爽| 亚洲欧美大| 很很操在线| 51一区二区三区| 色色色网站| 天天躁日日躁AAAAXXXX国产 | 综合在线导航一区| 日韩猛交| 天天综合网~91综合网| 欧美色另类| 国产亚洲 中文欧美久久| 中文字幕精品一区欧美| 欧美精品系列| 性爱欧美五月| 婷婷15月天青娱乐| 九九av| 最新日产中文在线麻豆| 9Ⅰ老熟女| 99国产精品自在自在| 日韩一级二级| 亚洲av强奸乱伦| 日产欧美电影一区二区三区| 天天干嫩逼网| 久久超碰av在线| 四虎免费看黄| 神马久久久久眼| 久操精品网| 91视频精品| 人妻91少妇| 亚州大图综合色图| 日韩精品人妻系列无码天堂| 校园春色制服丝袜中文字亚洲| 国产精品久久久久无码A√| 色五月AV| 青青操日韩| 99热大香蕉伊在线| 99只有精品| 自拍视频大全亚洲专媒视频/一区二区三区 | 综合色色网| 亚洲精品一区二区精品| 国产男女边吃边摸视频网站| 九九碰九九爱97超| 久九色| 色五月AV在线| 99久在线精品99re8| 97超碰在线资源网站| 成人精品电影| 97高清啪啪| 天天爱天天韩国日本牛牛牛牛| 91人妻Pr| 强奸xx国产| 亚洲超碰在线| 欧美夜夜狠| 麻豆天美电影一区二区| 熟女丝袜视频| 久久久久久久久久久久久9999| 九九久久九九久久| 国产欧美日韩在线不卡第一页| 国产亚洲中文不卡二区| 日本免费人成视频播放120秒| 日韩免费a级毛片无码a∨| 欧美日韩国产成人高清| 黄片www视频免费| 秋霞一集毛片观看| 美国黄片aaa| 五月丁香拍拍激情综合三级| 亚洲中文字幕精品久久久久久直播| 熟女精品va中文字幕| 午夜精品视频777| 欧洲熟妇xxXx欧美老妇裸体| 搡老女人老妇女老妇老熟女怎么读| 国产成人综合网| 大香蕉十区| 国产污视频麻豆传媒一区二区| 精品乱码久久久久| 变态另类专区| 亚洲啪啪综合?v一区综合精品区| 久久伊人亚洲AV无码网站| 夜夜操天| 91黑丝美女| 人妻人妻天天碰| 精品人妻高清麻豆av| 麻豆一区二区AV天美| 99人妻| 国产免费小视频| TS人妖另类精品视频系列 | 日本天天人人狠狠在线日美女 | 精产国品一区二三产品| 亚洲综合骚逼| 日韩亚洲欧美中文字幕| 婷婷丁香九月| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 人妻激情视频| 国内精品a| av日韩在线观看电影| 亚州伊人色综台| 天美传媒国产原创中文字幕亚洲欧美另类| 超碰人妻中文在线| 日韩欧美性爱电影在线观看| 精品国产一区二区三区四区在线看| 免费综合亚洲中文| 亚州成人a∨| 久久亚洲日韩熟女精品| 激情熟女12P| 91狠狠综合久久久久久| 色婷婷在线视频精品导航| 九九五月天| xxx0国产在线播放| 精爱久久| 欧美色狠| 另类在线| 日本ZZ高免费A级视频| 丝袜人妻av一区二区| 美日韩成人| 蜜臀th| 国产家庭乱伦表演| 欧美少妇大量自拍视频在线观看| 九热超碰| 情色大香蕉| 99激情| 日本欧美色| 中国黄色特级精品一区二区三区片| 久久久久9999| 国产精品青青草| 大香蕉日亚洲日本亚大| 无套内射人妻在线播放| 老熟女区| 日日噜噜夜夜狠狠视频无| 亚洲第一页色| 快灬快灬 一下爽蜜桃在线观看| 熟女视频久久| 亚洲综合色图欧美| 色婷婷综合视频| 校园春色欧美| 色婷婷五月综合激情中文字幕| 精品999日本| 91搞逼视频| 亚洲色阁| 玖玖色综合| 天天日夜干| 亚洲综合五月天| 操熟女91| 狠狠干,狠狠操| 国产精品诱惑| juliaann丝袜大战黑鬼| 亚洲天堂一区二区久久| 欧美成人国产精品| 国产成人bd在线观看| 国产精品高朝久久久久久久| 在线人人人人人人精品超 | 亚洲午夜福利视频| 99热在线只有精品| 国产视频三区四区| 国产亚洲日韩欧| 99re这里| 91蜜桃婷婷狠狠久久综合9色| 强乱老妇中文字幕| 操穴国产| 尤物网址| 97超碰大| 色噜噜国产在线| 精品国产一区二区三区香蕉欧美| 色噜噜狠狠色综无码久久| 亚洲无吗在线视频| 干美女人妻| 一区二区三区黄色片a| 国产熟女自拍| 日本免费中文一区二区三区四区 | 亚洲不卡不卡中文字幕不卡| 久久黄片国产一区二区| 加勒比综合在线| 婷婷丁香五月天综合东京热| 特色a在线上| 亚拍在线| 午夜婷婷| 人人艹亚洲| 婷婷五月天色网| 青青爽| 在线综合色| 97免费视频在线| 亚洲涩涩| 好吊妞转入那个网| 久久性爱网站| 国产三级片在线观看| 欧美色图 人妻| 久久五月份| 青娱乐欧美激情一区二区 | 丁香五月久久| 思思热在线cao| 97日韩| 美女让帅哥通她小鸡鸡| 色情亚洲日本成人| 激情色色| 福利伊人玖玖国产| 国产精品久久妻无码网站| 少妇特黄一区二区三区| 91在线色| 亚洲天堂男人在线| www九九热| 中文字幕人成乱码熟女香港| 国产精品视频内谢女人| 天天干嫩逼网| 欧洲性人爱视频| 国产精品高潮久久AV| 亚洲男人的天堂亚洲| 操逼网站视频漫画国产| 美女尤物人人操| 午夜性生活av免费在线看| 青青草一区二区高清无码视频| 久久最新视频免费观看| 96久久久久| 国产欧美日产一区二区三区 - 国产欧美日 | 中国国国产一级特黄毛片| AV天堂国产| 欧美综合天天| 亚州男人天堂| 亚洲综合网91| 屁股久久久久久久久| 二对二中文字幕。| 在线天堂999| 日日日啊啊啊| 夜夜肏2021| 色嘟嘟人妻天堂网| 91国产精品在线看| 乱精品一区字幕二区| 欧美性爱一级操| 欧美一区二区亚洲天堂| 一二三区在线| 青青草原人妻| 国产白嫩精品久久| 91色色综合| 中文字幕人妻丝袜乱一区三区| 国产91丝袜 在线播放| 91性网| 在线αⅴ| 在线观看av区| 国产高清1234区| 91精品国久久久久久无码| 国产一| 99ri视频| 国产日韩欧美| 九九九免费视频| 玖玖玖玖精品国产剧情| 欧美极品少妇交| 青青草视频导航官网| 日韩 欧美 国产 麻豆| 欧美春色| 国产精品婬乱一级毛片彝族| 99色色网| 蜜臀一二三区| 日韩精品一区二区高清| 丁香六月激情| 亭亭在线资源| 亚洲av综合伊人久久| 亚洲啪啪性视频| 加勒比少妇AV婷婷六月天超碰超碰| 在线欧美亚洲| 久久精品国产亚洲AV无码电影| 99热97| 上床啊啊啊| 国产亚洲精品久久久久小| 91色情黑丝搞鸡在线观看一区二区三区三州 | 亚洲精品一二三四区| 九九热精品视频六| 抽插无码高清一区| 欧洲精品区| 国产成人无码啪| 99在线观看无大码| 中文字幕精品一区二| 久久久久久久久久久久久久久性生活视频 | 99精品九九九九九九| 曰韩成人免费视频| 十八禁电影伊人网| 在线精品福利免费播放| 97网址97| 亚洲欧美中文日韩视频中国语 | 中出在线视频| 懂色AV蜜臀无码精品APP | 久久超碰爱| 操逼无码操逼| 97在线无精品| 天天插天天操| 极品色| 熟女一区二区三区| 在线观看国产黄色| 蜜臀99精品国产高清在线观看| 99综合网| 欧美精品精品一区二区| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 性久久久| www.高清无码诱惑一区.com | 97超碰人人模人人拍人人| 超碰亚洲欧美日韩无| 九九热av| 91nbbbbbb| 亚洲无码色| 久久五月天婷婷丁香中文字幕| 亚洲欧洲日产国产综合网| 久久精品国产72国产精品福利| 2017天天操| 日日干男人的天堂| 91狠婷| 激情干在线| 眼镜人妻101.com| 亚洲无码一区成人免费午夜| 国产美女91视频| 欧美性爱五月天| 99久久婷婷丁香| w w w.久久精品| 欧美色图亚洲色,麻豆| 成人热久久精品| 91 丝袜在线| 青青青国产| 夜夜中出国产| 91亚洲人电影| 一色网男人的天堂| 亚洲五月丁香花狠狠干一区二区三区 | 加勒比AV网| 翘臀vidoes| 天堂九九九九九九九九九| 日本精品成人无码| 国产 日韩 另类 视频一区爱| 精品99999| 91美女网站| 少妇精品久久| 搡老女人老91妇女老熟女| 女生久久网| 91天天| ,成人免费啪啪视频| 国产亚洲精品久久久久小| 八戒午夜福利理论片| se吧提供国产乱老熟视频胖女人| 老司机福利青青草| 国产高清午夜成人在线观看| 国产欧美精品日韩区二区麻豆天美| 色欲天天综合网| 国内外色色色色色成人视频| 日本天天操| 欧美色图偷拍另类| 色偷偷男人的天堂麻豆| 九九九九九九成人| 天天干夜夜| 777超碰| 中文字幕,人妻,日韩| 久久亚洲AV无码专区首页| 六十路日本| 超碰 另类 欧美 | 天天日B夜夜干B时时操B| www.99在线| baiduhicn.com。| 91精品操美女| 日韩操逼性鲍| 亚洲色五月| 狠狠爱AV| 国产精品午夜福利亚洲综合网| 强歼乱伦资源网| 日产中文字幕2020| 国产精品农村妇女| av无码精品久久久久| 91女在线观看| 超碰97COm中文| 精品毛片久久久精品毛片| 中文久久一区| 亚洲无码偷拍| 熟女丝袜视频| 色图四区| 97在线观看免费| 色成人Www精品永久观看| 亚洲第一页欧美| 97香蕉网| av大香蕉网站| 免费a级毛片av无码久久精品中文字幕| 强奸a片网| 中文字幕欧美精品亚洲日韩蜜臀| 一区二区三区探花在线观看| 超碰综合色| 国产理论视频在线播放| 少妇精品久久久| 国产精品探花视频| 久久婷婷苹果| 这里只有精品久久| 中文字幕欧美日韩三级| 人妻久热在线| 日本欧美一区二区三区视频麻豆| 青青草精品| 国产一区二区精品久久99| 久久9精品网站| 亚洲天堂热| 起碰97| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 久久性生大片免费观看性| 嗯嗯嗯嗯啊啊啊好紧好大| 一区二区三区免费视频入口| 日本99一区二区| 欧亚在线视频| www.成人无码| 日韩天堂av电影在线观看| 国产黄色影片在线观看| 欧美精品亚洲精品日韩传电影| 东京热男人的天堂网| 日韩强奸av| 人妻少妇久久| 国产日韩精品一区二区三区| 色久桃花影院在线观看| 精品少妇一区二区| 亚洲国产精品久久久男人的天堂| 新版天堂中文资源8在线| 女人久久久| 超碰导航97| 九九九九精品一区| 天美传媒av一区二区| 国产亲戚伦亲在线| 亚洲中文字幕在现观看| 欧美91网站| 亚洲av总站| 性爱综合网| 激情五月天社区| 人妻少妇精品| 欧洲精品二区| 欧美视频一区二区三区| 丝袜美腿射精91| 青春草A| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 蜜桃网熟妇| 一区二区三区蜜桃成人撸久久东京热 | 高清国产成人无码| 狠狠色噜噜狠狠狠狠2018| 91麻豆天美传媒在线| 人妻少妇无码| 丝袜狂射91| 快点操死我| 九九九久千久久激情蜜桃在线看 | 欧美传媒| 久艾草在线精品视频在线观看| 日韩综合色图| 国产激情视频一区区三区| 亚洲极品| 啊啊啊好舒服视频| 欧美亚洲| 亚洲欧洲日韩天堂av| 日本午夜操逼| 色综合色欲色综合色综合色综合| 欧美性爱五月天| 久久久9品一区二区三区| 久久久9品一区二区三区| 日本欧美色| 九九热视频这里只有精品| 伊人991| 超碰人妻久久| 亚洲精品人妻在线| 色综合99| 怡红院成人av| 国产激情视频一区区三区| 91视频综合| 欧美国产有色电影| 久久精品女同亚洲女同13| 色图四区| 午夜无码精品免费看性色| 六月色婷婷| 熟妇高潮精品一区二区三区下载| 丝袜美腿操av| 亚洲五码一区二区三区| 色婷婷成人| 大屁股熟女一区二区三区| 国产强奸91| 亚洲免费精品一区| 亚洲视频精选| 久久久97| 97久久超碰日韩精品| 国产浮力影院第1页| 久操操| 国产在线播放成人免费| www.99热| 老司机香蕉久久久久| 成人午夜小视频手机在线看| 久久久久久久久久久久黄色 | 五月丁香啪啪啪| 高潮9999外国| 久久久久9| 亚洲少妇视频| 吻戏激情性巴克| 天美麻豆一区二区三区| 国产呦精品一区二区三区下载| 美日韩一二三区| 中国一级特黄大片护士| 极品粉嫩少妇视频| 日本熟女中文字幕一区| 91精品少妇搡搡搡| 九九视频黄色片| 欧美中字二区| 国产精品视频精品一二| 国产一区二区在线看| 婷婷丁香成人| 欧美人妻少妇| 青娱乐蜜桃臀AV色婷| 91在线视频观看国产| 色香综合天天影视综合| 免費黃色視頻觀看一| 久久久三区二区一区| 日本三级黄页| 国产亚洲精品美女久久久| 天美传媒av一区二区| 免费人成?大片在线播放| 欧美日韩欧美| 在线视频一区二区传媒| 亚洲各类熟们中文字幕| 亚洲欧美日韩偷拍色图| 怡红院亚洲怡春院av| 中文字幕123| 久久精品国产亚洲AV清纯| 9ⅰ久久久天天| 青青草视频爽一爽| 欧美 亚洲 偷拍自拍| 欧美片第一页| 欧美日韩不卡传媒| 久久综合精品一区二区三区| 国产三级电影免费观看| 国产一区自拍欧美日韩| 91热热色| 超碰到97情色| 久久精品国产久精国产| 欧美综合色站| 亚洲另类久操网| 蜜桃视频精品一区二区| www.人人cao| 一级特级aaaa毛片免费观看 | 欧美熟女操屄| 欧美一级黄片视频在线| 欧美视频一| 九九九色| 亚洲**2021在线观看| 久热一区二区| 天天干天天操天天操夜夜操天天操| 亚洲av热热色| 国产性感在线观看| 人妻酒店出差被中出免费在线播放| 午夜精品久久久久久久男人的天堂| 一起草精品人妻| 午夜久久无码1000合集| 国产女人91精品嗷嗷嗷嗷| 色婷婷激一区二区三区| 国产精品一区av在线| 岛国A V在线免费看| 无码人妻精品酒店| 色哟哟综合| 欧美另类精品xxxx| 亚洲精品日日夜夜52| 99热这里是精品| 91久青| 一区二区不卡| 97欧美色资源| 941超碰| 精品78| 国产成人欧美一区二区三区的国产| 久久综合资源一区二区| 91色婷婷综合久久中文字幕二区| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 欧美日本中字另类在线| 狠狠色综合网| 东京热亚洲一区二区| 九九九九九九成人| 亚洲Av噜噜一区二区三区妖精| 偷拍亚洲情色| 日本孕妇一区二区视频操逼免费看 | 综合五月天| 国产精品黄色三级av| 久久极品伊人| 亚洲91射| 欧美人与性动交a美精品| 欧苏综合色综合| 91精品国| 十八禁成人网站在线观看| 色噜噜人妻av 中文字幕| 狠狠干妹子| 中文字幕人成乱码熟女香港| 人人色97| 美欧色综合| 欧美日韩99| 欧美国产操逼| 欧美日韩亚洲一区二区在线观看| 天天操女人| 欧美97在线欧| 少妇国产不卡| 啪啪综合网| 亚洲成人综合在线| k频道色撸撸| 亚洲国产一区二区三区四区国产| 性爱乱伦视频免费| 99色婷婷中文字幕乱色| 欧美成人A天堂片在线观看| 精产国品一区二三产品| 国产女人和拘做爰视频 | 性爱免费视频成人| 色男人色天堂东京热| 欧美偷拍区| 久久人妻一区二区三区高清| 国产亚洲美日韩Aⅴ中文字幕无码成人| 青青草视频久久久久| 乱伦a片视频| 久久久久久久久9| 99熟女| 日韩综合无码一区久久92| 久久久久久久久久久人妻| 日韩熟女乱伦中出| 欧美日韩中文字幕不卡| 亚洲欲色9532548967一区| 人人操,人人液| 97精品97久久| 九九色色| 先锋色眉乱伦资源| 久操精品| 日韩欧美中文字| 麻豆久久久一区二区| 国产中文大片资源中文字幕| 色欧美色交综合| 磁力99AV| 蜜臀久久久久久999| 免费中文在线| 久久久久久九九九九九| 99精品丰满人妻| 国产美脚女优尤物在线观看| 国产又爽又黄| 人摸人人操人| 成人一道本免费视频| 亚洲熟女人妻中文字幕一区二区| 亚洲综合性感在线| 99热超碰| 9 9精品一区二区三区| 岛国成人av在线播放网址| 中国国产精品一区视频| 操操操五月天婷婷丁香影院| 熟妇色99| 色欧洲| 欧美性爱第1 页| 久久香蕉国产线看观看亚洲女人| 老司机免费视频在线91| 久久神马影院| 日韩人妻无码精品系列| 九九英色视频| 亚洲色资源| 青青草字幕AV| 国产天天噜一噜久久久| 激情久久日韩精品中文字幕麻豆| 日日夜夜草草草| 亚洲精品黑丝| 男人的天堂无码| 午夜啊啊| 91欧洲国产成人久久精品网站| 中文字幕乱码在线| 国产精品99999| 亚洲字幕一区二区| av一区二区三区 中文| 日本操逼二区| 五月丁香狠狠爱| 欧美一区二区在线资源| 色大香蕉97N| 蜜臀在线网站| 中文?日韩?免费?精品| 日本视频在线观看污污污| 亚洲欧洲国产综合av| 在线观看十八禁| 一级黄碟| 99婷婷一区二区| 岛国艾薇凹凸视频天堂| 97超碰色屌| 99999re| 欧美日韩精品一区二区三区高清| 最新一二三区视频| 插入综合网| 一二三区精品视频| 亚洲激情在线一区二区| 欧美淫乱视频| 天天综合网网欲色| 欧美亚洲丝袜美女电影| 和协影院中文字幕三区| 国产综合久| 一区二区三区在线美女| 精品国产乱码久久久久久口爆网站| 能看的AV| 亚洲综合校园春色| 中文字幕后石码四区五区| 亚洲国产日韩欧美熟妇在线| 青青草吊丝| 97亚洲在线| 人妻乱仑一区二区三区| 东京热精品97综合网| 精品对白久久不卡| 欧美性巨大╳╳╳╳╳高跟鞋| α√在线| 人妻免费观看| 女欧美一区二三区| 婷婷丁香久久| 欧美日日人人天天| 一区二区三区在线美女| 亚州色交| 欧美激情 一区| 亚洲中文字幕三级在线| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 小视频玖玖| 屌妞视频久久久久久久| 青草一区二区| av资源在线观看少妇| 久啪| 精品久久久久av影院| 国产久久视频| 欧美亚洲首页| 岛园激情| 精品9999| 性色av网站| 人妻熟女一区二区| 九九综合久久| 亚欧操逼片在线观看| 国产AV激情无码久久无码 | 日韩av电影成人在线| 欧美在线官网| 久久久久久性爱免费视频| 久久婷婷五月天| 男人天堂欧美| 俺去久久| 精品欧美老熟女一二区| 亚洲国产一级中文综合久久天堂在线免费观看 | 欧美亚洲| a片亚洲一本通视频| 国产免a费看黄片在线| 久久成年精品| 天堂俺去俺来也www久久婷婷| 91偷拍欧美亚洲| 91性高朝久久久久久久久| 九热大香蕉| 三级三级三级a级全黄三| 日本三级韩国三级美三级91| 园内精品自拍视频在线播放| 91激情国产| 激情综合婷婷| 久久久久久综合久久伊人蜜月| 久99热| 欧美第二页| 97国伦国色| 少妇久久| 超碰在线第一页| 六月激情婷婷| 91少妇人妻| 欧美一区二区成人一卡| 377p欧洲日本亚洲大胆| 欧美在线干| 精品熟女一区=区三区| 亚洲国产精品成人综合| 91天天c| 无码伊人久久大杳蕉中文无码| 99久久99久久免费精品蜜臀| 18一区二区三区| 欧亚性爱在线视频| 在线欧美亚洲| 欧美曰韩国产精品| 国产强奸超碰AV| AAAA欧美日韩| 后入式五六区| 亚州伊人色综台| 亚洲AV无码黄色强奸| 欧在线一二区| 欧美 日韩 另类 亚洲| h无码动漫在线观看| 国产路线专区| 清清草影| 成年女人黄网站| 久久9精品视频| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 国产成人91一区二区三区| 97视频900| 色婷婷丁香五月| 色成人Www精品永久观看| 欧美精品一二三| 乱伦av.com| 免费看片黄| 日韩91网| 性性久久| 中美日韩毛片| 日韩中文字幕二区| 777琪琪午夜免费A片| 男人天堂2017| 国产精品色| 思思热影视| 国产精品久久久久久久久久梁医生| 啊啊啊啊,啊啊好多水| 久久久久久久久久久久久久久乱码| 色综合色综合网| 亚洲天堂AV在线播放| 97在线免费观看| 中日高清无码操逼视频| 久久九九网| 国产精品免费视频人成| 国内毛片欧美香蕉精品| 少妇高潮九九九九九九九| 日韩中文字幕av在线播放| 天天爽天天爽| av凤凰久久久| 亚洲 一区二区 自拍| 国产美女口爆吞精视频| 99热国产精品| 亚洲国内精品成人不卡| 九九久久久久久爱| 色哟哟511老熟女| 亚洲色图日韩精品| 久久久久亚洲AV无码专区少妇| 日韩97P| 97人人爱人人乐| 啊啊啊啊好疼视频| 黑丝少妇麻豆| 爱欲AV| 久久不卡一区二区| 久久久精品国产亚洲AV无码| 日本在线播放不卡一区| 日韩色欲久久一二三四区| AV乱伦国产| 无遮挡一级毛片视频免费的| 黄色视频高清无码网站| 大香蕉性欧美| 欧美日韩色| 少妇天堂| 久9爱经典视频| 青青草依人大香蕉| 精品少妇高潮久久| 另类专区加勒比| 欧洲性人爱视频|