• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    大型數(shù)據(jù)場景中定時任務系統(tǒng)研究

    2018-12-22 10:55:48尹隆波
    電腦知識與技術 2018年33期

    尹隆波

    摘要:大型數(shù)據(jù)運用場景中存在數(shù)據(jù)進行關聯(lián)或更新操作的需求,在實際應用中通過單獨部署定時任務系統(tǒng)周期性去統(tǒng)計或更新數(shù)據(jù)。由于龐大而復雜的數(shù)據(jù),定時任務系統(tǒng)中的任務運行起來耗時很長而且會過多地消耗系統(tǒng)的資源,對系統(tǒng)的性能造成很大的影響。另外,復雜的定時任務系統(tǒng)中出現(xiàn)問題很難去排查并進行分析?;谝陨蠁栴},論文通過合理的利用多線程技術、采用增量更新數(shù)據(jù)、合理設置不同子定時任務的運行時間和周期來提高系統(tǒng)處理速度,并且采用擴展ThreadPoolExecutor統(tǒng)計線程運行情況、給每個線程設置有意義的名稱以方便系統(tǒng)中的問題排查分析。

    關鍵詞: 高并發(fā);定時任務;線程池;負載均衡;JAVA

    中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2018)33-0025-03

    大型數(shù)據(jù)運用場景中,通常需要展示一個對象關聯(lián)的其他類型對象的數(shù)量,并且其關聯(lián)的其他類型數(shù)據(jù)出于不斷地動態(tài)地增加中。通常巨量的對象數(shù)據(jù)存儲在如Solr、ElaticSearch等非關系型數(shù)據(jù)庫中。非關系型數(shù)據(jù)中,多個表之間沒有提供直接的關聯(lián)操作。運行單獨的定時統(tǒng)計任務來計算對象關聯(lián)的其他類型對象數(shù)量以及動態(tài)增加新關聯(lián)的對象,是處理上述問題的一種實用解決方案。一方面,定時任務能夠及時統(tǒng)計或更新關聯(lián)數(shù)據(jù)滿足客戶的展示需要;另一方面,利用定時任務進行統(tǒng)計,能夠大幅度減少頁面過程中后臺程序復雜計算的時間,使得頁面加載的時長控制在用戶接受范圍內(nèi)。

    基于Java 開發(fā)的Web系統(tǒng),可以采用JDK提供的Shedular框架運行定時任務,使用簡單并且高效。為了提高定時任務的運行效率、以及方便問題定位分析,論文將根據(jù)實際應用中的解決辦法從這兩個目標進行闡述。

    1 提高系統(tǒng)處理速度

    大型數(shù)據(jù)運用場景中,通常定時任務系統(tǒng)需要處理的數(shù)據(jù)量巨大,為了提高定時任務系統(tǒng)的處理速度,可以從以下三方面考慮。一是利用多線程技術進行并發(fā)處理;二是采用增量更新數(shù)據(jù)的策略;三是合理地設置定時任務數(shù)量,以及合理安排多個子定時任務的運行時間和運行周期。

    1.1 多線程并發(fā)處理

    為了提高系統(tǒng)數(shù)據(jù)處理的速度,在多CPU的服務器上,可以采用多線程技術充分利用多個CPU的計算能力。通常開發(fā)者可以將一個定時任務,拆分成可以獨立運行的若干個細小子任務,然后為每一個子任務單獨創(chuàng)建個線程運行。如果拆分的子定時任務數(shù)量過多,系統(tǒng)中運行的線程數(shù)量也會過多,由于每個線程的創(chuàng)建需要一定的系統(tǒng)資源和時間開銷,大量的線程會降低系統(tǒng)的響應速度和性能。因此,需要合理地設置系統(tǒng)中運行的線程數(shù)量。簡單來說,Java并發(fā)有兩種類型:計算密集型并發(fā)和IO密集型并發(fā)。

    1) 計算密集型并發(fā)

    計算密集型,從名稱的定義上來看,就是一個應用需要數(shù)量龐大的CPU資源進行數(shù)據(jù)計算操作。進入21世紀后,信息技術步入了多核CPU服務器時代,讓每一個CPU核心都參與數(shù)據(jù)計算,將多核CPU的性能充分利用起來,這樣才能最高效率地使用服務器硬件資源。在裝載成百上千CPU的服務器配置上運行單線程任務,是對寶貴的硬件資源的最大浪費。對于計算密集型的應用,主要是靠CPU的運算能力來工作,消耗CPU資源,大部分時間用來運行計算、邏輯判斷等CPU動作,比如計算圓周率、對視頻進行高清解碼等,通常這些應用訪問I/O設備頻率較低。為了發(fā)揮CPU密集并發(fā)應用的性能優(yōu)勢,需要盡量避免過多的線程頻繁地進行上下文切換,一種比較比合理的方案是:線程數(shù)量 = CPU核數(shù) + 1。

    另外一種較為理想的方法是:線程數(shù)量 = CPU核數(shù) * 2。除了考慮CPU的內(nèi)核數(shù)量,另外還要參考JDK的使用版本,以及CPU的硬件配置(現(xiàn)在部分服務器的CPU支持超線程機制)。JDK 1.8后,JAVA默認支持并行計算,因此,基于JDK1.8或更高的JAVA版本,計算密集型應用的合理方案是:線程數(shù) = CPU核數(shù) * 2??梢酝ㄟ^JDK提供的接口從運行的JVM環(huán)境中獲取服務器的CPU數(shù)量。

    2) IO密集型并發(fā)

    顧名思義,IO密集型的應用,大部分的時間在等待IO讀寫操作上,而CPU占用率并不高。目前大部分軟件項目都是Web應用,一方面涉及大量而頻繁的網(wǎng)絡信息傳輸,另一方面,程序應用與數(shù)據(jù)庫系統(tǒng)、與緩存間的數(shù)據(jù)交互也需要大量的IO讀寫。一旦發(fā)生IO讀寫操作,線程會一直等待IO操作的運行,直到IO操作完成、數(shù)據(jù)準備好后,線程才會繼續(xù)執(zhí)行后續(xù)步驟。通常IO讀寫操作時間較長(主要受到磁盤讀寫速度和網(wǎng)絡傳輸帶寬的限制),這時線程處于等待狀態(tài),而CPU處于空閑狀態(tài), 此時可以運行其他非等待狀態(tài)的線程,處理其他的工作,從而提高系統(tǒng)的并發(fā)量。因此對于IO密集型的應用,應該將同時運行的線程數(shù)量設置大些。

    但同時運行的線程數(shù)量也不能設置過大,線程數(shù)量應當每個子任務處于阻塞狀態(tài)的時間比例相關。假設每個子任務平均的50%時間處于阻塞狀態(tài),那么定時任務系統(tǒng)同時運行的線程數(shù)量應當是服務器CPU核數(shù)的兩倍。換而言之,應用中的線程數(shù)量應當同CPU的數(shù)量成正比,而和每個子任務IO的平均阻塞時間占比率成反比。基于CPU和阻塞時間占比,開發(fā)人員可以計算出程序所需的線程數(shù)。對于IO密集型應用,目前歸納出了一套公式:線程數(shù)量=CPU核數(shù)/(1-阻塞系數(shù))。

    公式中的阻塞系數(shù)一般在0.8和0.9之間取值,也可以是0.8或者0.9。基于上述公式,對于一個密集型應用系統(tǒng),假設服務器CPU數(shù)量為16,則其較為合適的線程數(shù)量應當是80到160之間,但這也不是絕對的,可以根據(jù)系統(tǒng)的實際情況以及運行狀況來合理調(diào)整。

    1.2 增量更新數(shù)據(jù)

    在一些大數(shù)據(jù)運用場景中,上游應用中的信息數(shù)據(jù)每時每刻都在發(fā)生變化,而依賴這些數(shù)據(jù)的下游系統(tǒng)需要運行定時任務系統(tǒng)來周期性刷新這些變化的數(shù)據(jù)。當數(shù)據(jù)量小時候,可以采用簡單粗暴的方式—每次任務進行全量的數(shù)據(jù)更新。但隨著系統(tǒng)業(yè)務的快速增長,應用中的數(shù)據(jù)量成幾何方式增長時,定時任務系統(tǒng)中的工作將極為耗時并且占用大量IO硬件資源。這種方式下,每個周期都需要從數(shù)據(jù)庫服務器上通過IO讀寫或同上游進行數(shù)據(jù)的網(wǎng)絡傳輸,獲得全量的數(shù)據(jù)。當傳輸?shù)臄?shù)據(jù)量過大時,IO操作耗費的時間會占比很大,并大量占用系統(tǒng)的IO資源,而IO能力通常是系統(tǒng)的瓶頸所在。

    此時,可以通過采購更多以及性能更好的硬件資源來處理不斷快速增長的數(shù)據(jù)。通常,這是這是一種不太可取的奢侈方案。不過可以轉(zhuǎn)換一種思路,將全量更新機制替換為增量更新。雖然數(shù)據(jù)量總量十分龐大,但一段時間內(nèi)發(fā)生變化的數(shù)據(jù)量一般是有限的,定時任務系統(tǒng)在每個周期內(nèi)只需增量處理周期內(nèi)更新的數(shù)據(jù)即可,這樣可以很大程度上降低定時任務系統(tǒng)的IO時間開銷,并節(jié)省寶貴的IO資源。

    增量更新的基礎是全量數(shù)據(jù),最初可以采用某種方式先把全量數(shù)據(jù)拷貝存入業(yè)務系統(tǒng)。然后運行定時任務去周期性更新一段時間內(nèi)增加或變化的數(shù)據(jù)。增量更新,一般是讀取某個時刻(更新時間)或者檢查點(checkpoint)之后的信息數(shù)據(jù)來處理,而不是粗暴的讀取全量數(shù)據(jù)。雖然增量更新會造成一定的額外空間開銷,需要對每條數(shù)據(jù)記錄采用時間或checkpoint標識和記錄更新點,但從整體上考慮,這是十分必要的。

    1.3 合理設置定時任務數(shù)量,合理安排運行時間

    大型數(shù)據(jù)運用場景中,需要進行統(tǒng)計或增量更新的對象類型繁多,定時任務處理的事情龐大而復雜。這種場景下,應當避免將所有的功能邏輯放在一個大而全的定時任務中,而是合理地拆分一個大而全的定時任務,將定時任務細分成若干個獨立、互不影響的小的定時任務,每個定時任務處理同一種或幾種相互關聯(lián)類型的數(shù)據(jù)。一方面可以提高系統(tǒng)并行的處理速度,另一方面,可以在不同的時間段內(nèi)運行合適的定時任務從而實現(xiàn)時間概念上的負載均衡。

    將大的任務細分后,一些任務執(zhí)行周期較短的,如兩三個小時左右的,可以考慮放在系統(tǒng)業(yè)務不繁忙的時候觸發(fā),如凌晨兩三點,避免與正在運行的關鍵業(yè)務系統(tǒng)競爭IO、CPU等資源。另外,盡量將不同定時任務的運行時間錯開,降低一段時間內(nèi)的系統(tǒng)負荷,尤其是業(yè)務繁忙的時間段。同時,需要合理地考慮每個子定時任務運行的周期。首先,任務周期需要超過通常情況下該任務運行的最長時間;其次,定時任務的周期需要滿足大部分數(shù)據(jù)及時性的要求。

    2 方便問題定位分析

    復雜而龐大的定時任務系統(tǒng)中,開發(fā)人員經(jīng)常要使用JDK提供的ThreadPoolExecutor框架類創(chuàng)建線程池來執(zhí)行大量的定時任務,通過線程池的并發(fā)特性來提高定時任務系統(tǒng)的吞吐量。在程序開發(fā)過程中,合理地運用線程池技術有以下三方面優(yōu)點。一是:降低系統(tǒng)資源的消耗。通過循環(huán)利用已經(jīng)創(chuàng)建的線程減少重新構造線程和銷毀線程造成的資源消耗。二:提高系統(tǒng)的響應速度。新的任務提交后,新任務直接利用已存在的線程就可以立刻執(zhí)行。三:提高線程的可管理性。使用線程池技術可以對線程這一稀缺資源進行統(tǒng)一分配、調(diào)優(yōu)和監(jiān)控。

    JDK提供了線程池技術,為線程創(chuàng)建、銷毀的開銷問題和系統(tǒng)資源不足問題提供了很好的解決方案, 能有效地提高系統(tǒng)的響應速度和服務系統(tǒng)的整體性能。但默認的線程池框架在線程運行情況統(tǒng)計、線程名稱展示存在不盡人意的地方?;赥hread PoolExecutor類存在的這兩個不足,論文提出了相應的解決辦法。

    2.1 擴展Thread Pool Executor統(tǒng)計運行情況

    線程池使用不當也會使服務器資源枯竭,導致異常情況的發(fā)生,比如固定線程池的阻塞隊列任務數(shù)量過多、內(nèi)存溢出、系統(tǒng)假死等問題。如果在定時任務系統(tǒng)中大量地使用線程池,則很有必要對運行的線程池進行必要的監(jiān)控,以便系統(tǒng)出現(xiàn)問題時,可以根據(jù)線程池的運行狀況快速定位問題原因,并分析問題。因此,定時任務系統(tǒng)中需要一種簡單而有效的監(jiān)控方案來監(jiān)控線程池的使用情況,比如完成任務數(shù)量、線程池大小、每個線程的運行時間線程池中運行的線程數(shù)量等信息。

    基于以上的功能要求,在定時任務系統(tǒng)中可以對ThreadPoolExecutor類進行一定的擴展,在線程池中實現(xiàn)簡單的監(jiān)控功能,并實時將線程池運行狀況信息打印到日志中,方便技術人員進行問題排查、系統(tǒng)調(diào)優(yōu)。具體的思路如下:通過StatThreadPoolExecutor類繼承ThreadPoolExecutor類來自定義線程池,重寫默認線程池的shutdown、shutdownNow、beforeExecute和afterExecute方法來統(tǒng)計線程池的執(zhí)行情況,這幾個方法是ThreadPoolExecutor類預留給程序開發(fā)人員進行擴展的方法,具體如下:

    shutdown方法:線程池延遲關閉時(這一方法需要等待線程池里的所有任務都執(zhí)行完畢),統(tǒng)計已執(zhí)行完畢的任務數(shù)量、正在運行的任務數(shù)量、還未執(zhí)行的任務數(shù)量。shutdownNow方法:線程池立即關閉時(這一方法無需等待線程池里的所有任務都執(zhí)行完畢),統(tǒng)計已執(zhí)行完畢的任務數(shù)量、正在運行的任務數(shù)量、還未執(zhí)行的任務數(shù)量。beforeExecute(Thread t, Runnable r)方法:添加在任務執(zhí)行之前,記錄任務運行開始的時間,通過Map保存每個任務運行的開始時間,以任務的hashCode為key值,開始時間為value值。afterExecute(Runnable r, Throwable t)方法:任務執(zhí)行之后,計算任務結(jié)束時間。統(tǒng)計任務耗時、初始線程數(shù)、核心線程數(shù)、正在執(zhí)行的任務數(shù)量、已完成任務數(shù)量、任務總數(shù)、隊列里緩存的任務數(shù)量、池中存在的最大線程數(shù)、最大允許的線程數(shù)、線程空閑時間、線程池是否已經(jīng)關閉、線程池是否已經(jīng)終止信息。

    在StatThreadPoolExecutor類構造方法中,需要繼承ThreadPoolExecutor的構造方法,但可以另外增加一個參數(shù),用來傳入線程池名稱參數(shù),該參數(shù)主要是用來給線程池定義一個與業(yè)務相關并有具體意義的線程池名字,方便進行系統(tǒng)的運維工作人員排查線上問題。

    并發(fā)系統(tǒng)會依賴beforeExecute和afterExecute這兩個方法統(tǒng)計的信息。有了這些線程池運行狀態(tài)信息之后,開發(fā)人員可以根據(jù)業(yè)務情況和統(tǒng)計的線程池的信息合理地調(diào)整線程池大小,并根據(jù)每個任務耗時長短對任務進行性能分析。同時,可以發(fā)現(xiàn)執(zhí)行時間過長的線程,然后可以根據(jù)具體程序分析這些任務耗時較多的原因,對定時任務程序進行優(yōu)化,從而提高相應的子定時系統(tǒng)的執(zhí)行速度。在生產(chǎn)環(huán)境中,應當盡量避免使用shutdown和shutdownNow方法,因為調(diào)用這兩個關閉線程池的方法之后,線程池會被關閉,不再接收新的任務。定時任務中需要判斷線程池內(nèi)的線程是否已全部執(zhí)行完畢,在線程數(shù)量固定的情況下可以使用并發(fā)工具包中的CountDownLatch來進行判斷,在線程數(shù)量不固定的情況下,CountDownLatch就不再適用。這種場景下,可以通過判斷線程池中的等待隊列、和運行狀態(tài)為active的線程數(shù)量來確定線程池中所有線程是否已執(zhí)行完畢。

    2.2 定制線程名稱

    Web項目中使用ThreadPoolExecutor進行多線程開發(fā),使用起來很方便,但當運維的工作人員查看堆棧信息或者調(diào)試性能的時候,看到的線程名稱默認都是pool-1-thread-1\2\3\4之類。如果系統(tǒng)中用到了多個線程池,排查系統(tǒng)故障時就無法區(qū)分是哪個線程產(chǎn)生的問題。使用JAVA默認的線程池技術,線程的每一次運行都是不同的執(zhí)行結(jié)果,如果在排查問題時要想?yún)^(qū)分每一個線程,應當給每一個運行的線程任務定義有意義的名稱,另外線程的名字應當在線程啟動之前進行定義。

    在ThreadPoolExecutor中所有的線程都是以pool-開頭的,因為線程池工廠中對線程設置的名字是固定格式的。如果需要修改默認的線程名稱,需要擴展自行定義并線程工廠ThreadFactory,在定制的線程工廠中重新設置線程運行時的名稱。還有一種方法,線程在被調(diào)用后才會執(zhí)行run方法,run方法的執(zhí)行表示這個任務真正被線程運行了,這時線程的名稱也就確定了,所以可以在任務線程的run方法中第一句添加定義線程名稱的語句。

    3 總結(jié)

    大數(shù)據(jù)運用場景的定時任務系統(tǒng)中,使用多線程并發(fā)技術能大幅度提高系統(tǒng)的處理速度。在使用多線程機制的過程中,需要判斷系統(tǒng)各個模塊是IO密集型還是CPU密集型,然后合理地設置同時運行的線程數(shù)目。在巨量的信息數(shù)據(jù)系統(tǒng)中,粗暴地使用全量數(shù)據(jù)來更新對定時任務系統(tǒng)來說是個很難完成的任務,可以通過增加時間戳的方式,在每個周期內(nèi)增量更新一段時間內(nèi)的關聯(lián)數(shù)據(jù)。復雜的定時任務系統(tǒng)中一般拆分成多個子定時任務,應該合理地錯開不同定時任務的運行時間以及運行周期,從而有效地降低系統(tǒng)的負載。

    合理地運用線程池技術可以降低系統(tǒng)資源的消耗、提高系統(tǒng)的響應速度和提高線程的可管理性。但默認的線程池框架沒有提供線程運行情況統(tǒng)計、線程名稱展示的功能。通過擴展線程池ThreadPoolExecutor,開發(fā)人員可以獲取線程池的運行調(diào)度內(nèi)部細節(jié),對并發(fā)運行的定時任務系統(tǒng)進行故障排查、問題分析很有幫助。此外,開發(fā)過程中應當給每一個運行的線程任務定義有意義的名稱,以便在排查問題時很輕易地區(qū)分每一個線程。

    參考文獻:

    [1] 任冬艷, 廖建新, 王純. 基于 JDK1. 5 的定時任務執(zhí)行方案的改進[J]. 計算機系統(tǒng)應用, 2008(2):115-118.

    [2] 豐洪才, 鄧華來, 劉年波. 定時任務在智能數(shù)碼監(jiān)控系統(tǒng)中的應用[J]. 武漢工業(yè)學院學報, 2004, 23(3): 1-3.

    [3] 王華, 馬亮, 顧明. 線程池技術研究與應用[J].計算機應用研究,2005,22(11):141-142.

    [4] 吳健. 基于并發(fā)控制機制的 Web 系統(tǒng)的開發(fā)技術研究[D]. 云南大學, 2015.

    [5] 吳高陽. 基于 NIO 的 Java 高性能網(wǎng)絡技術的研究與應用[D]. 西安: 西安電子科技大學, 2014.

    [6] 周博. WEB 服務器負載均衡系統(tǒng)設計與實現(xiàn)[D]. 電子科技大學, 2014.

    [7] 楊開杰, 劉秋菊, 徐汀榮. 線程池的多線程并發(fā)控制技術研究[J]. 計算機應用與軟件, 2010 (1): 168-170.

    [8]唐穎峰, 陳世平. 一種面向分布式數(shù)據(jù)流的閉頻繁模式挖掘方法[J]. 計算機應用研究, 2015, 32(12):3560-3564.

    [9] 王有為, 王偉平, 孟丹. 基于統(tǒng)計方法的 Hive 數(shù)據(jù)倉庫查詢優(yōu)化實現(xiàn)[J]. 計算機研究與發(fā)展, 2015, 52(6): 1452-1462.

    [10] 麻雙克, 周蘭鳳. 云計算環(huán)境下基于優(yōu)先級的 IO 和網(wǎng)絡密集型應用調(diào)度策略[J]. 上海理工大學學報, 2017, 39(5): 505-510.

    【通聯(lián)編輯:唐一東】

    亚洲欧美日韩另类电影网站| √禁漫天堂资源中文www| 桃红色精品国产亚洲av| 视频在线观看一区二区三区| 免费看十八禁软件| 操出白浆在线播放| 麻豆国产av国片精品| 麻豆国产av国片精品| 日本一区二区免费在线视频| 在线观看日韩欧美| 99香蕉大伊视频| 这个男人来自地球电影免费观看| 丝袜美腿诱惑在线| 丰满的人妻完整版| 人人妻,人人澡人人爽秒播| 国产亚洲精品第一综合不卡| 午夜视频精品福利| 国产精品一区二区精品视频观看| 精品久久久精品久久久| 啦啦啦在线免费观看视频4| 国内久久婷婷六月综合欲色啪| 免费av中文字幕在线| 亚洲欧美日韩高清在线视频| 美女福利国产在线| 一级毛片高清免费大全| 淫妇啪啪啪对白视频| netflix在线观看网站| 亚洲一区中文字幕在线| 亚洲五月色婷婷综合| 日本黄色视频三级网站网址| 午夜视频精品福利| 国产三级在线视频| 亚洲精品久久成人aⅴ小说| 深夜精品福利| av有码第一页| 国产成人精品无人区| 欧美乱妇无乱码| 精品一区二区三区四区五区乱码| 可以免费在线观看a视频的电影网站| 成人18禁在线播放| 日日摸夜夜添夜夜添小说| 国产熟女xx| 在线观看66精品国产| 男女下面进入的视频免费午夜 | 亚洲国产欧美网| 亚洲 国产 在线| 欧美黑人欧美精品刺激| 精品少妇一区二区三区视频日本电影| 国产又爽黄色视频| 久久精品成人免费网站| 男女高潮啪啪啪动态图| 亚洲三区欧美一区| 女生性感内裤真人,穿戴方法视频| 如日韩欧美国产精品一区二区三区| 搡老乐熟女国产| 国产亚洲av高清不卡| 少妇被粗大的猛进出69影院| 亚洲五月天丁香| 久久伊人香网站| 精品福利观看| 午夜福利,免费看| 亚洲五月婷婷丁香| 日日摸夜夜添夜夜添小说| 亚洲专区中文字幕在线| 欧美日韩亚洲综合一区二区三区_| 极品人妻少妇av视频| 国产亚洲精品综合一区在线观看 | 国产又色又爽无遮挡免费看| 天天躁狠狠躁夜夜躁狠狠躁| 嫩草影视91久久| 天天躁夜夜躁狠狠躁躁| 国产一区二区三区视频了| 777久久人妻少妇嫩草av网站| 午夜两性在线视频| 黑人巨大精品欧美一区二区mp4| 久久国产精品影院| 妹子高潮喷水视频| 精品人妻1区二区| 999精品在线视频| 亚洲 欧美 日韩 在线 免费| 九色亚洲精品在线播放| 三上悠亚av全集在线观看| 国产不卡一卡二| 美女高潮到喷水免费观看| 母亲3免费完整高清在线观看| 中文字幕人妻熟女乱码| 校园春色视频在线观看| 窝窝影院91人妻| 国产精品一区二区精品视频观看| 久久人人97超碰香蕉20202| 男女做爰动态图高潮gif福利片 | 亚洲成av片中文字幕在线观看| 成人黄色视频免费在线看| 国产精品电影一区二区三区| 欧美av亚洲av综合av国产av| 99国产精品一区二区蜜桃av| 国产成人av激情在线播放| 色哟哟哟哟哟哟| 久久久水蜜桃国产精品网| 午夜老司机福利片| 曰老女人黄片| 亚洲熟妇中文字幕五十中出 | 波多野结衣av一区二区av| 久久人妻熟女aⅴ| 高清av免费在线| 国产精品免费视频内射| 国产一区二区三区综合在线观看| 亚洲免费av在线视频| 女性被躁到高潮视频| 少妇被粗大的猛进出69影院| 久99久视频精品免费| netflix在线观看网站| 丁香欧美五月| 两性夫妻黄色片| 亚洲 欧美一区二区三区| 自线自在国产av| 99国产综合亚洲精品| 久久草成人影院| 国产乱人伦免费视频| 岛国视频午夜一区免费看| 99香蕉大伊视频| 亚洲欧美一区二区三区久久| 国产精品国产av在线观看| 超色免费av| 亚洲精品av麻豆狂野| 精品人妻1区二区| 久久99一区二区三区| 国产av一区在线观看免费| 日本黄色视频三级网站网址| 国产精品av久久久久免费| 精品午夜福利视频在线观看一区| 99国产精品一区二区蜜桃av| 国产三级黄色录像| 成在线人永久免费视频| 国产免费av片在线观看野外av| 18禁国产床啪视频网站| 成人亚洲精品一区在线观看| 日本wwww免费看| 欧美 亚洲 国产 日韩一| 久久精品国产亚洲av香蕉五月| 国产成人影院久久av| 精品国产乱子伦一区二区三区| 成人国产一区最新在线观看| 国产成人精品久久二区二区91| 国产aⅴ精品一区二区三区波| 999精品在线视频| 国产成人精品在线电影| 伦理电影免费视频| 精品人妻1区二区| 免费搜索国产男女视频| 男男h啪啪无遮挡| 日本欧美视频一区| 久久午夜亚洲精品久久| 757午夜福利合集在线观看| 在线永久观看黄色视频| 久久久精品国产亚洲av高清涩受| 国产精品99久久99久久久不卡| 国产成年人精品一区二区 | 天天躁狠狠躁夜夜躁狠狠躁| 香蕉国产在线看| 色播在线永久视频| 亚洲成人国产一区在线观看| 女人被狂操c到高潮| 变态另类成人亚洲欧美熟女 | 欧美日韩福利视频一区二区| 欧美日韩精品网址| 成年人免费黄色播放视频| av片东京热男人的天堂| 精品国产亚洲在线| 久久中文字幕人妻熟女| 国产精品 欧美亚洲| 免费在线观看视频国产中文字幕亚洲| 久久中文看片网| 国产极品粉嫩免费观看在线| 国产亚洲av高清不卡| 成人免费观看视频高清| 久久久久精品国产欧美久久久| 欧美日韩亚洲高清精品| 久久中文字幕一级| 亚洲欧洲精品一区二区精品久久久| 老熟妇仑乱视频hdxx| 免费观看人在逋| 级片在线观看| 久久国产乱子伦精品免费另类| 大型av网站在线播放| 我的亚洲天堂| 精品一品国产午夜福利视频| 日本撒尿小便嘘嘘汇集6| 欧美日韩av久久| 久久精品影院6| 久久久久久亚洲精品国产蜜桃av| 免费在线观看影片大全网站| 久久精品91无色码中文字幕| 99国产精品99久久久久| 国产欧美日韩一区二区三| 日本一区二区免费在线视频| 午夜两性在线视频| 久久99一区二区三区| 正在播放国产对白刺激| 亚洲国产毛片av蜜桃av| 三级毛片av免费| 国产精品98久久久久久宅男小说| 久久中文字幕人妻熟女| 日日夜夜操网爽| 美女午夜性视频免费| 99在线视频只有这里精品首页| 又黄又粗又硬又大视频| 国产一区二区在线av高清观看| 欧美一级毛片孕妇| 亚洲伊人色综图| 亚洲一区二区三区欧美精品| 两性午夜刺激爽爽歪歪视频在线观看 | 琪琪午夜伦伦电影理论片6080| av网站在线播放免费| 黄色 视频免费看| 精品免费久久久久久久清纯| 久久久久久久久中文| 国产精品久久久人人做人人爽| 久久久精品国产亚洲av高清涩受| 国产99白浆流出| 午夜亚洲福利在线播放| 真人做人爱边吃奶动态| 久久精品国产亚洲av香蕉五月| 国产成人一区二区三区免费视频网站| 亚洲成人免费电影在线观看| 91av网站免费观看| 国产1区2区3区精品| 日韩精品免费视频一区二区三区| 欧美黄色淫秽网站| 黄色 视频免费看| 人成视频在线观看免费观看| 欧美乱色亚洲激情| 亚洲av日韩精品久久久久久密| 国产精品永久免费网站| 亚洲av成人不卡在线观看播放网| 亚洲一区二区三区欧美精品| 国产精品国产高清国产av| 嫩草影视91久久| 99国产精品一区二区蜜桃av| 国产伦一二天堂av在线观看| 日韩三级视频一区二区三区| 欧美久久黑人一区二区| 久久国产精品男人的天堂亚洲| 99在线视频只有这里精品首页| 亚洲av五月六月丁香网| 一夜夜www| 国产99久久九九免费精品| 亚洲精品久久成人aⅴ小说| 热99re8久久精品国产| 成年版毛片免费区| 亚洲av第一区精品v没综合| 人妻丰满熟妇av一区二区三区| 美女午夜性视频免费| 在线观看免费午夜福利视频| 国产无遮挡羞羞视频在线观看| 亚洲av熟女| 亚洲中文日韩欧美视频| 亚洲成av片中文字幕在线观看| 成熟少妇高潮喷水视频| 精品久久久久久,| 99精品久久久久人妻精品| 久热爱精品视频在线9| 91av网站免费观看| netflix在线观看网站| 亚洲成av片中文字幕在线观看| av网站在线播放免费| 99久久人妻综合| 久久精品亚洲av国产电影网| 精品少妇一区二区三区视频日本电影| av网站免费在线观看视频| 搡老熟女国产l中国老女人| 岛国视频午夜一区免费看| 国产亚洲欧美精品永久| 国产精品久久久av美女十八| 亚洲欧美激情综合另类| 天天躁夜夜躁狠狠躁躁| 午夜精品久久久久久毛片777| 国产精品99久久99久久久不卡| 国产精品av久久久久免费| 日日夜夜操网爽| 久久精品国产清高在天天线| 欧美一级毛片孕妇| 在线视频色国产色| 热99re8久久精品国产| 久久精品91蜜桃| 啪啪无遮挡十八禁网站| 又黄又爽又免费观看的视频| 中文字幕人妻丝袜制服| 精品久久久精品久久久| 黑丝袜美女国产一区| 久久人人爽av亚洲精品天堂| 1024香蕉在线观看| 伦理电影免费视频| 日韩欧美一区二区三区在线观看| 多毛熟女@视频| 亚洲国产精品999在线| 99香蕉大伊视频| 日韩中文字幕欧美一区二区| www.www免费av| 国产精品国产高清国产av| 俄罗斯特黄特色一大片| 国产熟女xx| 国产亚洲欧美在线一区二区| 一级毛片精品| 亚洲av美国av| 两个人看的免费小视频| 在线免费观看的www视频| 国产亚洲欧美精品永久| 午夜福利欧美成人| 精品欧美一区二区三区在线| 天天躁狠狠躁夜夜躁狠狠躁| 亚洲成国产人片在线观看| 黑人巨大精品欧美一区二区蜜桃| 视频区图区小说| 国产无遮挡羞羞视频在线观看| 1024视频免费在线观看| 欧美日韩av久久| 久久人妻熟女aⅴ| 91在线观看av| 99国产综合亚洲精品| 中文字幕高清在线视频| 露出奶头的视频| 欧美最黄视频在线播放免费 | 老司机午夜福利在线观看视频| 国产深夜福利视频在线观看| 国产成人一区二区三区免费视频网站| 日韩精品青青久久久久久| 波多野结衣一区麻豆| 亚洲欧美激情在线| 黄片大片在线免费观看| 一区二区三区激情视频| 超色免费av| 麻豆成人av在线观看| 国产精品美女特级片免费视频播放器 | 老汉色∧v一级毛片| 又大又爽又粗| av免费在线观看网站| 99国产精品一区二区蜜桃av| 亚洲色图av天堂| 午夜亚洲福利在线播放| 亚洲va日本ⅴa欧美va伊人久久| 国产精品av久久久久免费| 在线国产一区二区在线| 精品久久久久久久毛片微露脸| 日日爽夜夜爽网站| 成人亚洲精品一区在线观看| 精品国产国语对白av| 久久久国产精品麻豆| 国产99久久九九免费精品| 日本欧美视频一区| 18禁黄网站禁片午夜丰满| 欧美不卡视频在线免费观看 | 成年版毛片免费区| 中亚洲国语对白在线视频| 色老头精品视频在线观看| 欧美日韩乱码在线| 久久久久国产精品人妻aⅴ院| 午夜亚洲福利在线播放| 色婷婷久久久亚洲欧美| 老鸭窝网址在线观看| 欧美日韩av久久| av网站免费在线观看视频| 激情在线观看视频在线高清| 色精品久久人妻99蜜桃| 一边摸一边做爽爽视频免费| 成年人黄色毛片网站| 国产一区二区三区视频了| 久久九九热精品免费| 亚洲欧美激情在线| 桃红色精品国产亚洲av| 国产成人欧美| 日韩有码中文字幕| 999久久久国产精品视频| 午夜精品久久久久久毛片777| 亚洲成人免费电影在线观看| 后天国语完整版免费观看| 久久婷婷成人综合色麻豆| 一区在线观看完整版| 每晚都被弄得嗷嗷叫到高潮| 制服诱惑二区| 国产精品综合久久久久久久免费 | 桃色一区二区三区在线观看| 一级a爱片免费观看的视频| 91麻豆av在线| 一区二区日韩欧美中文字幕| 最近最新中文字幕大全电影3 | 久久精品91蜜桃| 成年人黄色毛片网站| 麻豆久久精品国产亚洲av | 国产成人系列免费观看| 欧美日韩亚洲国产一区二区在线观看| 国产精品久久久人人做人人爽| 伦理电影免费视频| 中文字幕人妻丝袜一区二区| 免费一级毛片在线播放高清视频 | 人人妻人人澡人人看| 亚洲av成人不卡在线观看播放网| 女人被狂操c到高潮| 国产精品久久久av美女十八| √禁漫天堂资源中文www| 久久精品aⅴ一区二区三区四区| 亚洲国产中文字幕在线视频| 亚洲第一青青草原| 久久青草综合色| 亚洲中文av在线| 在线国产一区二区在线| 免费女性裸体啪啪无遮挡网站| 国产精品乱码一区二三区的特点 | 少妇的丰满在线观看| 一级a爱片免费观看的视频| 人妻久久中文字幕网| 国产高清激情床上av| 国产高清videossex| 欧美黄色片欧美黄色片| 脱女人内裤的视频| 亚洲性夜色夜夜综合| 欧美 亚洲 国产 日韩一| 69av精品久久久久久| 亚洲欧美精品综合一区二区三区| 成人手机av| 午夜视频精品福利| 最新在线观看一区二区三区| 在线观看一区二区三区| 天堂影院成人在线观看| 国产一区二区三区综合在线观看| 精品国产国语对白av| 性色av乱码一区二区三区2| 手机成人av网站| www.www免费av| 999精品在线视频| 人人妻人人澡人人看| 国产野战对白在线观看| 亚洲avbb在线观看| 亚洲av美国av| 男男h啪啪无遮挡| 精品国产乱码久久久久久男人| 老司机亚洲免费影院| 亚洲黑人精品在线| 精品国产超薄肉色丝袜足j| 一区在线观看完整版| 99久久人妻综合| 老司机午夜福利在线观看视频| 日韩欧美一区视频在线观看| 精品国产乱子伦一区二区三区| 欧美日韩乱码在线| 欧美日韩瑟瑟在线播放| 日韩高清综合在线| 精品电影一区二区在线| 亚洲免费av在线视频| 丁香欧美五月| 搡老乐熟女国产| 欧美日本中文国产一区发布| 夜夜躁狠狠躁天天躁| 国产成人精品在线电影| 又黄又爽又免费观看的视频| 国产精品成人在线| 老熟妇仑乱视频hdxx| 欧美丝袜亚洲另类 | 国产精品九九99| av电影中文网址| av网站免费在线观看视频| 久久精品91蜜桃| 亚洲一卡2卡3卡4卡5卡精品中文| 村上凉子中文字幕在线| 伦理电影免费视频| 女性生殖器流出的白浆| 免费在线观看视频国产中文字幕亚洲| 人成视频在线观看免费观看| 老汉色∧v一级毛片| 午夜老司机福利片| 男人舔女人下体高潮全视频| 高清在线国产一区| 久久中文看片网| 在线观看免费高清a一片| 久久人妻熟女aⅴ| 亚洲五月色婷婷综合| 欧美精品一区二区免费开放| 国产无遮挡羞羞视频在线观看| 视频区图区小说| 国产男靠女视频免费网站| av片东京热男人的天堂| 国产精品久久久人人做人人爽| av国产精品久久久久影院| 一个人免费在线观看的高清视频| 曰老女人黄片| 久久香蕉激情| 一级a爱片免费观看的视频| 久久久国产一区二区| 国产精品免费一区二区三区在线| 日韩大尺度精品在线看网址 | 免费在线观看黄色视频的| 欧美av亚洲av综合av国产av| 级片在线观看| 国产精品日韩av在线免费观看 | 99re在线观看精品视频| 两个人看的免费小视频| 成人免费观看视频高清| 亚洲国产精品合色在线| 两性夫妻黄色片| 亚洲精品一区av在线观看| 精品午夜福利视频在线观看一区| 男女做爰动态图高潮gif福利片 | 亚洲专区字幕在线| 国产黄色免费在线视频| 伊人久久大香线蕉亚洲五| 精品午夜福利视频在线观看一区| 99热只有精品国产| 午夜91福利影院| 一进一出抽搐gif免费好疼 | 他把我摸到了高潮在线观看| 日日摸夜夜添夜夜添小说| 男女之事视频高清在线观看| 亚洲精品在线美女| e午夜精品久久久久久久| 国产蜜桃级精品一区二区三区| 夜夜躁狠狠躁天天躁| 日韩欧美免费精品| 在线观看免费视频日本深夜| 三级毛片av免费| 男人舔女人下体高潮全视频| 亚洲精品av麻豆狂野| 日本a在线网址| 999久久久精品免费观看国产| 在线观看免费午夜福利视频| 精品一品国产午夜福利视频| 国产精品电影一区二区三区| 99国产精品一区二区蜜桃av| 亚洲国产欧美日韩在线播放| 在线av久久热| 男人舔女人下体高潮全视频| 欧美最黄视频在线播放免费 | 在线观看免费高清a一片| 久久99一区二区三区| 老司机靠b影院| 女人被狂操c到高潮| 久久亚洲真实| 精品电影一区二区在线| √禁漫天堂资源中文www| 黄色视频不卡| 美女国产高潮福利片在线看| 男人操女人黄网站| 一a级毛片在线观看| 一级毛片女人18水好多| 99国产精品一区二区蜜桃av| 成人av一区二区三区在线看| 老司机福利观看| 一二三四社区在线视频社区8| 不卡av一区二区三区| 两性夫妻黄色片| 在线观看一区二区三区激情| 50天的宝宝边吃奶边哭怎么回事| 日日干狠狠操夜夜爽| 亚洲一区二区三区色噜噜 | 黑人巨大精品欧美一区二区蜜桃| 日本三级黄在线观看| 91成年电影在线观看| av免费在线观看网站| 极品人妻少妇av视频| 国产精品国产av在线观看| 午夜91福利影院| 日韩大码丰满熟妇| 久久久国产欧美日韩av| 成人18禁在线播放| 人人妻人人爽人人添夜夜欢视频| 可以在线观看毛片的网站| 国产成人精品在线电影| 午夜福利影视在线免费观看| 亚洲男人天堂网一区| 亚洲中文av在线| 男男h啪啪无遮挡| 国产一区二区三区在线臀色熟女 | 精品人妻在线不人妻| 久久热在线av| 亚洲精品美女久久av网站| 国产成人免费无遮挡视频| 午夜福利免费观看在线| 午夜福利影视在线免费观看| 日本免费a在线| 欧美不卡视频在线免费观看 | 国产极品粉嫩免费观看在线| 免费看a级黄色片| 中文字幕色久视频| 国产主播在线观看一区二区| 国产高清国产精品国产三级| 精品乱码久久久久久99久播| 男男h啪啪无遮挡| 精品国产乱码久久久久久男人| 激情在线观看视频在线高清| tocl精华| avwww免费| 亚洲 欧美一区二区三区| 色精品久久人妻99蜜桃| 国产av在哪里看| 久久久久久久久免费视频了| 欧美成人性av电影在线观看| 日韩免费av在线播放| 国产精品永久免费网站| 99精国产麻豆久久婷婷| 一二三四在线观看免费中文在| 性少妇av在线| 国产成年人精品一区二区 | 久久性视频一级片| 成人三级黄色视频| 一级毛片精品| 中国美女看黄片| 久久久国产欧美日韩av| 怎么达到女性高潮| av网站免费在线观看视频| 99久久人妻综合| 黄色怎么调成土黄色| 国产成人精品久久二区二区91| 波多野结衣高清无吗| 国产高清videossex| 在线看a的网站| 午夜精品国产一区二区电影|