精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

經(jīng)過(guò)這么優(yōu)化后,生產(chǎn)環(huán)境JVM GC一次暫停時(shí)長(zhǎng)由30秒下降到190毫秒!!

開(kāi)發(fā) 前端
JVM進(jìn)行GC時(shí),需要對(duì)對(duì)應(yīng)堆分區(qū)的已用內(nèi)存進(jìn)行遍歷,假如GC的時(shí)候,有堆的一部分內(nèi)容被交換到swap中,遍歷到這部分的時(shí)候就須要將其交換回內(nèi)存;更極端情況同一時(shí)刻因?yàn)閮?nèi)存空間不足,就需要把內(nèi)存中堆的另外一部分換到SWAP中去,于是在遍歷堆分區(qū)的過(guò)程中,會(huì)把整個(gè)堆分區(qū)輪流往SWAP寫(xiě)一遍,導(dǎo)致GC時(shí)間超長(zhǎng)。

在高并發(fā)下,Java程序的GC問(wèn)題屬于很典型的一類(lèi)問(wèn)題,帶來(lái)的影響往往會(huì)被進(jìn)一步放大。不管是「GC頻率過(guò)快」還是「GC耗時(shí)太長(zhǎng)」,由于GC期間都存在Stop The World問(wèn)題,因此很容易導(dǎo)致服務(wù)超時(shí),引發(fā)性能問(wèn)題。

事情最初是線(xiàn)上某應(yīng)用垃圾收集出現(xiàn)Full GC異常的現(xiàn)象,應(yīng)用中個(gè)別實(shí)例Full GC時(shí)間特別長(zhǎng),持續(xù)時(shí)間約為15~30秒,平均每2周左右觸發(fā)一次;

圖片圖片

圖片圖片

JVM參數(shù)配置:

-Xms2048M –Xmx2048M –Xmn1024M –XX:MaxPermSize=512M

圖片圖片

排查過(guò)程

分析 GC 日志

GC 日志它記錄了每一次的 GC 的執(zhí)行時(shí)間和執(zhí)行結(jié)果,通過(guò)分析 GC 日志可以調(diào)優(yōu)堆設(shè)置和 GC 設(shè)置,或者改進(jìn)應(yīng)用程序的對(duì)象分配模式。

這里Full GC的reason是Ergonomics,是因?yàn)殚_(kāi)啟了UseAdaptiveSizePolicy,jvm自己進(jìn)行自適應(yīng)調(diào)整引發(fā)的Full GC。

這份日志主要體現(xiàn)GC前后的變化,目前為止看不出個(gè)所以然來(lái)。

圖片圖片

開(kāi)啟GC日志,需要添加如下 JVM 啟動(dòng)參數(shù):

-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/export/log/risk_pillar/gc.log

常見(jiàn)的 Young GC、Full GC 日志含義如下:

圖片圖片

進(jìn)一步查看服務(wù)器性能指標(biāo)

獲取到了GC耗時(shí)的時(shí)間后,通過(guò)監(jiān)控平臺(tái)獲取到各個(gè)監(jiān)控項(xiàng),開(kāi)始排查這個(gè)時(shí)點(diǎn)有異常的指標(biāo),最終分析發(fā)現(xiàn),在5.06分左右(GC的時(shí)點(diǎn)),CPU占用顯著提升,而SWAP出現(xiàn)了釋放資源、memory資源增長(zhǎng)出現(xiàn)拐點(diǎn)的情況(詳見(jiàn)下圖紅色框,橙色框中的變化是因修改配置導(dǎo)致,后面會(huì)介紹,暫且可忽略)

圖片圖片

JVM用到了swap?

是因?yàn)镚C導(dǎo)致的CPU突然飆升,并且釋放了swap交換區(qū)這部分內(nèi)存到memory?

為了驗(yàn)證JVM是否用到swap,我們通過(guò)檢查proc下的進(jìn)程內(nèi)存資源占用情況

for i in (cd/proc;ls∣grep"[0?9]"∣awk′0 >100');
do awk '/Swap:/{a=a+2}END{print '"i"',a/1024"M"}' /proc/$i/smaps 2>/dev/null;
done | sort -k2nr | head -10 

# head -10 表示 取出 前10個(gè)內(nèi)存占用高的進(jìn)程 
# 取出的第一列為進(jìn)程的id 第二列進(jìn)程占用swap大小

看到確實(shí)有用到305MB的swap

圖片圖片

這里簡(jiǎn)單介紹下什么是swap?

swap指的是一個(gè)交換分區(qū)或文件,主要是在內(nèi)存使用存在壓力時(shí),觸發(fā)內(nèi)存回收,這時(shí)可能會(huì)將部分內(nèi)存的數(shù)據(jù)交換到swap空間,以便讓系統(tǒng)不會(huì)因?yàn)閮?nèi)存不夠用而導(dǎo)致oom或者更致命的情況出現(xiàn)。

當(dāng)某進(jìn)程向OS請(qǐng)求內(nèi)存發(fā)現(xiàn)不足時(shí),OS會(huì)把內(nèi)存中暫時(shí)不用的數(shù)據(jù)交換出去,放在swap分區(qū)中,這個(gè)過(guò)程稱(chēng)為swap out。

當(dāng)某進(jìn)程又需要這些數(shù)據(jù)且OS發(fā)現(xiàn)還有空閑物理內(nèi)存時(shí),又會(huì)把swap分區(qū)中的數(shù)據(jù)交換回物理內(nèi)存中,這個(gè)過(guò)程稱(chēng)為swap in。

為了驗(yàn)證GC耗時(shí)與swap操作有必然關(guān)系,我抽查了十幾臺(tái)機(jī)器,重點(diǎn)關(guān)注耗時(shí)長(zhǎng)的GC日志,通過(guò)時(shí)間點(diǎn)確認(rèn)到GC耗時(shí)的時(shí)間點(diǎn)與swap操作的時(shí)間點(diǎn)確實(shí)是一致的。

進(jìn)一步查看虛擬機(jī)各實(shí)例 swappiness 參數(shù),一個(gè)普遍現(xiàn)象是,凡是發(fā)生較長(zhǎng)Full GC的實(shí)例都配置了參數(shù) vm.swappiness = 30(值越大表示越傾向于使用swap);而GC時(shí)間相對(duì)正常的實(shí)例配置參數(shù) vm.swappiness = 0(最大限度地降低使用swap)。

swappiness 可以設(shè)置為 0 到 100 之間的值,它是Linux的一個(gè)內(nèi)核參數(shù),控制系統(tǒng)在進(jìn) 行swap時(shí),內(nèi)存使用的相對(duì)權(quán)重。

  • swappiness=0: 表示最大限度使用物理內(nèi)存,然后才是 swap空間
  • swappiness=100: 表示積極的使用swap分區(qū),并且把內(nèi)存上的數(shù)據(jù)及時(shí)的交換到swap空間里面

圖片圖片

圖片圖片

對(duì)應(yīng)的物理內(nèi)存使用率和swap使用情況如下

圖片圖片

圖片圖片

至此,矛頭似乎都指向了swap。

問(wèn)題分析

當(dāng)內(nèi)存使用率達(dá)到水位線(xiàn)(vm.swappiness)時(shí),linux會(huì)把一部分暫時(shí)不使用的內(nèi)存數(shù)據(jù)放到磁盤(pán)swap去,以便騰出更多可用內(nèi)存空間;

當(dāng)需要使用位于swap區(qū)的數(shù)據(jù)時(shí),再將其換回內(nèi)存中,當(dāng)JVM進(jìn)行GC時(shí),需要對(duì)相應(yīng)堆分區(qū)的已用內(nèi)存進(jìn)行遍歷;

假如GC的時(shí)候,有堆的一部分內(nèi)容被交換到swap空間中,遍歷到這部分的時(shí)候就需要將其交換回內(nèi)存,由于需要訪(fǎng)問(wèn)磁盤(pán),所以相比物理內(nèi)存,它的速度肯定慢的令人發(fā)指,GC停頓的時(shí)間一定會(huì)非常非常恐怖;

進(jìn)而導(dǎo)致Linux對(duì)swap分區(qū)的回收滯后(內(nèi)存到磁盤(pán)換入換出操作十分占用CPU與系統(tǒng)IO),在高并發(fā)/QPS服務(wù)中,這種滯后帶來(lái)的結(jié)果是致命的(STW)。

問(wèn)題解決

至此,答案似乎很清晰,我們只需嘗試把swap關(guān)閉或釋放掉,看看能否解決問(wèn)題?

如何釋放swap?

設(shè)置vm.swappiness=0(重啟應(yīng)用釋放swap后生效),表示盡可能不使用交換內(nèi)存

方案 a:臨時(shí)設(shè)置方案,重啟后不生效

  1. 設(shè)置vm.swappiness為0,sysctl vm.swappiness=0
  2. 查看swappiness值,cat /proc/sys/vm/swappiness

方案b:永久設(shè)置方案,重啟后仍然生效

  1. vi /etc/sysctl.conf
  2. 關(guān)閉交換分區(qū)swapoff –a(前提:首先要保證內(nèi)存剩余要大于等于swap使用量,否則會(huì)報(bào)Cannot allocate memory!swap分區(qū)一旦釋放,所有存放在swap分區(qū)的文件都會(huì)轉(zhuǎn)存到物理內(nèi)存上,可能會(huì)引發(fā)系統(tǒng)IO或者其他問(wèn)題。)

查看當(dāng)前swap分區(qū)掛載在哪:

圖片圖片

關(guān)停分區(qū):

圖片圖片

關(guān)閉swap交換區(qū)后的內(nèi)存變化見(jiàn)下圖橙色框,此時(shí)swap分區(qū)的文件都轉(zhuǎn)存到了物理內(nèi)存上

圖片圖片

關(guān)閉Swap交換區(qū)后,于2.23再次發(fā)生Full GC,耗時(shí)190ms,問(wèn)題得到解決。

圖片圖片

疑惑

  1. 是不是只要開(kāi)啟了swap交換區(qū)的JVM,在GC的時(shí)候都會(huì)耗時(shí)較長(zhǎng)呢?
  2. 既然JVM對(duì)swap如此不待見(jiàn),為何JVM不明令禁止使用呢?
  3. swap工作機(jī)制是怎樣的?這臺(tái)物理內(nèi)存為8g的server,使用了交換區(qū)內(nèi)存(swap),說(shuō)明物理內(nèi)存不夠使用了,但是通過(guò)free命令查看內(nèi)存使用情況,實(shí)際物理內(nèi)存似乎并沒(méi)有占用那么多,反而Swap已占近1G?

圖片圖片

free:除了buff/cache剩余了多少內(nèi)存

shared:共享內(nèi)存

buff/cache:緩沖、緩存區(qū)內(nèi)存數(shù)(使用過(guò)高通常是程序頻繁存取文件)

available:真實(shí)剩余的可用內(nèi)存數(shù)

進(jìn)一步思考

大家可以想想,關(guān)閉交換磁盤(pán)緩存意味著什么?

其實(shí)大可不必如此激進(jìn),要知道這個(gè)世界永遠(yuǎn)不是非0即1的,大家都會(huì)或多或少選擇走在中間,不過(guò)有些偏向0,有些偏向1而已。

很顯然,在swap這個(gè)問(wèn)題上,JVM可以選擇偏向盡量少用,從而降低swap影響,要降低swap影響有必要弄清楚Linux內(nèi)存回收是怎么工作的,這樣才能不遺漏任何可能的疑點(diǎn)。

先來(lái)看看swap是如何觸發(fā)的?

Linux會(huì)在兩種場(chǎng)景下觸發(fā)內(nèi)存回收,一種是在內(nèi)存分配時(shí)發(fā)現(xiàn)沒(méi)有足夠空閑內(nèi)存時(shí)會(huì)立刻觸發(fā)內(nèi)存回收;另一種是開(kāi)啟了一個(gè)守護(hù)進(jìn)程(kswapd進(jìn)程)周期性對(duì)系統(tǒng)內(nèi)存進(jìn)行檢查,在可用內(nèi)存降低到特定閾值之后主動(dòng)觸發(fā)內(nèi)存回收。

通過(guò)如下圖示可以很容易理解,詳細(xì)信息參見(jiàn):

圖片圖片

是不是只要開(kāi)啟了swap交換區(qū)的JVM,在GC的時(shí)候都會(huì)耗時(shí)較長(zhǎng)?

筆者去查了一下另外的一個(gè)應(yīng)用,相關(guān)指標(biāo)信息請(qǐng)見(jiàn)下圖。

實(shí)名服務(wù)的QPS是非常高的,同樣能看到應(yīng)用了swap,GC平均耗時(shí) 576ms,這是為什么呢?

圖片圖片

圖片圖片

通過(guò)把時(shí)間范圍聚焦到發(fā)生GC的某一時(shí)間段,從監(jiān)控指標(biāo)圖可以看到swapUsed沒(méi)有任何變化,也就是說(shuō)沒(méi)有swap活動(dòng),進(jìn)而沒(méi)有影響到垃級(jí)回收的總耗時(shí)。

圖片圖片

圖片圖片

通過(guò)如下命令列舉出各進(jìn)程swap空間占用情況,很清楚的看到實(shí)名這個(gè)服務(wù)swap空間占用的較少(僅54.2MB)

圖片圖片

另一個(gè)顯著的現(xiàn)象是實(shí)名服務(wù)Full GC間隔較短(幾個(gè)小時(shí)一次),而我的服務(wù)平均間隔2周一次Full GC

圖片圖片

圖片圖片

基于以上推測(cè)

  1. 實(shí)名服務(wù)由于 GC 間隔較短,內(nèi)存中的東西根本沒(méi)有機(jī)會(huì)置換到swap中就被回收了,GC的時(shí)候不需要將swap分區(qū)中的數(shù)據(jù)交換回物理內(nèi)存中,完全基于內(nèi)存計(jì)算,所以要快很多
  2. 將哪些內(nèi)存數(shù)據(jù)置換進(jìn)swap交換區(qū)的篩選策略應(yīng)該是類(lèi)似于LRU算法(最近最少使用原則)

為了證實(shí)上述猜測(cè),我們只需跟蹤swap變更日志,監(jiān)控?cái)?shù)據(jù)變化即可得到答案,這里采用一段shell 腳本實(shí)現(xiàn)

#!/bin/bash 
echo -e `date +%y%m%d%H%M%S` 
echo -e "PID\t\tSwap\t\tProc_Name" 

#拿出/proc目錄下所有以數(shù)字為名的目錄(進(jìn)程名是數(shù)字才是進(jìn)程,其他如sys,net等存放的是其他信息) 
for pid in `ls -l /proc | grep ^d | awk '{ print $9 }'| grep -v [^0-9]` 
do 
    if [ $pid -eq 1 ];then continue;fi 
    grep -q "Swap" /proc/$pid/smaps 2>/dev/null 
    if [ $? -eq 0 ];then 
        swap=$(gawk '/Swap/{ sum+=$2;} END{ print sum }' /proc/$pid/smaps) #統(tǒng)計(jì)占用的swap分區(qū)的 大小 單位是KB 
        proc_name=$(ps aux | grep -w "$pid" | awk '!/grep/{ for(i=11;i<=NF;i++){ printf("%s ",$i); }}') #取出進(jìn)程的名字 
        if [ $swap -gt 0 ];then #判斷是否占用swap 只有占用才會(huì)輸出 
            echo -e "${pid}\t${swap}\t${proc_name:0:100}" 
    fi 
   fi
done | sort -k2nr | head -10 | gawk -F'\t' '{ #排序取前 10 
    pid[NR]=$1; 
    size[NR]=$2; 
    name[NR]=$3; 
} 
END{ 
    for(id=1;id<=length(pid);id++) 
    { 
    if(size[id]<1024) 
        printf("%-10s\t%15sKB\t%s\n",pid[id],size[id],name[id]); 
    else if(size[id]<1048576) 
        printf("%-10s\t%15.2fMB\t%s\n",pid[id],size[id]/1024,name[id]);
    else 
    printf("%-10s\t%15.2fGB\t%s\n",pid[id],size[id]/1048576,name[id]); 
    } 
}

由于上面圖中 2022.3.2 19:57:00 至 2022.3.2 19:58:00 發(fā)生了一次Full GC,我們重點(diǎn)關(guān)注下這一分鐘內(nèi)swap交換區(qū)的變化即可,我這里每10s做一次信息采集,可以看到在GC時(shí)點(diǎn)前后,swap確實(shí)沒(méi)有變化

圖片圖片

通過(guò)上述分析,回歸本文核心問(wèn)題上,現(xiàn)在看來(lái)我的處理方式過(guò)于激進(jìn)了,其實(shí)也可以不用關(guān)閉swap,通過(guò)適當(dāng)降低堆大小,也是能夠解決問(wèn)題的。

這也側(cè)面的說(shuō)明,部署Java服務(wù)的Linux系統(tǒng),在內(nèi)存分配上并不是無(wú)腦大而全,需要綜合考慮不同場(chǎng)景下JVM對(duì)Java永久代 、Java堆(新生代和老年代)、線(xiàn)程棧、Java NIO所使用內(nèi)存的需求。

總結(jié)

綜上,我們得出結(jié)論,swap和GC同一時(shí)候發(fā)生會(huì)導(dǎo)致GC時(shí)間非常長(zhǎng),JVM嚴(yán)重卡頓,極端的情況下會(huì)導(dǎo)致服務(wù)崩潰。

主要原因是:JVM進(jìn)行GC時(shí),需要對(duì)對(duì)應(yīng)堆分區(qū)的已用內(nèi)存進(jìn)行遍歷,假如GC的時(shí)候,有堆的一部分內(nèi)容被交換到swap中,遍歷到這部分的時(shí)候就須要將其交換回內(nèi)存;更極端情況同一時(shí)刻因?yàn)閮?nèi)存空間不足,就需要把內(nèi)存中堆的另外一部分換到SWAP中去,于是在遍歷堆分區(qū)的過(guò)程中,會(huì)把整個(gè)堆分區(qū)輪流往SWAP寫(xiě)一遍,導(dǎo)致GC時(shí)間超長(zhǎng)。線(xiàn)上應(yīng)該限制swap區(qū)的大小,如果swap占用比例較高應(yīng)該進(jìn)行排查和解決,適當(dāng)?shù)臅r(shí)候可以通過(guò)降低堆大小,或者添加物理內(nèi)存。

因此,部署Java服務(wù)的Linux系統(tǒng),在內(nèi)存分配上要慎重。

責(zé)任編輯:武曉燕 來(lái)源: 冰河技術(shù)
相關(guān)推薦

2013-11-11 11:17:45

AngularJS性能優(yōu)化

2025-06-27 09:05:47

2021-04-27 06:20:25

MySQL集群優(yōu)化

2019-09-27 17:24:26

數(shù)據(jù)庫(kù)優(yōu)化sql

2024-03-11 08:51:08

JVMSWAP內(nèi)存

2025-08-18 03:00:22

Spring樹(shù)形結(jié)構(gòu)分類(lèi)樹(shù)

2021-08-26 22:26:55

性能優(yōu)化技術(shù)

2017-05-31 13:58:05

戴爾宕機(jī)服務(wù)器

2025-06-25 09:30:14

2024-11-08 15:08:17

2023-02-26 11:50:04

Hbase程序Oracle

2012-03-11 15:27:57

微軟

2024-04-10 08:00:00

PostgresNoSQL

2021-04-22 07:29:46

數(shù)據(jù)展現(xiàn)方式

2017-10-31 15:28:27

RUDP傳輸優(yōu)化實(shí)踐

2022-06-15 11:27:15

開(kāi)源代碼項(xiàng)目

2014-08-04 15:13:27

光纖

2024-04-12 09:02:15

JavaCPU執(zhí)行時(shí)間線(xiàn)程

2019-08-21 14:35:18

壓縮文件優(yōu)化過(guò)程Java

2017-08-11 14:28:02

58同城推薦系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

欧美国产精品久久| 免费视频一区二区三区在线观看| 欧美欧美欧美欧美| 亚洲日本japanese丝袜| 国产九色91回来了| 久久一区二区三区电影| 欧美一区二区精美| 国产无限制自拍| 欧美日韩伦理片| 伊人激情综合| 亚洲午夜激情免费视频| 人人干人人干人人| 午夜伦理大片视频在线观看| 国产成人免费视频一区| 88xx成人精品| 午夜国产福利视频| 免费一级欧美在线大片| 精品国产精品自拍| 深夜福利成人| 亚洲av无码片一区二区三区| 欧美日韩三级| 亚洲人成77777在线观看网| 中文字幕国产传媒| 日本精品600av| 91丨porny丨户外露出| 国产99久久精品一区二区永久免费| 真实乱视频国产免费观看| 日韩亚洲国产免费| 亚洲成人av中文| 色综合久久av| 黄色aaa大片| 日本欧美一区二区在线观看| 欧美精品一区二区三区国产精品| 国产在线观看无码免费视频| 99久久这里有精品| 欧美性色xo影院| 日韩视频在线观看视频| 欧美zozo| 成人免费的视频| 国产精品视频地址| 日本在线免费观看| 999国产精品视频| 日韩欧美一二三| 无码日韩人妻精品久久蜜桃| 日韩经典av| 欧美国产在线观看| 久久亚裔精品欧美| www.黄色av| 美女在线视频一区| 欧美一区二区色| 久草视频在线资源站| 西野翔中文久久精品国产| 777久久久精品| caopor在线视频| 蜜桃视频动漫在线播放| 亚洲伦在线观看| 青青草原国产免费| 成人全视频高清免费观看| 波多野结衣亚洲一区| 国产综合久久久久| 午夜一级黄色片| 日韩视频不卡| 久久久久国产视频| 久久久久久久久久久久久久免费看 | 日韩一区二区a片免费观看| 国产精品一区二区中文字幕 | 草草久久久无码国产专区| 午夜伦全在线观看| 欧美激情一区二区三区在线| 国产精品一区二区三区观看| 亚洲大尺度视频| 波多野结衣91| 欧美日韩日本网| jizz在线观看中文| 国产精品久久久久久久久晋中| 一本久道久久综合| 国产调教视频在线观看| 亚洲免费观看高清完整版在线观看| 妞干网这里只有精品| 在线观看中文| 欧美午夜影院在线视频| 国产精品视频黄色| 精品国产伦一区二区三区观看说明| 欧美成人国产一区二区| 国产伦精品一区三区精东| 欧美色图五月天| 在线午夜精品自拍| 成熟的女同志hd| 亚洲精品社区| 国产精品视频xxx| 亚洲精品成av人片天堂无码| 91美女在线视频| 伊人色综合影院| av蜜臀在线| 欧美日韩精品一区二区三区蜜桃| 国产裸体视频网站| 精品久久中文| 欧美激情极品视频| 日韩中文字幕高清| 国产精品一区二区黑丝| 欧美日韩精品免费观看视一区二区| 亚洲麻豆精品| 欧美日韩国产色| 中文字幕在线视频一区二区| 蜜桃一区二区三区| 久久久国产在线视频| 欧产日产国产69| 国产一区二区三区免费| 欧美成ee人免费视频| 久久五月精品| 色综合激情久久| 国产成人av片| 日韩在线观看| 日韩女优人人人人射在线视频| 午夜精品久久久久久久96蜜桃| 亚洲国产激情av| 日韩国产一级片| 精品网站999| 亚洲天堂av网| 日韩 欧美 亚洲| 精品一区二区三区在线播放| 欧美激情专区| а√天堂资源官网在线资源| 欧美一区二区高清| 999福利视频| 视频在线观看一区二区三区| 国外成人免费视频| a级网站在线播放| 欧美日韩精品一区二区天天拍小说 | 亚洲不卡系列| 日韩精品中文字幕视频在线| 久久久99精品| 国产一区二区三区日韩| 在线丝袜欧美日韩制服| 免费观看成人性生生活片 | 欧美日免费三级在线| 国产精品九九九九九| 999亚洲国产精| 国产精品国产精品国产专区不卡| 成年人网站在线| 91麻豆精品久久久久蜜臀| 91麻豆精品久久毛片一级| 七七婷婷婷婷精品国产| 青青草成人网| sis001欧美| 亚洲欧美激情四射在线日| 综合激情网五月| 91视频你懂的| 青青视频在线播放| 亚洲伊人春色| 国产精品电影网站| 91视频在线观看| 欧美日韩激情一区| 色婷婷粉嫩av| 国产激情视频一区二区三区欧美 | 欧美极品色图| 国产亚洲一区二区手机在线观看 | 麻豆极品一区二区三区| 亚洲一区bb| 欧美专区一区| 欧美激情综合亚洲一二区| 蜜桃久久一区二区三区| 亚洲成av人影院在线观看网| av鲁丝一区鲁丝二区鲁丝三区| 国产日韩欧美在线播放不卡| 日韩av不卡播放| 国产精品蜜月aⅴ在线| 另类视频在线观看| 超碰在线播放97| 亚洲成a人片在线观看中文| www.久久av| 毛片不卡一区二区| 国产激情片在线观看| 丝袜连裤袜欧美激情日韩| 国产精品pans私拍| 尤物在线视频| 91精品国产综合久久久久久| 久久久久黄色片| 91美女福利视频| 一级做a免费视频| 欧美黄在线观看| 国产日韩在线一区二区三区| 亚洲成a人片| 日韩视频欧美视频| 三级网站免费观看| 欧美亚洲综合久久| 麻豆91精品91久久久| 2欧美一区二区三区在线观看视频| 欧美婷婷精品激情| 亚洲视频狠狠| 日韩一本精品| 91麻豆精品国产91久久久久推荐资源| 欧美国产日韩xxxxx| 国产小视频免费在线网址| 9191国产精品| 成年人视频在线免费看| 最新久久zyz资源站| 捆绑凌虐一区二区三区| 美女一区二区视频| 成年人网站免费视频| 日本大胆欧美| 精品国产乱码久久久久久108| 久久91视频| 欧美成人剧情片在线观看| 欧美婷婷久久五月精品三区| 日韩欧美国产综合在线一区二区三区 | 欧美影院三区| 国产一区喷水| 日韩精品视频中文字幕| 国产精品日韩在线| 激情aⅴ欧美一区二区欲海潮| 久久久av一区| 国产www.大片在线| 日韩精品亚洲视频| 性生交生活影碟片| 精品视频一区二区三区免费| 国语对白永久免费| 亚洲成a人在线观看| 国产免费久久久久| 中文字幕av一区二区三区免费看| 亚洲成人av免费在线观看| 国产精品一区免费视频| 视频二区在线播放| 亚洲综合国产| 国产人妻777人伦精品hd| 亚洲影视一区二区三区| 亚洲精品在线视频观看| 国模吧精品视频| 免费av一区二区三区| 国产成人一二| 成人9ⅰ免费影视网站| 国产电影一区| 成人福利视频网| 欧美一级网址| 91精品国产自产在线老师啪| 成人全视频在线观看在线播放高清 | 色一情一乱一伦一区二区三区丨 | 深夜福利一区二区| 国产黄色片在线播放| 亚洲欧美激情视频| 黄网在线观看| 国产亚洲激情在线| 精品亚洲综合| 亚洲图片欧美午夜| 国产高清视频在线播放| 国产亚洲欧洲在线| 91吃瓜网在线观看| 精品国偷自产在线视频99| 最新国产在线观看| 上原亚衣av一区二区三区| 亚洲图片88| 两个人的视频www国产精品| 亚洲妇熟xxxx妇色黄| 欧美另类xxx| 激情图片在线观看高清国产| 欧美精品999| 国产福利电影在线播放| 91成人福利在线| 亚洲1234区| 国产中文字幕91| 日韩精品一区二区三区中文在线| 91九色视频在线观看| 国产精品极品在线观看| 久久一区免费| 欧美在线观看视频一区| 日本精品免费视频| 亚洲黄色高清| 国产aaaaa毛片| 久久99这里只有精品| 国产伦精品一区二区三区妓女下载| 成人黄色国产精品网站大全在线免费观看 | 国产午夜精品全部视频播放 | 青青在线视频一区二区三区| julia一区二区三区中文字幕| 成人国产精品av| 国产极品模特精品一二| 品久久久久久久久久96高清| 91麻豆国产自产在线观看亚洲| 中文字幕の友人北条麻妃| 中文日韩在线| 自拍偷拍一区二区三区四区| 国产精品一区二区三区乱码 | 超碰在线观看av| 亚洲毛茸茸少妇高潮呻吟| 777电影在线观看| 久久免费视频在线观看| 成人看片在线观看| 91久久国产综合久久蜜月精品| 亚洲人成网站77777在线观看| 亚洲一区高清| 亚洲精品看片| 亚洲涩涩在线观看| 99热99精品| 国产精品三区在线观看| 欧美性猛交xxxx| 国产露脸无套对白在线播放| 日韩精品小视频| 怡红院av在线| 国产精品美女久久久久av超清| 日韩欧美中文字幕在线视频| 日本福利一区二区三区| 狠狠入ady亚洲精品经典电影| 黄色成人免费看| 91在线云播放| 黄色一级片中国| 在线看不卡av| 天天摸天天碰天天爽天天弄| 欧美成人黄色小视频| 九九九伊在线综合永久| 好看的日韩精品视频在线| 久久久久电影| 黄色免费网址大全| 91影院在线观看| 久久这里只有精品国产| 91超碰这里只有精品国产| 超碰国产在线| 欧美亚洲国产视频| 中文在线免费一区三区| 好色先生视频污| 久久精品理论片| 99在线视频免费| 一本到不卡免费一区二区| 囯产精品一品二区三区| 俺去了亚洲欧美日韩| 日韩高清在线| 日本一区二区精品| 性色一区二区| 内射中出日韩无国产剧情| 亚洲高清免费观看| 亚洲第一天堂在线观看| 欧美超级乱淫片喷水| 国产精品一区二区美女视频免费看| 性欧美精品一区二区三区在线播放 | 婷婷亚洲精品| 免费成人在线视频网站| 99re这里只有精品6| 精品成人免费视频| 亚洲激情第一页| av在线最新| 精品国产一区二区三区免费| 一本色道久久| 欧美高清性xxxx| 狠狠干狠狠久久| 欧美在线观看在线观看| 欧美一区二区视频97| 综合亚洲色图| www.色偷偷.com| 国产精品天美传媒沈樵| 一个人看的www日本高清视频| 久久精品91久久香蕉加勒比| va天堂va亚洲va影视| 99热一区二区三区| 国产精品夜夜爽| 久久99久久98精品免观看软件 | 二区在线视频| 国产精品亚洲аv天堂网| 国产精品7m凸凹视频分类| 久久久久久久高清| 亚洲一区二区三区在线看| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的| 91国产精品91| 国产欧美一区| 天美一区二区三区| 亚洲国产cao| 欧美孕妇性xxxⅹ精品hd| 国产精品男女猛烈高潮激情| 999国产精品999久久久久久| 亚洲精品一区二区18漫画| 午夜精品福利一区二区蜜股av| 青青草在线免费视频| 国产精品黄页免费高清在线观看| 五月婷婷亚洲| 久久久久成人精品无码中文字幕| 色香蕉久久蜜桃| 国产调教视频在线观看| 精品欧美一区二区精品久久| 快she精品国产999| 波多野结衣久久久久| 精品国产欧美一区二区| 都市激情亚洲综合| 黄频视频在线观看| jiyouzz国产精品久久| 波多野结衣高清视频| 久久这里只有精品99| 亚洲精品白浆高清| 亚洲第一天堂久久| 狠狠爱在线视频一区| 成人午夜在线影视| 欧美精品成人一区二区在线观看| 精品影院一区二区久久久| 国产精品1000| 日韩在线视频线视频免费网站| 成人h动漫精品一区二区器材| 日本熟妇人妻中出| 一区二区国产盗摄色噜噜| 精华区一区二区三区| 国产伦精品一区二区三区视频黑人 | 久久免费视频在线观看| 久久看人人摘| 日本aaa视频|