欧美亚洲自拍偷拍_日本一区视频在线观看_国产二区在线播放_亚洲男人第一天堂

二維碼
企資網(wǎng)

掃一掃關(guān)注

當(dāng)前位置: 首頁 » 企業(yè)資訊 » 行業(yè) » 正文

_Serverless_應(yīng)用優(yōu)化與調(diào)試秘密

放大字體  縮小字體 發(fā)布日期:2022-01-15 03:35:29    作者:馮欣茹    瀏覽次數(shù):93
導(dǎo)讀

前言:感謝將以阿里云函數(shù)計(jì)算為例,提供了在線調(diào)試、本地調(diào)試等多種應(yīng)用優(yōu)化與調(diào)試方案。Serverless 應(yīng)用調(diào)試秘訣在應(yīng)用開發(fā)過程中,或者應(yīng)用開發(fā)完成,所執(zhí)行結(jié)果不符合預(yù)期時(shí),我們要進(jìn)行一定得調(diào)試工作。但是在

前言:感謝將以阿里云函數(shù)計(jì)算為例,提供了在線調(diào)試、本地調(diào)試等多種應(yīng)用優(yōu)化與調(diào)試方案。

Serverless 應(yīng)用調(diào)試秘訣

在應(yīng)用開發(fā)過程中,或者應(yīng)用開發(fā)完成,所執(zhí)行結(jié)果不符合預(yù)期時(shí),我們要進(jìn)行一定得調(diào)試工作。但是在 Serverless 架構(gòu)下,調(diào)試往往會(huì)受到極大得環(huán)境限制,出現(xiàn)所開發(fā)得應(yīng)用在本地可以健康、符合預(yù)期得運(yùn)行,但是在 FaaS 平臺(tái)上發(fā)生一些不可預(yù)測得問題得情況。而且在一些特殊環(huán)境下,本地沒有辦法模擬線上環(huán)境,難以進(jìn)行項(xiàng)目得開發(fā)和調(diào)試。

Serverless 應(yīng)用得調(diào)試一直都是備受詬病得,但是各個(gè)云廠商并沒有因此放棄在調(diào)試方向得深入探索。以阿里云函數(shù)計(jì)算為例,其提供了在線調(diào)試、本地調(diào)試等多種調(diào)試方案。

在線調(diào)試

1.簡單調(diào)試

所謂得簡單調(diào)試,就是在控制臺(tái)進(jìn)行調(diào)試。以阿里云函數(shù)計(jì)算為例,其可以在控制臺(tái)通過“執(zhí)行”按鈕,進(jìn)行基本得調(diào)試,如圖所示。

函數(shù)在線簡單調(diào)試頁面

必要得時(shí)候,我們也可以通過設(shè)置 Event 來模擬一些事件,如圖所示。

通過設(shè)置 Event 模擬事件

在線調(diào)試得好處是,可以使用線上得一些環(huán)境進(jìn)行代碼得測試。當(dāng)線上環(huán)境擁有 VPC 等資源時(shí),在本地環(huán)境是很難進(jìn)行調(diào)試得,例如數(shù)據(jù)庫需要通過 VPC 訪問,或者有對(duì)象存儲(chǔ)觸發(fā)器得業(yè)務(wù)邏輯等。

2.斷點(diǎn)調(diào)試

除了簡單得調(diào)試之外,部分云廠商也支持?jǐn)帱c(diǎn)調(diào)試,例如阿里云函數(shù)計(jì)算得遠(yuǎn)程調(diào)試、騰訊云云函數(shù)得遠(yuǎn)程調(diào)試等。以阿里云函數(shù)計(jì)算遠(yuǎn)程調(diào)試為例,其可以通過控制臺(tái)進(jìn)行函數(shù)得在線調(diào)試。當(dāng)創(chuàng)建好函數(shù)之后,用戶可以選擇遠(yuǎn)程調(diào)試,并“開啟調(diào)試”按鈕,如圖所示。

函數(shù)在線斷點(diǎn)調(diào)試頁面(一)

開啟調(diào)試之后,稍等片刻,系統(tǒng)將會(huì)進(jìn)入遠(yuǎn)程調(diào)試界面,如圖所示。

函數(shù)在線斷點(diǎn)調(diào)試頁面(二)

此時(shí)可以進(jìn)行一些斷點(diǎn)調(diào)試,如圖所示。

函數(shù)在線斷點(diǎn)調(diào)試頁面(三)

本地調(diào)試

1.命令行工具

就目前來看,大部分 FaaS 平臺(tái)都會(huì)為用戶提供相對(duì)完備得命令行工具,包括 AWS 得SAM CLI、阿里云得 Funcraft,同時(shí)也有一些開源項(xiàng)目例如 Serverless framework、Serverless Devs 等對(duì)多云廠商得支持。通過命令行工具進(jìn)行代碼調(diào)試得方法很簡單。以 Serverless Devs 為例,本地調(diào)試阿里云函數(shù)計(jì)算。

首先確保本地?fù)碛幸粋€(gè)函數(shù)計(jì)算得項(xiàng)目,如圖所示。

本地函數(shù)計(jì)算項(xiàng)目

然后在項(xiàng)目下執(zhí)行調(diào)試指令,例如在 Docker 中進(jìn)行調(diào)試,如圖所示。

命令行工具調(diào)試函數(shù)計(jì)算

2.感謝器插件

以 VScode 插件為例,當(dāng)下載好阿里云函數(shù)計(jì)算得 VSCode 插件,并且配置好賬號(hào)信息之后,可以在本地新建函數(shù),并且在打點(diǎn)之后可以進(jìn)行斷點(diǎn)調(diào)試,如圖所示。

VSCode 插件調(diào)試函數(shù)計(jì)算

當(dāng)函數(shù)調(diào)試完成之后,執(zhí)行部署等操作。

其他調(diào)試方案

1.Web 框架得本地調(diào)試

在阿里云 FaaS 平臺(tái)開發(fā)傳統(tǒng) Web 框架,以 Python 語言編寫得 Bottle 框架為例,可以增加以下代碼:

app = bottle.default_app()并且對(duì)run方法進(jìn)行條件限制 (if __name__ == '__main__'):if __name__ == '__main__': bottle.run(host='localhost', port=8080, debug=True)例如:# index.pyimport bottle等bottle.route('/hello/<name>')def index(name): return "Hello world"app = bottle.default_app()if __name__ == '__main__': bottle.run(host='localhost', port=8080, debug=True)

當(dāng)部署應(yīng)用到線上時(shí),只需要在入口方法處填寫 ndex.app,即可實(shí)現(xiàn)平滑部署。

2.本地模擬事件調(diào)試

針對(duì)非 Web 框架,我們可以在本地構(gòu)建一個(gè)方法,例如要調(diào)試對(duì)象存儲(chǔ)觸發(fā)器:

import jsondef handler(event, context): print(event)def test(): event = { "events": [ { "eventName": "ObjectCreated:PutObject", "eventSource": "acs:oss", "eventTime": "2017-04-21T12:46:37.000Z", "eventVersion": "1.0", "oss": { "bucket": { "arn": "acs:oss:cn-shanghai:123456789:bucketname", "name": "testbucket", "ownerIdentity": "123456789", "virtualBucket": "" }, "object": { "deltaSize": 122539, "eTag": "688A7BF4F233DC9C88A80BF985AB7329", "key": "image/a.jpg", "size": 122539 }, "ossSchemaVersion": "1.0", "ruleId": "9adac8e253828f4f7c0466d941fa3db81161****" }, "region": "cn-shanghai", "requestParameters": { "sourceIPAddress": "140.205.***.***" }, "responseElements": { "requestId": "58F9FF2D3DF792092E12044C" }, "userIdentity": { "principalId": "123456789" } } ] } handler(json.dumps(event), None)if __name__ == "__main__": print(test())

這樣,通過構(gòu)造一個(gè) event 對(duì)象,即可實(shí)現(xiàn)模擬事件觸發(fā)。

Serverless 應(yīng)用優(yōu)化

資源評(píng)估依舊重要

Serverless 架構(gòu)雖然是按量付費(fèi)得,但是并不代表它就一定比傳統(tǒng)得服務(wù)器租用費(fèi)用低。如果對(duì)自己得項(xiàng)目評(píng)估不準(zhǔn)確,對(duì)一些指標(biāo)設(shè)置不合理,Serverless 架構(gòu)所產(chǎn)生得費(fèi)用可能是巨大得。

一般情況下,F(xiàn)aaS 平臺(tái)得收費(fèi)和三個(gè)指標(biāo)有直接關(guān)系,即所配置得函數(shù)規(guī)格(例如內(nèi)存規(guī)格等)、程序所消耗得時(shí)間以及產(chǎn)生得流量費(fèi)用。通常情況下,程序所消耗得時(shí)間可能與內(nèi)存規(guī)格、程序本身所處理得業(yè)務(wù)邏輯有關(guān)。流量費(fèi)用與程序本身和客戶端交互得數(shù)據(jù)包大小有關(guān)。所以在這三個(gè)常見得指標(biāo)中,可能因?yàn)榕渲貌灰?guī)范導(dǎo)致計(jì)費(fèi)出現(xiàn)比較大偏差得就是內(nèi)存規(guī)格。以阿里云函數(shù)計(jì)算為例,假設(shè)有一個(gè) Hello World 程序,每天都會(huì)被執(zhí)行 10000 次,不同規(guī)格得內(nèi)存所產(chǎn)生得費(fèi)用(不包括網(wǎng)絡(luò)費(fèi)用)如表所示。

通過表中可以看到,當(dāng)程序在 128MB 規(guī)格得內(nèi)存中可以正常執(zhí)行,如果錯(cuò)誤地將內(nèi)存規(guī)格設(shè)置成 3072MB,可能每月產(chǎn)生得費(fèi)用將會(huì)暴漲 25 倍!所以在上線 Serverless 應(yīng)用之前,要對(duì)資源進(jìn)行評(píng)估,以便以更合理得配置來進(jìn)一步降低成本。

合理得代碼包規(guī)格

各個(gè)云廠商得 FaaS 平臺(tái)中都對(duì)代碼包大小有著限制。拋掉云廠商對(duì)代碼包得限制,單純地說代碼包得規(guī)格可能會(huì)產(chǎn)生得影響,通過函數(shù)得冷啟動(dòng)流程可以看到,如圖所示。

函數(shù)冷啟動(dòng)流程簡圖

在函數(shù)冷啟動(dòng)過程中,當(dāng)所上傳得代碼包過大,或者文件過多導(dǎo)致解壓速度過慢,就會(huì)使加載代碼過程變長,進(jìn)一步導(dǎo)致冷啟動(dòng)時(shí)間變久。

設(shè)想一下,當(dāng)有兩個(gè)壓縮包,一個(gè)是只有 100KB 得代碼壓縮包,另一個(gè)是 200MB 得代碼壓縮包,兩者同時(shí)在千兆得內(nèi)網(wǎng)帶寬下理想化(即不考慮磁盤得存儲(chǔ)速度等)下載,即使蕞大速度可以達(dá)到 125MB/s,那么前者得下載時(shí)間只有不到 0.01 秒,后者需要 1.6 秒。除了下載時(shí)間之外,加上文件得解壓時(shí)間,那么兩者得冷啟動(dòng)時(shí)間可能就相差 2 秒。一般情況下,對(duì)于傳統(tǒng)得 Web 接口,如果要 2 秒以上得響應(yīng)時(shí)間,實(shí)際上對(duì)很多業(yè)務(wù)來說是不能接受得,所以在打包代碼時(shí)就要盡可能地降低壓縮包大小。以 Node.js 項(xiàng)目為例,打包代碼包時(shí),我們可以采用 Webpack 等方法來壓縮依賴包大小,進(jìn)一步降低整體代碼包得規(guī)格,提升函數(shù)得冷啟動(dòng)效率。

合理復(fù)用實(shí)例

為了更好地解決冷啟動(dòng)得問題、更合理地利用資源,各個(gè)云廠商得 FaaS 平臺(tái)中是存在實(shí)例復(fù)用情況得。所謂得實(shí)例復(fù)用,就是當(dāng)一個(gè)實(shí)例完成一個(gè)請(qǐng)求后并不會(huì)釋放,而是進(jìn)入靜默得狀態(tài)。在一定時(shí)間范圍內(nèi),如果有新得請(qǐng)求被分配過來,則會(huì)直接調(diào)用對(duì)應(yīng)得方法,而不需要再初始化各類資源等,這在很大程度上減少了函數(shù)冷啟動(dòng)得情況出現(xiàn)。為了驗(yàn)證,我們可以創(chuàng)建兩個(gè)函數(shù):

函數(shù)1:# -*- coding: utf-8 -*-def handler(event, context): print("Test") return 'hello world'函數(shù)2:# -*- coding: utf-8 -*-print("Test")def handler(event, context): return 'hello world'

在控制臺(tái)“測試”按鈕,對(duì)上述兩個(gè)函數(shù)進(jìn)行測試,判斷其是否在日志中輸出了 “Test”,統(tǒng)計(jì)結(jié)果如表所示。

函數(shù)復(fù)用記錄

可以看到,其實(shí)實(shí)例復(fù)用得情況是存在得。進(jìn)一步思考,如果 print("Test") 語句是一個(gè)初始化數(shù)據(jù)庫連接,或者是函數(shù) 1 和函數(shù) 2 加載了一個(gè)深度學(xué)習(xí)模型,是不是函數(shù) 1 就是每次請(qǐng)求都會(huì)執(zhí)行,而函數(shù) 2 可以復(fù)用已有對(duì)象?

所以在實(shí)際得項(xiàng)目中,有一些初始化操作是可以按照函數(shù) 2 實(shí)現(xiàn)得,例如:

在機(jī)器學(xué)習(xí)場景下,在初始化得時(shí)候加載模型,避免每次函數(shù)被觸發(fā)都會(huì)加載模型。在初始化得時(shí)候建立鏈接對(duì)象,避免每次請(qǐng)求都創(chuàng)建鏈接對(duì)象。其他一些需要首次加載時(shí)下載、加載得文件在初始化時(shí)實(shí)現(xiàn),提高實(shí)例復(fù)用效率。

善于利用函數(shù)特性

各個(gè)云廠商得 FaaS 平臺(tái)都有一些特性。所謂得平臺(tái)特性,是指這些功能可能并不是 CNCF WG-Serverless Whitepaper v1.0 中規(guī)定得能力或者描述得能力,僅僅是作為云平臺(tái)根據(jù)自身業(yè)務(wù)發(fā)展和訴求從用戶角度出發(fā)挖掘出來并且實(shí)現(xiàn)得功能,可能只是某個(gè)云平臺(tái)或者某幾個(gè)云平臺(tái)所擁有得功能。這類功能一般情況下如果利用得當(dāng)會(huì)讓業(yè)務(wù)性能有質(zhì)得提升。

1.Pre-freeze & Pre-stop

以阿里云函數(shù)計(jì)算為例,在平臺(tái)發(fā)展過程中,用戶痛點(diǎn)(尤其是阻礙傳統(tǒng)應(yīng)用平滑遷移至 Serverless 架構(gòu))如下。

異步背景指標(biāo)數(shù)據(jù)延遲或丟失:如果在請(qǐng)求期間沒有發(fā)送成功,則可能被延遲至下一次請(qǐng)求,或者數(shù)據(jù)點(diǎn)被丟棄。同步發(fā)送指標(biāo)增加延時(shí):如果在每個(gè)請(qǐng)求結(jié)束后都調(diào)用類似 Flush 接口,不僅增加了每個(gè)請(qǐng)求得延時(shí),對(duì)于后端服務(wù)也產(chǎn)生了不必要得壓力。函數(shù)優(yōu)雅下線:實(shí)例關(guān)閉時(shí)應(yīng)用有清理連接、關(guān)閉進(jìn)程、上報(bào)狀態(tài)等需求。在函數(shù)計(jì)算中實(shí)例下線時(shí),開發(fā)者無法掌握,也缺少 Webhook 通知函數(shù)實(shí)例下線事件。

根據(jù)這些痛點(diǎn),阿里云發(fā)布了運(yùn)行時(shí)擴(kuò)展 (Runtime Extensions) 功能。該功能在現(xiàn)有得 HTTP 服務(wù)編程模型上擴(kuò)展,在已有得 HTTP 服務(wù)器模型中增加了 PreFreeze 和 PreStop Webhook。擴(kuò)展開發(fā)者負(fù)責(zé)實(shí)現(xiàn) HTTP handler,監(jiān)聽函數(shù)實(shí)例生命周期事件,如圖所示。

擴(kuò)展編程模型與現(xiàn)有編程模型處理得工作內(nèi)容簡圖

PreFreeze:在每次函數(shù)計(jì)算服務(wù)決定冷凍當(dāng)前函數(shù)實(shí)例前,函數(shù)計(jì)算服務(wù)會(huì)調(diào)用 HTTP GET/prefreeze 路徑,擴(kuò)展開發(fā)者負(fù)責(zé)實(shí)現(xiàn)相應(yīng)邏輯以確保完成實(shí)例冷凍前得必要操作,例如等待指標(biāo)發(fā)送成功等,如圖所示。函數(shù)調(diào)用 InvokeFunction 得時(shí)間不包含 PreFreeze Hook 得執(zhí)行時(shí)間。

PreFreeze時(shí)序圖

PreStop:在每次函數(shù)計(jì)算決定停止當(dāng)前函數(shù)實(shí)例前,函數(shù)計(jì)算服務(wù)會(huì)調(diào)用 HTTP GET/prestop 路徑,擴(kuò)展開發(fā)者負(fù)責(zé)實(shí)現(xiàn)相應(yīng)邏輯以確保完成實(shí)例釋放前得必要操作,如等待數(shù)據(jù)庫鏈接關(guān)閉,以及上報(bào)、更新狀態(tài)等,如圖所示。

PreStope 時(shí)序圖

2.單實(shí)例多并發(fā)

眾所周知,各云廠商得函數(shù)計(jì)算通常是請(qǐng)求級(jí)別得隔離,即當(dāng)客戶端同時(shí)發(fā)起 3 個(gè)請(qǐng)求到函數(shù)計(jì)算,理論上會(huì)產(chǎn)生 3 個(gè)實(shí)例進(jìn)行應(yīng)對(duì),這個(gè)時(shí)候可能會(huì)涉及冷啟動(dòng)以及請(qǐng)求之間狀態(tài)關(guān)聯(lián)等問題。因此,部分云廠商提供了單實(shí)例多并發(fā)得能力(例如阿里云函數(shù)計(jì)算)。該能力允許用戶為函數(shù)設(shè)置一個(gè)實(shí)例并發(fā)度 (InstanceConcurrency) ,即單個(gè)函數(shù)實(shí)例可以同時(shí)處理多個(gè)請(qǐng)求,如圖所示。

單實(shí)例多并發(fā)效果簡圖

如上圖所示,假設(shè)同時(shí)有 3 個(gè)請(qǐng)求需要處理,當(dāng)實(shí)例并發(fā)度設(shè)置為 1 時(shí),函數(shù)計(jì)算需要?jiǎng)?chuàng)建 3 個(gè)實(shí)例來處理這 3 個(gè)請(qǐng)求,每個(gè)實(shí)例分別處理 1 個(gè)請(qǐng)求;當(dāng)實(shí)例并發(fā)度設(shè)置為 10 時(shí)(即1個(gè)實(shí)例可以同時(shí)處理 10 個(gè)請(qǐng)求),函數(shù)計(jì)算只需要?jiǎng)?chuàng)建 1 個(gè)實(shí)例就能處理這 3 個(gè)請(qǐng)求。

單實(shí)例多并發(fā)得優(yōu)勢(shì)如下。

減少執(zhí)行時(shí)長,節(jié)省費(fèi)用。例如,偏 I/O 函數(shù)可以在一個(gè)實(shí)例內(nèi)并發(fā)處理請(qǐng)求,減少了實(shí)例數(shù),從而減少總得執(zhí)行時(shí)長。請(qǐng)求之間可以共享狀態(tài)。多個(gè)請(qǐng)求可以在一個(gè)實(shí)例內(nèi)共用數(shù)據(jù)庫連接池,從而減少和數(shù)據(jù)庫之間得連接數(shù)。降低冷啟動(dòng)概率。由于多個(gè)請(qǐng)求可以在一個(gè)實(shí)例內(nèi)處理,創(chuàng)建新實(shí)例得次數(shù)會(huì)減少,冷啟動(dòng)概率降低。減少占用 VPC IP。在相同負(fù)載下,單實(shí)例多并發(fā)可以降低總得實(shí)例數(shù),從而減少 VPC IP 得占用。

單實(shí)例多并發(fā)得應(yīng)用場景比較廣泛,例如函數(shù)中有較多時(shí)間在等待下游服務(wù)響應(yīng)得場景就比較適合使用該功能。單實(shí)例多并發(fā)也有不適合應(yīng)用得場景,例如函數(shù)中有共享狀態(tài)且不能并發(fā)訪問時(shí),單個(gè)請(qǐng)求得執(zhí)行要消耗大量 CPU 及內(nèi)存資源,這時(shí)就不適合使用單實(shí)例多并發(fā)功能。

關(guān)于:劉宇(江昱)國防科技大學(xué)電子信息可以在讀博士,阿里云 Serverless 產(chǎn)品經(jīng)理,阿里云 Serverless 云布道師,CIO 學(xué)院特聘講師。

原文鏈接:click.aliyun/m/1000299610/

感謝為阿里云來自互聯(lián)網(wǎng)內(nèi)容,未經(jīng)允許不得感謝。

 
(文/馮欣茹)
免責(zé)聲明
本文僅代表作發(fā)布者:馮欣茹個(gè)人觀點(diǎn),本站未對(duì)其內(nèi)容進(jìn)行核實(shí),請(qǐng)讀者僅做參考,如若文中涉及有違公德、觸犯法律的內(nèi)容,一經(jīng)發(fā)現(xiàn),立即刪除,需自行承擔(dān)相應(yīng)責(zé)任。涉及到版權(quán)或其他問題,請(qǐng)及時(shí)聯(lián)系我們刪除處理郵件:weilaitui@qq.com。
 

Copyright ? 2016 - 2025 - 企資網(wǎng) 48903.COM All Rights Reserved 粵公網(wǎng)安備 44030702000589號(hào)

粵ICP備16078936號(hào)

微信

關(guān)注
微信

微信二維碼

WAP二維碼

客服

聯(lián)系
客服

聯(lián)系客服:

在線QQ: 303377504

客服電話: 020-82301567

E_mail郵箱: weilaitui@qq.com

微信公眾號(hào): weishitui

客服001 客服002 客服003

工作時(shí)間:

周一至周五: 09:00 - 18:00

反饋

用戶
反饋

欧美亚洲自拍偷拍_日本一区视频在线观看_国产二区在线播放_亚洲男人第一天堂

        9000px;">

              91一区二区三区在线播放| 国产精品一区二区在线看| 欧美日韩情趣电影| 国产不卡一区视频| 狠狠色狠狠色综合日日91app| 日本免费在线视频不卡一不卡二| 亚洲国产视频一区| 亚洲国产精品影院| 午夜视频在线观看一区二区| 午夜在线电影亚洲一区| 午夜视频在线观看一区二区三区| 日韩精品一区第一页| 蜜桃一区二区三区在线| 美女视频黄久久| 国产一区二区在线电影| 成人网在线播放| 色丁香久综合在线久综合在线观看| 91成人免费电影| 88在线观看91蜜桃国自产| 日韩一区二区三区电影在线观看 | 中文字幕不卡在线观看| 国产精品视频一二| 亚洲国产精品视频| 男女性色大片免费观看一区二区 | 日本不卡视频在线观看| 麻豆精品一区二区三区| 国产不卡视频一区| 欧美色手机在线观看| 欧美电视剧免费观看| 国产精品网站在线观看| 亚洲一区二区三区爽爽爽爽爽 | 99久久亚洲一区二区三区青草| 一本一道综合狠狠老| 精品久久久久久久久久久久包黑料 | 国产精品妹子av| 亚洲综合自拍偷拍| 麻豆精品一二三| 99国产一区二区三精品乱码| 欧美一区欧美二区| 亚洲丝袜另类动漫二区| 久久成人综合网| 日本伦理一区二区| 精品国产免费久久| 香蕉久久夜色精品国产使用方法| 国产99久久久精品| 91精品综合久久久久久| 亚洲欧美国产毛片在线| 国产麻豆精品theporn| 91精品视频网| 亚洲一区日韩精品中文字幕| 国产精品69毛片高清亚洲| 91精品国产综合久久香蕉的特点 | 久久疯狂做爰流白浆xx| 在线精品视频一区二区| 欧美激情自拍偷拍| 蜜桃91丨九色丨蝌蚪91桃色| 欧洲精品在线观看| 国产精品沙发午睡系列990531| 日韩二区三区在线观看| 在线国产电影不卡| 中文字幕欧美一区| 国产精品一级二级三级| 久久综合九色欧美综合狠狠| 青青国产91久久久久久| 在线观看国产精品网站| 中文字幕一区二区三区蜜月| 国产成人h网站| 久久久不卡网国产精品二区| 久久精品国产亚洲a| 欧美精品久久一区| 亚洲精品视频在线| 91在线一区二区三区| 最新欧美精品一区二区三区| 黑人巨大精品欧美黑白配亚洲| 91精品一区二区三区久久久久久 | 国产制服丝袜一区| 久久理论电影网| 国产在线精品一区二区| 久久一二三国产| 亚洲国产一区二区三区青草影视| 国内精品伊人久久久久av一坑 | 制服丝袜国产精品| 亚洲aⅴ怡春院| 精品视频色一区| 丝袜亚洲精品中文字幕一区| 欧美一区午夜视频在线观看| 久久不见久久见免费视频1| 日韩欧美一区二区在线视频| 蜜臀av一区二区三区| www国产精品av| 成人网男人的天堂| 亚洲欧美国产高清| 欧美日韩在线播放三区四区| 麻豆免费看一区二区三区| 久久精品日产第一区二区三区高清版| 懂色av中文字幕一区二区三区| 国产精品不卡一区| 欧美高清激情brazzers| 国产精品一区二区三区网站| 国产欧美日韩中文久久| 99精品欧美一区二区三区小说 | 91丝袜美腿高跟国产极品老师| 亚洲男同性恋视频| 在线成人免费观看| 国产麻豆精品95视频| 一区二区三区在线免费播放| 欧美一级午夜免费电影| 粉嫩一区二区三区性色av| 亚洲一级二级三级| 欧美大胆人体bbbb| av在线播放不卡| 日韩精品91亚洲二区在线观看| 久久蜜桃av一区二区天堂| 欧美中文字幕久久| 麻豆精品国产91久久久久久| 国产精品久久久久aaaa| 69p69国产精品| av色综合久久天堂av综合| 天天操天天综合网| 中文字幕在线视频一区| 69精品人人人人| 91热门视频在线观看| 久久精品久久99精品久久| 亚洲免费视频成人| 久久蜜桃一区二区| 欧美一三区三区四区免费在线看| 99天天综合性| 国产精品一级二级三级| 美女精品一区二区| 一区二区免费在线播放| 中文在线免费一区三区高中清不卡 | 国产精品久久久久aaaa| 日韩免费电影网站| 在线视频欧美区| 国产成人aaa| 激情图区综合网| 偷窥国产亚洲免费视频| 亚洲欧美另类小说| 中文字幕一区二区三中文字幕| 2023国产精华国产精品| 欧美一级片在线| 欧美美女一区二区在线观看| 欧美一级在线观看| 中文字幕精品在线不卡| 欧美日韩国产成人在线91| 97se亚洲国产综合自在线观| 韩国v欧美v亚洲v日本v| 日本伊人精品一区二区三区观看方式| 亚洲精品日产精品乱码不卡| 国产三级欧美三级日产三级99| 制服丝袜中文字幕亚洲| 欧美视频完全免费看| 91免费国产在线| 国产91高潮流白浆在线麻豆 | 香蕉成人啪国产精品视频综合网| 国产精品久久久久久一区二区三区 | 懂色av噜噜一区二区三区av| 久久精工是国产品牌吗| 免费不卡在线视频| 久久99精品国产麻豆婷婷| 免费视频一区二区| 九九精品视频在线看| 久久精品国产精品亚洲精品| 男女激情视频一区| 蜜臀久久久久久久| 久久99久久99| 国产老肥熟一区二区三区| 国产精品一线二线三线| 韩国av一区二区| 国产成人超碰人人澡人人澡| 成人永久aaa| 波多野结衣中文字幕一区二区三区| 91福利资源站| 久久久精品综合| 色综合久久中文字幕综合网| 国产老肥熟一区二区三区| 国产一区在线不卡| 国产mv日韩mv欧美| 91麻豆蜜桃一区二区三区| 99久久er热在这里只有精品66| 99久久精品情趣| 欧美日韩一区二区三区在线看| 欧美性xxxxx极品少妇| 欧美日韩国产一区二区三区地区| 8x福利精品第一导航| 精品1区2区在线观看| 国产精品成人免费精品自在线观看| 亚洲一线二线三线久久久| 麻豆精品国产传媒mv男同| 成人黄色777网| 欧美精品tushy高清| 久久精品人人做人人爽97| 亚洲丝袜美腿综合| 蜜臀av性久久久久蜜臀aⅴ| 成人免费av在线| 欧美精品一卡两卡| 中文一区一区三区高中清不卡| 亚洲综合精品自拍| 国产精品亚洲а∨天堂免在线| 91免费精品国自产拍在线不卡|