在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Redis的數(shù)據(jù)被刪除,內(nèi)存占用還這么大?

OSC開源社區(qū) ? 來源:OSC開源社區(qū) ? 作者:OSC開源社區(qū) ? 2022-12-14 10:56 ? 次閱讀
?

操作系統(tǒng)分配給 Redis 的內(nèi)存有 6GB,通過指標(biāo) used_memory_human 發(fā)現(xiàn)存儲(chǔ)數(shù)據(jù)只使用了 4GB,為何會(huì)這樣?為何無法保存數(shù)據(jù)?

通過 CONFIG SET maxmemory 100mb或者在 redis.conf 配置文件設(shè)置 maxmemory 100mb Redis 內(nèi)存占用限制。當(dāng)達(dá)到內(nèi)存最大值,會(huì)觸發(fā)內(nèi)存淘汰策略刪除數(shù)據(jù)。

除此之外,當(dāng) key 達(dá)到過期時(shí)間,Redis 會(huì)有以下兩種刪除過期數(shù)據(jù)的策略:

  • 后臺(tái)定時(shí)任務(wù)選取部分?jǐn)?shù)據(jù)刪除;
  • 惰性刪除。

具體原理請(qǐng)移步《Redis 的過期數(shù)據(jù)刪除那些事》。

?

假設(shè) Redis 實(shí)例保存了 5GB 的數(shù)據(jù),現(xiàn)在刪除了 2GB 數(shù)據(jù),Redis 進(jìn)程占用的內(nèi)存一定會(huì)降低么?(也叫做 RSS,進(jìn)程消耗內(nèi)存頁(yè)數(shù))。

答案是:可能依然占用了大約 5GB 的內(nèi)存,即使 Redis 的數(shù)據(jù)只占用了 3GB 左右。

大家一定要設(shè)置maxmemory,否則 Redis 會(huì)繼續(xù)為新寫入的數(shù)據(jù)分配內(nèi)存,無法分配就會(huì)導(dǎo)致應(yīng)用程序報(bào)錯(cuò),當(dāng)然不會(huì)導(dǎo)致宕機(jī)。

釋放的內(nèi)存去哪了

?

明明刪除了數(shù)據(jù),使用 top 命令查看,為何還是占用了那么多內(nèi)存?

內(nèi)存都去哪了?使用 info memory 命令獲取 Redis 內(nèi)存相關(guān)指標(biāo),我列舉了幾個(gè)重要的數(shù)據(jù):

127.0.0.1:6379>infomemory
#Memory
used_memory:1132832//Redis存儲(chǔ)數(shù)據(jù)占用的內(nèi)存量
used_memory_human:1.08M//人類可讀形式返回內(nèi)存總量
used_memory_rss:2977792//操作系統(tǒng)角度,進(jìn)程占用的物理總內(nèi)存
used_memory_rss_human:2.84M//used_memory_rss可讀性模式展示
used_memory_peak:1183808//內(nèi)存使用的最大值,表示used_memory的峰值

used_memory_peak_human:1.13M//以可讀的格式返回used_memory_peak的值
used_memory_lua:37888 // Lua 引擎所消耗的內(nèi)存大小。
used_memory_lua_human:37.00K
maxmemory:2147483648 //能使用的最大內(nèi)存值,字節(jié)為單位。
maxmemory_human:2.00G//可讀形式
maxmemory_policy:noeviction//內(nèi)存淘汰策略

//used_memory_rss/used_memory的比值,代表內(nèi)存碎片率
mem_fragmentation_ratio:2.79

Redis 進(jìn)程內(nèi)存消耗主要由以下部分組成:

  • Redis 自身啟動(dòng)所占用的內(nèi)存;
  • 存儲(chǔ)對(duì)象數(shù)據(jù)內(nèi)存;
  • 緩沖區(qū)內(nèi)存:主要由 client-output-buffer-limit 客戶端輸出緩沖區(qū)、復(fù)制積壓緩沖區(qū)、AOF 緩沖區(qū)。
  • 內(nèi)存碎片。
0fff447e-7b2d-11ed-8abf-dac502259ad0.png內(nèi)存占用

Redis 自身空進(jìn)程占用的內(nèi)存很小可以忽略不計(jì),對(duì)象內(nèi)存是占比最大的一塊,里面存儲(chǔ)著所有的數(shù)據(jù)。

緩沖區(qū)內(nèi)存在大流量場(chǎng)景容易失控,造成 Redis 內(nèi)存不穩(wěn)定,需要重點(diǎn)關(guān)注。

內(nèi)存碎片過大會(huì)導(dǎo)致明明有空間可用,但是卻無法存儲(chǔ)數(shù)據(jù)。

碎片 = used_memory_rss 實(shí)際使用的物理內(nèi)存(RSS 值)除以 used_memory 實(shí)際存儲(chǔ)數(shù)據(jù)內(nèi)存。

什么是內(nèi)存碎片

內(nèi)存碎片會(huì)造成明明有內(nèi)存空間空閑,可是卻無法存儲(chǔ)數(shù)據(jù)。舉個(gè)例子,你跟漂亮小姐姐去電影院看電影,肯定想連在一塊。

假設(shè)現(xiàn)在有 8 個(gè)座位,已經(jīng)賣出了 4 張票,還有 4 張可以買。可是好巧不巧,買票的人很奇葩,分別間隔一個(gè)座位買票。

即使還有 4 個(gè)座位空閑,可是你卻買不到兩個(gè)座位連在一塊的票,厚禮蟹!

100bfe30-7b2d-11ed-8abf-dac502259ad0.png內(nèi)存碎片

內(nèi)存碎片形成原因

?

內(nèi)存碎片是什么原因?qū)е履兀?/p>

主要有兩個(gè)原因:

  • 內(nèi)存分配器的分配策略。
  • 鍵值對(duì)的大小不一樣和刪改操作:Redis 頻繁做更新操作、大量過期數(shù)據(jù)刪除,釋放的空間(不夠連續(xù))無法得到復(fù)用,導(dǎo)致碎片率上升。

接下來我分別探討實(shí)際發(fā)生的原因……

內(nèi)存分配器的分配策略

Redis 默認(rèn)的內(nèi)存分配器采用 jemalloc,可選的分配器還有:glibc、tcmalloc。

內(nèi)存分配器并不能做到按需分配,而是采用固定范圍的內(nèi)存塊進(jìn)行分配。

例如 8 字節(jié)、16 字節(jié)…..,2 KB,4KB,當(dāng)申請(qǐng)內(nèi)存最近接某個(gè)固定值的時(shí)候,jemalloc 會(huì)給它分配最接近固定值大小的空間。

這樣就會(huì)出現(xiàn)內(nèi)存碎片,比如程序只需要 1.5 KB,內(nèi)存分配器會(huì)分配 2KB 空間,那么這 0.5KB 就是碎片。

這么做的目的是減少內(nèi)存分配次數(shù),比如申請(qǐng) 22 字節(jié)的空間保存數(shù)據(jù),jemalloc 就會(huì)分配 32 字節(jié),如果后邊還要寫入 10 字節(jié),就不需要再向操作系統(tǒng)申請(qǐng)空間了,可以使用之前申請(qǐng)的 32 字節(jié)。

刪除 key 的時(shí)候,Redis 并不會(huì)立馬把內(nèi)存歸還給操作系統(tǒng),出現(xiàn)這個(gè)情況是因?yàn)榈讓觾?nèi)存分配器管理導(dǎo)致,比如大多數(shù)已經(jīng)刪除的 key 依然與其他有效的 key 分配在同一個(gè)內(nèi)存頁(yè)中。

另外,分配器為了復(fù)用空閑的內(nèi)存塊,原有 5GB 的數(shù)據(jù)中刪除了 2 GB 后,當(dāng)再次添加數(shù)據(jù)到實(shí)例中,Redis 的 RSS 會(huì)保持穩(wěn)定,不會(huì)增長(zhǎng)太多。

因?yàn)?strong style="font-weight:bold;color:rgba(0,0,0,.85);">內(nèi)存分配器基本上復(fù)用了之前刪除釋放出來的 2GB 內(nèi)存。

鍵值對(duì)大小不一樣和刪改操作

由于內(nèi)存分配器是按照固定大小分配內(nèi)存,所以通常分配的內(nèi)存空間比實(shí)際數(shù)據(jù)占用的大小多一些,會(huì)造成碎片,降低內(nèi)存的存儲(chǔ)效率。

另外,鍵值對(duì)的頻繁修改和刪除,導(dǎo)致內(nèi)存空間的擴(kuò)容和釋放,比如原本占用 32 字節(jié)的字符串,現(xiàn)在修改為占用 20 字節(jié)的字符串,那么釋放出的 12 字節(jié)就是空閑空間。

如果下一個(gè)數(shù)據(jù)存儲(chǔ)請(qǐng)求需要申請(qǐng) 13 字節(jié)的字符串,那么剛剛釋放的 12 字節(jié)空間無法使用,導(dǎo)致碎片。

碎片最大的問題:空間總量足夠大,但是這些內(nèi)存不是連續(xù)的,可能大致無法存儲(chǔ)數(shù)據(jù)。

內(nèi)存碎片解決之道

?

那該如何解決呢?

首先要確定是否發(fā)生了內(nèi)存碎片,重點(diǎn)關(guān)注前面 INFO memory 命令提示的 mem_fragmentation_ratio 指標(biāo),表示內(nèi)存碎片率:

mem_fragmentation_ratio=used_memory_rss/used_memory

如果 1 < 碎片率 < 1.5,可以認(rèn)為是合理的,而大于 1.5 說明碎片已經(jīng)超過 50%,我們需要采取一些手段解決碎片率過大的問題。

重啟大法

最簡(jiǎn)單粗暴的方式就是重啟,如果沒有開啟持久化,數(shù)據(jù)會(huì)丟失。

開啟持久化的話,需要使用 RDB 或者 AOF 恢復(fù)數(shù)據(jù),如果只有一個(gè)實(shí)例,數(shù)據(jù)大的話會(huì)導(dǎo)致恢復(fù)階段長(zhǎng)時(shí)間無法提供服務(wù),高可用大打折扣。

?

咋辦呢?碼哥靚仔

自動(dòng)清理內(nèi)存碎片

既然你都叫我靚仔了,就傾囊相助告訴你終極殺招:Redis 4.0 版本后,自身提供了一種內(nèi)存碎片清理機(jī)制。

?

怎么清理呢?

很簡(jiǎn)單,還是上面的例子,想要買兩張連在一塊的電影票。與與別人溝通調(diào)換下位置,就實(shí)現(xiàn)了。

對(duì)于 Redis 來說,當(dāng)一塊連續(xù)的內(nèi)存空間被劃分為好幾塊不連續(xù)的空間的時(shí)候,操作系統(tǒng)先把數(shù)據(jù)以依次挪動(dòng)拼接在一塊,并釋放原來數(shù)據(jù)占據(jù)的空間,形成一塊連續(xù)空閑內(nèi)存空間。。

如下圖所示:

1015184e-7b2d-11ed-8abf-dac502259ad0.png碎片清理

自動(dòng)清理內(nèi)存碎片的代價(jià)

自動(dòng)清理雖好,可不要肆意妄為,操作系統(tǒng)把數(shù)據(jù)移動(dòng)到新位置,再把原有空間釋放是需要消耗資源的。

Redis 操作數(shù)據(jù)的指令是單線程,所以在數(shù)據(jù)復(fù)制移動(dòng)的時(shí)候,只能等待清理碎片完成才能處理請(qǐng)求,造成性能損耗。

?

如何避免清理碎片對(duì)性能的影響又能實(shí)現(xiàn)自動(dòng)清理呢?

好問題,通過以下兩個(gè)參數(shù)來控制內(nèi)存碎片清理和結(jié)束時(shí)機(jī),避免占用 CPU 過多,減少清理碎片對(duì) Redis 處理請(qǐng)求的性能影響。

開啟自動(dòng)內(nèi)存碎片清理

CONFIGSETactivedefragyes

這只是開啟自動(dòng)清理,何時(shí)清理要同時(shí)滿足以下兩個(gè)條件才會(huì)觸發(fā)清理操作。

清理的條件

active-defrag-ignore-bytes 200mb:內(nèi)存碎片占用的內(nèi)存達(dá)到 200MB,開始清理;

active-defrag-threshold-lower 20:內(nèi)存碎片的空間占比超過系統(tǒng)分配給 Redis 空間的 20% ,開始清理。

避免對(duì)性能造成影響

清理時(shí)間有了,還需要控制清理對(duì)性能的影響。由一項(xiàng)兩個(gè)設(shè)置先分配清理碎片占用的 CPU 資源,保證既能正常清理碎片,又能避免對(duì) Redis 處理請(qǐng)求的性能影響。

active-defrag-cycle-min 20:自動(dòng)清理過程中,占用 CPU 時(shí)間的比例不低于 20%,從而保證能正常展開清理任務(wù)。

active-defrag-cycle-max 50:自動(dòng)清理過程占用的 CPU 時(shí)間比例不能高于 50%,超過的話就立刻停止清理,避免對(duì) Redis 的阻塞,造成高延遲。

總結(jié)

如果你發(fā)現(xiàn)明明 Redis 存儲(chǔ)數(shù)據(jù)的內(nèi)存占用遠(yuǎn)小于操作系統(tǒng)分配給 Redis 的內(nèi)存,而又無法保存數(shù)據(jù),那可能出現(xiàn)大量?jī)?nèi)存碎片了。

通過 info memory 命令,看下內(nèi)存碎片mem_fragmentation_ratio 指標(biāo)是否正常。

那么我們就開啟自動(dòng)清理并合理設(shè)置清理時(shí)機(jī)和 CPU 資源占用,該機(jī)制涉及到內(nèi)存拷貝,會(huì)對(duì) Redis 性能造成潛在風(fēng)險(xiǎn)。

如果遇到 Redis 性能變慢,排查下是否由于清理碎片導(dǎo)致,如果是,那就調(diào)小 active-defrag-cycle-max 的值。

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6850

    瀏覽量

    123432
  • 分配器
    +關(guān)注

    關(guān)注

    0

    文章

    194

    瀏覽量

    25777
  • Redis
    +關(guān)注

    關(guān)注

    0

    文章

    376

    瀏覽量

    10888

原文標(biāo)題:Redis的數(shù)據(jù)被刪除,內(nèi)存占用還這么大?

文章出處:【微信號(hào):OSC開源社區(qū),微信公眾號(hào):OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    華為云Flexus X實(shí)例,Redis性能加速評(píng)測(cè)及對(duì)比

    隨著云計(jì)算技術(shù)的飛速發(fā)展,Redis 作為一種高性能的內(nèi)存數(shù)據(jù)庫(kù),在各種應(yīng)用場(chǎng)景中發(fā)揮著越來越重要的作用。為了滿足不同用戶對(duì) Redis 性能的高要求,華為云推出了 Flexus X
    的頭像 發(fā)表于 12-29 15:47 ?175次閱讀
    華為云Flexus X實(shí)例,<b class='flag-5'>Redis</b>性能加速評(píng)測(cè)及對(duì)比

    Redis緩存與Memcached的比較

    Redis和Memcached都是廣泛使用的內(nèi)存數(shù)據(jù)存儲(chǔ)系統(tǒng),它們主要用于提高應(yīng)用程序的性能,通過減少對(duì)數(shù)據(jù)庫(kù)的直接訪問來加速數(shù)據(jù)檢索。以下
    的頭像 發(fā)表于 12-18 09:33 ?169次閱讀

    如何優(yōu)化RAM內(nèi)存使用

    :使用任務(wù)管理器查看當(dāng)前運(yùn)行的程序和服務(wù),關(guān)閉那些不需要的。 禁用啟動(dòng)程序 :減少開機(jī)啟動(dòng)項(xiàng),只保留必要的程序。 2. 優(yōu)化操作系統(tǒng)設(shè)置 調(diào)整虛擬內(nèi)存 :合理設(shè)置虛擬內(nèi)存,避免過多占用硬盤空間。 清理磁盤 :定期進(jìn)行磁盤清理,
    的頭像 發(fā)表于 11-11 09:58 ?429次閱讀

    恒訊科技分析:云數(shù)據(jù)庫(kù)rds和redis區(qū)別是什么如何選擇?

    結(jié)構(gòu)化數(shù)據(jù),使用SQL作為查詢語(yǔ)言,支持ACID事務(wù)和多種復(fù)雜查詢操作。而Redis是一個(gè)基于內(nèi)存的非關(guān)系型數(shù)據(jù)庫(kù),采用鍵值對(duì)模型存儲(chǔ)數(shù)據(jù)
    的頭像 發(fā)表于 08-19 15:31 ?413次閱讀

    NetApp數(shù)據(jù)恢復(fù)—NetApp存儲(chǔ)誤刪除數(shù)據(jù)恢復(fù)案例

    某公司一臺(tái)NetApp存儲(chǔ),該存儲(chǔ)中有24塊磁盤。 工作人員誤刪除了NetApp存儲(chǔ)中一個(gè)文件夾,文件夾中有非常重要的數(shù)據(jù)數(shù)據(jù)恢復(fù)工程師在現(xiàn)場(chǎng)對(duì)該存儲(chǔ)進(jìn)行了初檢。雖然這個(gè)文件夾被刪除
    的頭像 發(fā)表于 08-12 13:35 ?285次閱讀
    NetApp<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—NetApp存儲(chǔ)誤<b class='flag-5'>刪除</b>的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    mesh的內(nèi)存占用能否優(yōu)化?

    我測(cè)試到esp_mesh在開啟的情況下,即打開wifi和打開mesh,DRAM會(huì)占用大約130kb內(nèi)存。且測(cè)試發(fā)現(xiàn)esp32剩余內(nèi)存不足大約60kb的時(shí)候系統(tǒng)會(huì)重啟。這樣來說300KB內(nèi)存
    發(fā)表于 06-28 15:32

    服務(wù)器數(shù)據(jù)恢復(fù)—EMC Isilon存儲(chǔ)中虛擬機(jī)數(shù)據(jù)恢復(fù)案例

    、AS、TS類型的視頻文件等。需要恢復(fù)數(shù)據(jù)的虛擬機(jī)通過NFS協(xié)議共享到ESX主機(jī),視頻文件通過CIFS協(xié)議共享給虛擬機(jī)(WEB服務(wù)器)。 通過NFS協(xié)議共享的所有數(shù)據(jù)(虛擬機(jī))被刪除,而通過CIFS協(xié)議共享的
    的頭像 發(fā)表于 06-13 13:38 ?407次閱讀
    服務(wù)器<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—EMC Isilon存儲(chǔ)中虛擬機(jī)<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    服務(wù)器數(shù)據(jù)恢復(fù)—存儲(chǔ)中卷被刪除后重建如何恢復(fù)被刪除卷的數(shù)據(jù)

    服務(wù)器存儲(chǔ)數(shù)據(jù)恢復(fù)環(huán)境: 某品牌FlexStorage P5730服務(wù)器存儲(chǔ),存儲(chǔ)中有一組由24塊硬盤組建的RAID5陣列,包括1塊熱備硬盤。 服務(wù)器存儲(chǔ)故障: 存儲(chǔ)中的2個(gè)卷被刪除刪除之后重建了一個(gè)新卷。需要恢復(fù)之
    的頭像 發(fā)表于 06-05 11:03 ?683次閱讀

    NetApp數(shù)據(jù)恢復(fù)—WAFL文件系統(tǒng)下誤刪除數(shù)據(jù)數(shù)據(jù)恢復(fù)案例

    某公司NetApp存儲(chǔ)設(shè)備,人為誤操作導(dǎo)致NetApp存儲(chǔ)內(nèi)部分重要數(shù)據(jù)被刪除,該NetApp存儲(chǔ)采用WAFL文件系統(tǒng),底層是由多塊硬盤組成的raid陣列。
    的頭像 發(fā)表于 05-13 10:50 ?385次閱讀

    Redis為什么這么快?

    Redis 是基于內(nèi)存數(shù)據(jù)庫(kù),那不可避免的就要與磁盤數(shù)據(jù)庫(kù)做對(duì)比。對(duì)于磁盤數(shù)據(jù)庫(kù)來說,是需要將數(shù)據(jù)
    發(fā)表于 04-12 10:32 ?221次閱讀
    <b class='flag-5'>Redis</b>為什么<b class='flag-5'>這么</b>快?

    linux下查詢進(jìn)程占用內(nèi)存方法有哪些?

    linux下查詢進(jìn)程占用內(nèi)存方法
    發(fā)表于 04-08 06:03

    Redis開源版與Redis企業(yè)版,怎么選用?

    點(diǎn)擊“藍(lán)字”關(guān)注我們數(shù)以千計(jì)的企業(yè)和數(shù)以百萬計(jì)的開發(fā)人員Redis開源版來構(gòu)建應(yīng)用程序。但隨著用戶數(shù)量、數(shù)據(jù)量和地區(qū)性的增加,成本、可擴(kuò)展性、運(yùn)營(yíng)和可用性等問題也隨之而來。Redis企業(yè)版
    的頭像 發(fā)表于 04-04 08:04 ?1124次閱讀
    <b class='flag-5'>Redis</b>開源版與<b class='flag-5'>Redis</b>企業(yè)版,怎么選用?

    數(shù)據(jù)安全沒保障?GaussDB(for Redis) 為你保駕護(hù)航

    未知的 key,實(shí)際上可能面臨數(shù)據(jù)庫(kù)信息丟失和記錄篡改的風(fēng)險(xiǎn)。 作為一個(gè)重視技術(shù)的團(tuán)隊(duì),我們始終將用戶信息安全和使用體驗(yàn)放在第一位。對(duì)于這次用戶使用開源 Redis 遇到的問題,我們盤點(diǎn)了 GaussDB(for Redis)精
    的頭像 發(fā)表于 03-28 22:09 ?687次閱讀
    <b class='flag-5'>數(shù)據(jù)</b>安全沒保障?GaussDB(for <b class='flag-5'>Redis</b>) 為你保駕護(hù)航

    在MDK中使用RTT為什么內(nèi)存占用這么大?

    為什么在MDK中使用RTT ,內(nèi)存占用這么大?
    發(fā)表于 02-26 07:19

    MongoDB和Redis的技術(shù)特性

    Redis作為一個(gè)高性能的內(nèi)存數(shù)據(jù)存儲(chǔ)系統(tǒng),能夠提供快速的緩存機(jī)制,從而幫助應(yīng)用承受高并發(fā)請(qǐng)求,顯著提高系統(tǒng)響應(yīng)速度和吞吐量。這與國(guó)內(nèi)互聯(lián)網(wǎng)公司推崇的快速迭代和高用戶并發(fā)量的特點(diǎn)非常契合。
    的頭像 發(fā)表于 02-01 11:42 ?515次閱讀
    MongoDB和<b class='flag-5'>Redis</b>的技術(shù)特性
    主站蜘蛛池模板: 香港三级理论在线影院| a黄网站| 国产精品自在线天天看片| 免费看一级黄色录像| 国产在线免| 中国人黑人xxⅹ性猛| 人人澡人人搞| 亚洲欧美精品| 伊人久久成人成综合网222| 香蕉久久夜色精品国产小说| 四虎亚洲国产成人久久精品| 欧美一区二区影院| 国内亚州视频在线观看| www.三级.com| 神马福利| 五月天色丁香| 男人扒开美女尿口无遮挡图片| 最黄毛片| 三级理论在线播放大全| 久久国产精品久久久久久 | 狠狠色噜噜狠狠狠狠98| 在线亚洲色图| 日韩欧美色| 国产手机免费视频| 天天色天天干天天射| 国产午夜精品福利| 性夜黄 a 爽免费看| 午夜宅男视频| 久久精品视频免费观看| 夜夜爱视频| 7777奇米| 一级特黄牲大片免费视频| 欧美一级片观看| 在线观看一级片| jlzzjlzzjlzz亚洲女| 康熙古代高h细节肉爽文全文| 天堂最新版免费观看| 国内一级特黄女人精品片| 天堂网站| 午夜激情婷婷| 日本免费网站在线观看|