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

    云數(shù)據(jù)庫運(yùn)行環(huán)境的動(dòng)態(tài)模擬

    2022-09-26 13:06:08游舒泓
    關(guān)鍵詞:網(wǎng)絡(luò)帶寬磁盤內(nèi)存

    游舒泓 ,蘇 仟 ,張 蓉

    (1.華東師范大學(xué) 數(shù)據(jù)科學(xué)與工程學(xué)院,上海 200062;2.國(guó)家工業(yè)信息安全發(fā)展研究中心,北京 100040)

    0 引 言

    云計(jì)算平臺(tái)的應(yīng)用在近20 年內(nèi)空前增長(zhǎng),根據(jù)統(tǒng)計(jì)報(bào)告的預(yù)測(cè)[1],到 2025 年,公共云計(jì)算市場(chǎng)價(jià)值將達(dá)到 8 000 億美元,越來越多的企業(yè)選擇將工作負(fù)載運(yùn)行在公有云環(huán)境中.截至2020 年,61% 的企業(yè)已將工作負(fù)載遷移到云端,其中有46% 的公司報(bào)告說有了更好的財(cái)務(wù)狀況.因此,這一趨勢(shì)可能會(huì)在未來幾年持續(xù)下去.容器化[2]的云環(huán)境逐漸流行起來,因?yàn)楸绕鸪R?guī)服務(wù)器,用云容器部署應(yīng)用更加高效.容器編排引擎 (如 Kubernetes[3]) 可以提供跨不同云管理應(yīng)用程序的必要運(yùn)行環(huán)境,使容器化云環(huán)境更容易被用戶廣泛使用.

    數(shù)據(jù)庫是一種被廣泛應(yīng)用的數(shù)據(jù)管理技術(shù),給物流數(shù)據(jù)提供了方便、高效的管理方式.云平臺(tái)的成熟與普及推動(dòng)了云原生軟件系統(tǒng)的發(fā)展,其中也包括云原生數(shù)據(jù)庫,如Amazon Aurora[4-5]、阿里的PolarDB[6]、Socrates[7]和 Taurus[8].數(shù)據(jù)庫系統(tǒng)作為一個(gè)基礎(chǔ)支撐軟件運(yùn)行于系統(tǒng)環(huán)境,在運(yùn)行期間會(huì)遇到系統(tǒng)環(huán)境中的其他應(yīng)用程序搶占資源,包括硬件資源、軟件資源,進(jìn)而導(dǎo)致用戶執(zhí)行負(fù)載的性能變化.另外,在生產(chǎn)環(huán)境中,環(huán)境負(fù)載類型、負(fù)載強(qiáng)度都可能進(jìn)行動(dòng)態(tài)變化,運(yùn)行環(huán)境的變化對(duì)數(shù)據(jù)庫負(fù)載運(yùn)行性能的情況甚至正確性都會(huì)造成影響.

    云平臺(tái)的資源池化能力、靈活的調(diào)度能力及面向需求的無感彈性擴(kuò)展能力,在帶來便利的同時(shí),也引入了新的挑戰(zhàn).在云平臺(tái),一臺(tái)物理機(jī)可以托管多個(gè)應(yīng)用實(shí)例[9],系統(tǒng)中可能同時(shí)運(yùn)行大量操作類型不同、密集、高度動(dòng)態(tài)的工作負(fù)載[10].雖然不同應(yīng)用所部署的容器之間可能通過軟件相互隔離,但由于這些容器共享云環(huán)境中的資源,容器間還是存在對(duì)環(huán)境資源的競(jìng)爭(zhēng).此外,為了充分利用云資源,云服務(wù)提供商通常會(huì)出售更多的資源以獲取更大的利潤(rùn).這些因素使得云原生應(yīng)用程序之間的資源搶奪更加嚴(yán)重,從而加劇了數(shù)據(jù)庫運(yùn)行環(huán)境的不可控性和不穩(wěn)定性.圖1 展示了一個(gè)容器中的MySQL 數(shù)據(jù)庫性能受另一個(gè)容器中的應(yīng)用負(fù)載影響的現(xiàn)象.數(shù)據(jù)庫在運(yùn)行的是事務(wù)型負(fù)載,對(duì)CPU 資源的需求大.當(dāng)其他容器中的應(yīng)用程序也開始密集消耗CPU 時(shí) (約55 s),數(shù)據(jù)庫的平均時(shí)延明顯大幅增加.因此,模擬動(dòng)態(tài)的運(yùn)行環(huán)境對(duì)評(píng)測(cè)云環(huán)境中數(shù)據(jù)庫的服務(wù)性能以及服務(wù)可用性、可靠性而言至關(guān)重要.

    圖1 容器間資源競(jìng)爭(zhēng)導(dǎo)致數(shù)據(jù)庫性能下降現(xiàn)象Fig.1 Resource competition between containers causes database performance degration

    模擬云數(shù)據(jù)庫運(yùn)行環(huán)境的難點(diǎn)在于需實(shí)現(xiàn)較高的準(zhǔn)確性、高效性、全面性、通用性.準(zhǔn)確性意味著實(shí)際生成的環(huán)境要貼近目標(biāo)環(huán)境,即實(shí)現(xiàn)對(duì)目標(biāo)資源的精確消耗,并且環(huán)境模擬負(fù)載對(duì)其余系統(tǒng)資源影響微小;高效性意味著生成目標(biāo)環(huán)境的速度快;全面性意味著可模擬的資源類型較廣泛;通用性意味著可以模擬給定時(shí)刻數(shù)據(jù)庫運(yùn)行環(huán)境中涉及的環(huán)境資源的故障及非故障狀態(tài).本文設(shè)計(jì)了輕量化的環(huán)境負(fù)載,通過敏捷的算法控制環(huán)境負(fù)載的動(dòng)態(tài)變化,可實(shí)現(xiàn)對(duì)目標(biāo)環(huán)境準(zhǔn)確、高效的模擬.為了更全面地模擬運(yùn)行環(huán)境,本文的資源模擬范圍涵蓋了硬件資源以及與數(shù)據(jù)庫相關(guān)的軟件資源.為了更細(xì)致地刻畫數(shù)據(jù)庫運(yùn)行環(huán)境,實(shí)現(xiàn)更好的通用性,本文將數(shù)據(jù)庫運(yùn)行環(huán)境劃分為以下兩類.

    (1) 常規(guī)運(yùn)行環(huán)境: 在無故障情況下,運(yùn)行環(huán)境中其他容器的應(yīng)用程序?qū)ο到y(tǒng)資源消耗的狀態(tài).

    (2) 極端運(yùn)行環(huán)境: 運(yùn)行環(huán)境中數(shù)據(jù)庫所在容器的資源被占滿,甚至是被破壞的極端情況.

    基于上述設(shè)計(jì)點(diǎn),本文在Woodpecker 測(cè)試框架[11]的基礎(chǔ)上實(shí)現(xiàn)了一個(gè)全面、通用的數(shù)據(jù)庫運(yùn)行環(huán)境動(dòng)態(tài)的模擬工具.該工具可生成針對(duì)硬件資源 (如CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)) 和進(jìn)程、文件系統(tǒng)等軟件資源指定強(qiáng)度的環(huán)境負(fù)載,達(dá)成對(duì)常規(guī)及極端運(yùn)行環(huán)境準(zhǔn)確、高效的模擬,可幫助評(píng)測(cè)數(shù)據(jù)庫系統(tǒng)服務(wù)的可靠性、穩(wěn)定性.在環(huán)境模擬結(jié)束后,本工具會(huì)自動(dòng)恢復(fù)環(huán)境模擬中被消耗、破壞的資源.

    1 相關(guān)工作

    運(yùn)行環(huán)境模擬是一項(xiàng)通過生成、運(yùn)行和控制一組環(huán)境資源工作負(fù)載,模擬實(shí)際業(yè)務(wù)場(chǎng)景中應(yīng)用程序運(yùn)行環(huán)境的工作.目前,數(shù)據(jù)庫測(cè)試人員在用標(biāo)準(zhǔn)評(píng)測(cè)基準(zhǔn)測(cè)試數(shù)據(jù)庫性能時(shí),為了獲得最佳的測(cè)試結(jié)果,通常在封閉環(huán)境下完成評(píng)測(cè),即不會(huì)同時(shí)在系統(tǒng)中運(yùn)行其他應(yīng)用負(fù)載.但是在實(shí)際業(yè)務(wù)場(chǎng)景中,部署云和集群環(huán)境下的數(shù)據(jù)庫系統(tǒng),其運(yùn)行效果會(huì)受到復(fù)雜多變的生產(chǎn)環(huán)境影響,即數(shù)據(jù)庫的負(fù)載性能會(huì)受到其他應(yīng)用的資源爭(zhēng)奪或者資源損壞帶來的影響.

    隨著云環(huán)境的成熟,越來越多的數(shù)據(jù)庫部署到開放的云平臺(tái),提供DBaaS (數(shù)據(jù)庫服務(wù)),數(shù)據(jù)庫運(yùn)行環(huán)境變得更加復(fù)雜.目前已有相關(guān)工作通過故障注入、模擬環(huán)境資源消耗等方式來制造復(fù)雜的運(yùn)行環(huán)境.不過這些工具在通用性、全面性、動(dòng)態(tài)性和模擬效果的準(zhǔn)確性上各有欠缺,這些相關(guān)工作的總結(jié)見表1.

    表1 運(yùn)行環(huán)境模擬相關(guān)工作總結(jié)Tab.1 Summary of work related to runtime environment simulation

    混沌測(cè)試工具,如ChaosBlade[12]、Chaos-Mesh[13],通過故障注入的方式,模擬多種系統(tǒng)資源被破壞時(shí)的情況.文獻(xiàn)[14-16]通過對(duì)運(yùn)行環(huán)境施加壓力測(cè)試來評(píng)測(cè)虛擬機(jī)的性能.這些工作模擬的是極端情況下的運(yùn)行環(huán)境,雖然可以測(cè)試數(shù)據(jù)庫的容錯(cuò)、恢復(fù)能力,但不能反映常規(guī)部署環(huán)境下的運(yùn)行情況,缺乏環(huán)境模擬的通用性,且工具運(yùn)行后,負(fù)載對(duì)資源的影響強(qiáng)度是穩(wěn)定的,不能模擬動(dòng)態(tài)變化的場(chǎng)景.

    在模擬環(huán)境資源消耗的工作中,很多工作提出了對(duì)單一資源的模擬方法.ProWGen[17]是一種Web 代理工作負(fù)載生成器,用來評(píng)估Web 代理的緩存替換策略.GISMO[18]可以生成貼近現(xiàn)實(shí)的、可擴(kuò)展的互聯(lián)網(wǎng)請(qǐng)求流,用于對(duì)互聯(lián)網(wǎng)流媒體傳輸技術(shù)進(jìn)行基準(zhǔn)測(cè)試.文獻(xiàn)[19]使用真實(shí)的工作負(fù)載特征來模擬用戶的文件訪問行為.文獻(xiàn)[20]通過模擬計(jì)算密集型工作負(fù)載以評(píng)估高性能計(jì)算架構(gòu)的性能.文獻(xiàn)[21-24]設(shè)計(jì)了高并行應(yīng)用模擬器,用于探索大規(guī)模的眾核處理器的設(shè)計(jì)空間.但是這些工作是為了評(píng)測(cè)特定應(yīng)用的性能而設(shè)計(jì)的,生成的是特定應(yīng)用程序的工作負(fù)載,不適合用于模擬實(shí)際業(yè)務(wù)場(chǎng)景中的運(yùn)行環(huán)境.在模擬真實(shí)的應(yīng)用環(huán)境的資源消耗工作中,比較完整的只有Jeong 等[25]研發(fā)的系統(tǒng)測(cè)試負(fù)載生成器和華東師范大學(xué)數(shù)據(jù)科學(xué)與工程學(xué)院研發(fā)的動(dòng)態(tài)工作負(fù)載生成器.

    Jeong 等[25]通過生成特征負(fù)載來模擬應(yīng)用的真實(shí)運(yùn)行環(huán)境.但是這個(gè)工作只能摸擬CPU、內(nèi)存和磁盤資源的消耗情況,沒有考慮網(wǎng)絡(luò)資源的消耗,也未模擬軟件資源的變化,全面性不佳,而且該工具無法模擬環(huán)境負(fù)載的動(dòng)態(tài)變化.此外,該工作使用的負(fù)載較笨重,實(shí)現(xiàn)目標(biāo)場(chǎng)景的速度較慢,且模擬某類資源消耗的負(fù)載運(yùn)行時(shí),會(huì)對(duì)其余硬件資源造成明顯的消耗,導(dǎo)致模擬出的場(chǎng)景不夠準(zhǔn)確.

    華東師范大學(xué)數(shù)據(jù)學(xué)院的Zhang 等[26]自主研發(fā)了一個(gè)數(shù)據(jù)庫環(huán)境模擬的動(dòng)態(tài)工作負(fù)載生成器,可以模擬CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)資源的消耗情況.該工作提出了一種動(dòng)態(tài)環(huán)境生成算法,可以模擬出較復(fù)雜的應(yīng)用運(yùn)行環(huán)境,但是全面性不佳,比如對(duì)于磁盤,只模擬了占用容量和產(chǎn)生順序?qū)慖/O 的場(chǎng)景,對(duì)于網(wǎng)絡(luò)資源只考慮了模擬網(wǎng)絡(luò)帶寬的占用情況,且未考慮軟件資源方面的影響,能制造的場(chǎng)景有限.該工作在負(fù)載設(shè)計(jì)時(shí)未規(guī)避對(duì)其余資源的明顯消耗,造成模擬資源消耗場(chǎng)景的準(zhǔn)確性欠佳.

    2 環(huán)境模擬設(shè)計(jì)

    本文假定在常規(guī)運(yùn)行環(huán)境下,數(shù)據(jù)庫實(shí)例所在平臺(tái)系統(tǒng)的硬件資源 (CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)) 充足,數(shù)據(jù)庫內(nèi)部無異常問題.在這個(gè)前提條件下,如果數(shù)據(jù)庫負(fù)載的執(zhí)行效率變低,則有可能與負(fù)載可使用資源變少有關(guān).常規(guī)的運(yùn)行環(huán)境是指存在應(yīng)用程序間爭(zhēng)搶資源行為的系統(tǒng)環(huán)境.常規(guī)的運(yùn)行環(huán)境變化會(huì)對(duì)數(shù)據(jù)庫的性能穩(wěn)定性和數(shù)據(jù)庫服務(wù)的可用性造成考驗(yàn).本工具可模擬的常規(guī)運(yùn)行場(chǎng)景如表2所示.一般情況下,密集消耗某種資源負(fù)載的同時(shí)也可能消耗其他資源,模擬負(fù)載之間的相互作用會(huì)給環(huán)境資源模擬造成困難.因此,本文提出在設(shè)計(jì)每種資源的消耗負(fù)載上要盡量避免或者降低對(duì)其余資源的影響,從而實(shí)現(xiàn)準(zhǔn)確模擬出各類數(shù)據(jù)庫運(yùn)行的場(chǎng)景.

    表2 常規(guī)運(yùn)行環(huán)境模擬負(fù)載總結(jié)Tab.2 Summary of regular runtime environment simulation workload

    在極端情況下,系統(tǒng)中可能發(fā)生某種硬件資源被占滿,甚至被破壞的情況,這對(duì)數(shù)據(jù)庫運(yùn)行會(huì)是很大的阻礙.極端情況包含對(duì)資源的徹底性破壞和非徹底性破壞.徹底性破壞是對(duì)資源造成完全損壞,包括切斷網(wǎng)絡(luò)鏈接、破壞進(jìn)程、主機(jī)宕機(jī)、破壞文件等;非徹底性破壞是對(duì)資源造成部分損壞,如網(wǎng)絡(luò)發(fā)生部分丟包、網(wǎng)絡(luò)包損壞等情況.本工具可模擬的極端運(yùn)行場(chǎng)景如表3 所示.對(duì)于數(shù)據(jù)庫評(píng)測(cè)而言,這些極端環(huán)境可以幫助測(cè)試數(shù)據(jù)庫的容錯(cuò)性、高可用性.

    表3 極端運(yùn)行環(huán)境模擬負(fù)載總結(jié)Tab.3 Summary of extreme runtime environment simulation workload

    2.1 模擬CPU 占用

    如果數(shù)據(jù)庫可用的CPU 資源不足,包含連接、排序等計(jì)算復(fù)雜度高的負(fù)載性能就會(huì)被拖慢.CPU 負(fù)載的模擬需要考慮兩個(gè)問題: CPU 占用的速度、其他資源的相關(guān)影響.

    本工具模擬CPU 占用的方法是分配一定數(shù)量的單線程進(jìn)程,在 while(true) 條件下無限次地執(zhí)行賦值操作,從而占用相應(yīng)核數(shù)的CPU.由于每個(gè)進(jìn)程都在執(zhí)行無限循環(huán)操作,進(jìn)程占用的CPU 使用率會(huì)迅速升至100%.對(duì)CPU 消耗大的負(fù)載通常會(huì)涉及算術(shù)計(jì)算,但執(zhí)行計(jì)算的過程中難免會(huì)涉及對(duì)計(jì)算中間結(jié)果的緩存,進(jìn)而使得內(nèi)存資源被明顯消耗,這樣就無法準(zhǔn)確模擬出只大量占用CPU 資源的場(chǎng)景.因此,本工具的CPU 占用模擬負(fù)載中只設(shè)計(jì)了賦值這樣簡(jiǎn)單的操作,從而避免了計(jì)算中間結(jié)果的緩存,幾乎不會(huì)引起對(duì)內(nèi)存的消耗.

    2.2 模擬內(nèi)存占用

    如果內(nèi)存資源不足,數(shù)據(jù)庫可能會(huì)頻繁地對(duì)磁盤進(jìn)行讀寫操作,而對(duì)基于LSM Tree 設(shè)計(jì)的緩存管理會(huì)造成更嚴(yán)重的頻繁數(shù)據(jù)合并,導(dǎo)致讀寫操作密集型數(shù)據(jù)庫的負(fù)載性能受到影響.為了模擬對(duì)內(nèi)存資源的占用,需要解決如下問題: 一是內(nèi)存環(huán)境的迅速構(gòu)造,二是對(duì)其他資源的無感生成方法.

    本工具模擬內(nèi)存占用的方法是創(chuàng)建tmpfs 文件系統(tǒng),再往里寫入指定大小的$data_size數(shù)據(jù),以達(dá)到占據(jù)內(nèi)存的目的,模擬內(nèi)存占用執(zhí)行的命令如下所示.tmpfs 是一種虛擬內(nèi)存文件系統(tǒng),使用內(nèi)存來存儲(chǔ)數(shù)據(jù).本工具采用Linux 自帶的 dd 命令對(duì)tmpfs 文件系統(tǒng)填充數(shù)據(jù),方法是從/dev/zero讀取數(shù)據(jù),再寫入tmpfs,以達(dá)到占用內(nèi)存的效果.

    由于/dev/zero是一個(gè)偽設(shè)備,它只產(chǎn)生空字符流,讀取不會(huì)產(chǎn)生I/O.將讀取的數(shù)據(jù)寫入內(nèi)存的速度與每次操作的數(shù)據(jù)塊大小bs 有關(guān),當(dāng)bs 被設(shè)為磁盤扇區(qū)大小的較大倍數(shù) (如512 K) 時(shí),可大幅減少系統(tǒng)調(diào)用帶來的額外消耗,從而提高占據(jù)內(nèi)存的速度.寫入過程中自然不會(huì)產(chǎn)生對(duì)磁盤的寫I/O,只會(huì)對(duì)CPU 消耗造成少量影響,而保持占據(jù)內(nèi)存的過程幾乎不會(huì)消耗磁盤I/O 和CPU.

    2.3 模擬磁盤占用

    數(shù)據(jù)庫可用的磁盤資源如果不足,數(shù)據(jù)庫的讀寫速度也會(huì)因此受限.已有的工作大多關(guān)注對(duì)磁盤容量的模擬,忽視了對(duì)指定強(qiáng)度的IOPS (Input/output Operations Per Second)的仿真,但是IOPS 會(huì)影響即時(shí)的寫入和讀入性能,對(duì)數(shù)據(jù)庫處理磁盤操作密集型負(fù)載的性能會(huì)有明顯影響.

    2.3.1 磁盤容量

    系統(tǒng)中可用的磁盤容量如果不足,數(shù)據(jù)庫寫入的數(shù)據(jù)無法落盤,便會(huì)被迫終止對(duì)負(fù)載的處理.本工具設(shè)計(jì)的占用磁盤容量的負(fù)載使用了Linux 自帶的dd 命令來實(shí)現(xiàn),具體命令如下.

    該負(fù)載會(huì)復(fù)制一定大小的數(shù)據(jù),寫入文件系統(tǒng)中,達(dá)到占用磁盤容量的目的.用戶可以指定需要占用的磁盤容量 ($data_size).執(zhí)行過程中雖然包含對(duì)數(shù)據(jù)文件的多次讀、寫,但是本工具在負(fù)載中指定了控制讀、寫方式的參數(shù)“flags=direct”,在對(duì)磁盤進(jìn)行操作時(shí)便可以規(guī)避文件系統(tǒng)的緩存,所以執(zhí)行負(fù)載期間對(duì)CPU 有輕微影響,幾乎不消耗內(nèi)存.為了減少寫入數(shù)據(jù)期間對(duì)磁盤I/O 的影響,本負(fù)載會(huì)從/dev/zero(一個(gè)只產(chǎn)生空字符流的偽設(shè)備) 中讀取數(shù)據(jù),這樣可以避免產(chǎn)生讀I/O.

    2.3.2 磁盤IOPS

    磁盤IOPS 是磁盤每秒產(chǎn)生I/O 的次數(shù).系統(tǒng)硬盤每秒產(chǎn)生I/O 的能力是有上限的,如果被其他負(fù)載占用過多IOPS,數(shù)據(jù)庫對(duì)磁盤的讀寫速度會(huì)減慢,進(jìn)而影響數(shù)據(jù)庫負(fù)載處理的效率.產(chǎn)生指定強(qiáng)度磁盤IOPS 環(huán)境的難點(diǎn)在于如下兩點(diǎn): ①必須保證負(fù)載每次對(duì)數(shù)據(jù)塊的操作可以在單次I/O 操作中完成,才能準(zhǔn)確模擬出IOPS;② 磁盤每次I/O 操作的時(shí)長(zhǎng)可能會(huì)波動(dòng)變化,難以估計(jì)指定數(shù)量的I/O 操作能否在預(yù)期時(shí)長(zhǎng)內(nèi)完成.故目前沒有資源模擬工具可以準(zhǔn)確產(chǎn)生指定強(qiáng)度的磁盤IOPS.

    本工具用于模擬占用磁盤IOPS 的負(fù)載類型有6 種: 順序?qū)?、讀、讀寫以及隨機(jī)寫、讀、讀寫,可制造多樣化的I/O 場(chǎng)景.

    (1) 順序操作的IOPS

    對(duì)順序IOPS 占用的模擬如算法1 所示.該負(fù)載每秒執(zhí)行一次 dd 命令對(duì)磁盤執(zhí)行順序讀/寫操作,負(fù)載執(zhí)行期間操作磁盤塊的數(shù)量近似是對(duì)磁盤進(jìn)行I/O 操作次數(shù),即磁盤IOPS.為了更精確地模擬產(chǎn)生指定強(qiáng)度的磁盤IOPS,本負(fù)載將每次I/O 操作的數(shù)據(jù)塊大小 (bs 參數(shù)) 設(shè)置為dd 命令允許的最小值 (512 B),這個(gè)數(shù)值遠(yuǎn)小于磁盤的block 大小 (通常只有4 096 B 左右),保證負(fù)載每次對(duì)數(shù)據(jù)塊的I/O 操作都能一次性完成,并且每次I/O 操作的時(shí)延微小,這樣可以盡可能地保證需要模擬的I/O 操作可以在1 s 內(nèi)完成.

    制造順序?qū)懙腎/O 時(shí),該負(fù)載會(huì)模擬寫入數(shù)據(jù)到文件系統(tǒng)中.其中,讀取的數(shù)據(jù)源 (fileread) 為/dev/zero,它是一個(gè)偽設(shè)備,只產(chǎn)生空字符流,讀取它并不會(huì)產(chǎn)生讀磁盤的I/O.執(zhí)行順序?qū)懙呢?fù)載期間,產(chǎn)生的I/O 都集中在輸出文件的過程中.

    順序讀的負(fù)載會(huì)從文件系統(tǒng)的一個(gè)物理分區(qū)中復(fù)制一定大小的文件,輸出到/dev/null(filewrite) ./dev/null也是個(gè)偽設(shè)備,相當(dāng)于黑洞,對(duì)該設(shè)備寫入數(shù)據(jù)不會(huì)產(chǎn)生寫磁盤的I/O.執(zhí)行順序讀的負(fù)載期間,產(chǎn)生的I/O 都集中在讀取文件系統(tǒng)的過程中.

    順序讀寫的負(fù)載會(huì)從文件系統(tǒng)的一個(gè)物理分區(qū)中復(fù)制一定大小的文件,輸出到另一個(gè)物理分區(qū)的文件中.所以執(zhí)行這個(gè)負(fù)載時(shí),讀寫文件的過程都會(huì)產(chǎn)生I/O.

    本負(fù)載在模擬產(chǎn)生高強(qiáng)度磁盤IOPS 場(chǎng)景時(shí),對(duì)磁盤余量不會(huì)有明顯影響,這是由于每次I/O 只操作512 B 數(shù)據(jù);普通HDD 硬盤的IOPS 上限只有幾千次,即使是SSD 硬盤的IOPS 上限也只有幾萬次,就算用戶需要模擬高強(qiáng)度的IOPS,該負(fù)載每秒需要操作的數(shù)據(jù)量也只有幾MB,對(duì)磁盤容量的影響小于萬分之一.

    一般來說,對(duì)磁盤進(jìn)行操作的負(fù)載需要頻繁使用內(nèi)存,故而不可避免地會(huì)占用CPU 和內(nèi)存.和占用磁盤容量的負(fù)載相似,本工具中占用磁盤IOPS 的負(fù)載指定了對(duì)磁盤進(jìn)行操作時(shí)規(guī)避使用文件緩存,執(zhí)行負(fù)載期間對(duì)CPU 和內(nèi)存消耗都只有輕微影響,并且盡可能地保證了磁盤I/O 強(qiáng)度的準(zhǔn)確性.

    (2) 隨機(jī)操作的IOPS

    模擬隨機(jī)操作的算法與順序操作的大致相同,其中,由于dd 命令只支持對(duì)磁盤的順序操作,本工具通過調(diào)用輕量級(jí)的磁盤測(cè)試工具fio[27]來實(shí)現(xiàn)對(duì)磁盤的隨機(jī)操作.系統(tǒng)測(cè)試中,fio 常被用于生成混合隨機(jī)讀寫的密集 I/O 工作負(fù)載.fio 運(yùn)行時(shí)會(huì)引起更多的系統(tǒng)調(diào)用,所以對(duì)于CPU、內(nèi)存的影響會(huì)更大一點(diǎn).

    2.4 模擬網(wǎng)絡(luò)限制和破壞

    如果網(wǎng)絡(luò)質(zhì)量不佳,數(shù)據(jù)傳輸?shù)乃俣葧?huì)大大減慢,這對(duì)于分布式數(shù)據(jù)庫的負(fù)載處理速度會(huì)有不小影響.本工具可以模擬特殊的網(wǎng)絡(luò)環(huán)境,使網(wǎng)絡(luò)發(fā)生帶寬受限、傳輸產(chǎn)生時(shí)延等情況,也可以模擬網(wǎng)絡(luò)發(fā)生丟包、包損壞等非徹底性破壞.本工具通過直接對(duì)網(wǎng)卡施加流量限制來模擬特殊的網(wǎng)絡(luò)環(huán)境.負(fù)載中調(diào)用了Linux 的tc 工具來實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)資源消耗和網(wǎng)絡(luò)故障的模擬.tc 在網(wǎng)絡(luò)輸出端口處建立一個(gè)隊(duì)列,以實(shí)現(xiàn)對(duì)Linux 內(nèi)核的流量控制.tc 可以針對(duì)特定網(wǎng)卡來制造流量限制,達(dá)成效果的速度快,并且運(yùn)行期間幾乎不會(huì)引起對(duì)CPU、內(nèi)存的消耗.

    本工具還可以模擬斷開機(jī)器間的網(wǎng)絡(luò)連接.負(fù)載可以實(shí)現(xiàn)斷開特定端口的網(wǎng)絡(luò),為軟件的可靠性測(cè)試而服務(wù),如果用戶需要測(cè)試數(shù)據(jù)庫的運(yùn)行容錯(cuò)性,可以用本負(fù)載來切斷數(shù)據(jù)庫端口的網(wǎng)絡(luò).本負(fù)載的實(shí)現(xiàn)方法是調(diào)用tcpkill 命令,終止對(duì)應(yīng)的tcp 連接.

    2.5 模擬文件損壞

    當(dāng)數(shù)據(jù)文件被損壞時(shí),數(shù)據(jù)庫需要執(zhí)行備份恢復(fù)或者啟用備庫來保證業(yè)務(wù)的開展,實(shí)現(xiàn)高可用.對(duì)于單點(diǎn)式數(shù)據(jù)庫,這種情況可以考驗(yàn)數(shù)據(jù)庫的備份恢復(fù)能力;對(duì)于分布式數(shù)據(jù)庫,特別是主備架構(gòu),這種情況還可以測(cè)試各節(jié)點(diǎn)間數(shù)據(jù)的同步能力.

    本工具通過強(qiáng)制執(zhí)行系統(tǒng)的刪除命令來刪除用戶指定的文件或文件夾,以此模擬數(shù)據(jù)文件丟失的情況.除此之外,還可以模擬數(shù)據(jù)文件被惡意篡改的場(chǎng)景,通過輸出隨機(jī)字符改寫數(shù)據(jù)文件來實(shí)現(xiàn).

    2.6 模擬創(chuàng)建進(jìn)程和破壞進(jìn)程

    應(yīng)用程序連續(xù)創(chuàng)建進(jìn)程的行為會(huì)拖慢系統(tǒng)開啟新進(jìn)程的速度,進(jìn)而影響數(shù)據(jù)庫 (尤其是多進(jìn)程數(shù)據(jù)庫) 對(duì)負(fù)載的處理效率.本工具通過循環(huán)創(chuàng)建多個(gè)子進(jìn)程來模擬占用進(jìn)程資源空間.

    數(shù)據(jù)庫進(jìn)程如果被意外終止,數(shù)據(jù)庫對(duì)負(fù)載的執(zhí)行會(huì)被強(qiáng)行結(jié)束,并且可能發(fā)生大量事務(wù)回滾,數(shù)據(jù)庫的容錯(cuò)能力是不小的考驗(yàn).本工具通過調(diào)用系統(tǒng)命令來終止進(jìn)程,以此模擬應(yīng)用程序的進(jìn)程被意外結(jié)束的情況.

    除此之外,本工具還可以通過執(zhí)行進(jìn)程炸彈 (fork bomb),即不停創(chuàng)建新進(jìn)程來耗盡系統(tǒng)資源,執(zhí)行命令如下所示.

    在這個(gè)負(fù)載運(yùn)行期間,有進(jìn)程數(shù)量限制的系統(tǒng)無法開起新的進(jìn)程,不限制進(jìn)程數(shù)量的系統(tǒng)則會(huì)停止響應(yīng),對(duì)數(shù)據(jù)庫運(yùn)行會(huì)是很大的打擊.

    2.7 模擬主機(jī)宕機(jī)

    如果數(shù)據(jù)庫所在的主機(jī)發(fā)生宕機(jī),數(shù)據(jù)庫處理負(fù)載的過程會(huì)被強(qiáng)行終止.這種情況可以考驗(yàn)數(shù)據(jù)庫運(yùn)行負(fù)載的正確性和數(shù)據(jù)庫的高可用性.

    本工具可模擬以下多種數(shù)據(jù)庫所在的機(jī)器意外宕機(jī)的情況:

    (1) 通過強(qiáng)制執(zhí)行關(guān)閉電源的命令,模擬機(jī)器的電源被破壞,機(jī)器內(nèi)所有進(jìn)程被迫終止運(yùn)行的情況;

    (2) 通過執(zhí)行正常關(guān)機(jī)的命令,模擬機(jī)器被正常關(guān)機(jī)的情況;

    (3) 通過切斷該機(jī)器的所有網(wǎng)絡(luò)連接,模擬機(jī)器失聯(lián)的情況.

    3 動(dòng)態(tài)變化環(huán)境模擬

    在云環(huán)境中,密集的工作負(fù)載及新容器的建立可能會(huì)更頻繁地發(fā)生,即云數(shù)據(jù)庫的運(yùn)行環(huán)境可能隨時(shí)會(huì)動(dòng)態(tài)變化.因此,為了模擬出更真實(shí)的環(huán)境,需要建模環(huán)境負(fù)載在不同時(shí)段的資源消耗情況.

    本工具模擬負(fù)載動(dòng)態(tài)變化的方法如算法2 所示,動(dòng)態(tài)性主要由控制環(huán)境模擬負(fù)載執(zhí)行的變量targetList和timeList來實(shí)現(xiàn).算法2 中,Workloadtype表示用戶當(dāng)前要執(zhí)行的環(huán)境負(fù)載,targetList和timeList是兩個(gè)長(zhǎng)度相等的數(shù)組,timeList中的每個(gè)值表示不同的時(shí)間段,targetList中對(duì)應(yīng)位置的值是這個(gè)時(shí)間段內(nèi)負(fù)載需模擬的目標(biāo)環(huán)境狀態(tài).本工具通過timeList來控制負(fù)載強(qiáng)度發(fā)生變化的時(shí)間點(diǎn),通過targetList中相鄰目標(biāo)環(huán)境狀態(tài)的差值(Δadjust)來控制負(fù)載強(qiáng)度變化的幅度,比如WordloadCP U(3 2 4,60 30 50)中,targetList是 (3 2 4) ,timeList是 (60 30 50),該負(fù)載一共要執(zhí)行140 s(60+30+50),模擬出的場(chǎng)景是: 在前60 s 占用3 核CPU,60~ 90 s 只占用2 核CPU,最后50 s 占用4 核CPU.

    4 運(yùn)行環(huán)境模擬總體設(shè)計(jì)

    應(yīng)用環(huán)境模擬框架如圖2 所示.客戶端組件包括控制器、解析器、負(fù)載生成器和測(cè)試報(bào)告生成器.服務(wù)器端包括動(dòng)態(tài)變化控制器、負(fù)載執(zhí)行器、指標(biāo)收集器和目標(biāo)服務(wù)器,其中,動(dòng)態(tài)變化控制器用于控制負(fù)載強(qiáng)度變化,負(fù)載執(zhí)行器中的常規(guī)負(fù)載執(zhí)行器會(huì)對(duì)目標(biāo)服務(wù)器執(zhí)行環(huán)境資源消耗模擬,極端負(fù)載執(zhí)行器會(huì)對(duì)目標(biāo)服務(wù)器的資源執(zhí)行資源破壞.指標(biāo)收集器會(huì)在每次測(cè)試結(jié)束后將細(xì)粒度的測(cè)試指標(biāo)反饋給測(cè)試報(bào)告生成器,用于輸出詳盡的測(cè)試報(bào)告.

    圖2 運(yùn)行環(huán)境模擬總體框架Fig.2 General framework for runtime environment simulation

    環(huán)境仿真模擬的流程如下.

    (1) 控制器從系統(tǒng)配置文件中識(shí)別出當(dāng)前的環(huán)境模擬任務(wù),并啟動(dòng)解析器;

    (2) 解析器根據(jù)詞法規(guī)則解析當(dāng)前的模擬任務(wù),并發(fā)送負(fù)載生成器;

    (3) 負(fù)載生成器收到環(huán)境模擬任務(wù),生成環(huán)境負(fù)載,發(fā)送給服務(wù)端的動(dòng)態(tài)變化控制器;

    (4) 動(dòng)態(tài)變化控制器調(diào)用負(fù)載執(zhí)行器對(duì)目標(biāo)服務(wù)器,即數(shù)據(jù)庫所在的機(jī)器,執(zhí)行環(huán)境負(fù)載,并控制環(huán)境負(fù)載的強(qiáng)度和執(zhí)行時(shí)長(zhǎng);

    (5) 運(yùn)行環(huán)境模擬負(fù)載期間,指標(biāo)收集器會(huì)收集監(jiān)控器返回的數(shù)據(jù)庫性能指標(biāo)及數(shù)據(jù)庫所在機(jī)器的資源消耗情況,并發(fā)送客戶端;

    (6) 每輪測(cè)試結(jié)束后,測(cè)試報(bào)告生成器會(huì)自動(dòng)輸出詳盡的測(cè)試報(bào)告,包括環(huán)境因素和數(shù)據(jù)庫系統(tǒng)性能.

    5 實(shí) 驗(yàn)

    5.1 實(shí)驗(yàn)環(huán)境

    實(shí)驗(yàn)共用了4 臺(tái)服務(wù)器,均安裝CentOS 7.9 操作系統(tǒng),并配備8 核CPU,32 GB 內(nèi)存,磁盤轉(zhuǎn)數(shù)15 000 r/min、容量130 GB 的硬盤和千兆網(wǎng).

    圖3 展示了實(shí)驗(yàn)集群部署情況.其中一臺(tái)服務(wù)器 (Machine A) 專用于評(píng)測(cè)環(huán)境模擬負(fù)載的性能.另外3 臺(tái)服務(wù)器同屬于另一個(gè)局域網(wǎng)并搭建分布式Kubernetes 集群,用于評(píng)測(cè)環(huán)境模擬負(fù)載對(duì)數(shù)據(jù)庫測(cè)試的有效性,分布式TiDB 數(shù)據(jù)庫[28]搭建在Kubernetes 集群上.該TiDB 數(shù)據(jù)庫包含1 個(gè)PD 節(jié)點(diǎn),1 個(gè)TiDB 計(jì)算節(jié)點(diǎn),3 個(gè)TiKV 節(jié)點(diǎn),每個(gè)數(shù)據(jù)庫節(jié)點(diǎn)安裝在不同的Kubernetes 容器中.PD 節(jié)點(diǎn)和TiDB 計(jì)算節(jié)點(diǎn)分別部署在不同的Kubernetes Follower 節(jié)點(diǎn)上,避免被Kubernetes 的主控組件搶占資源;3 個(gè)TiKV 節(jié)點(diǎn)各部署在不同的Kubernetes 節(jié)點(diǎn)上.

    圖3 實(shí)驗(yàn)集群部署Fig.3 Deployment of experimental cluster

    5.2 模擬占用硬件資源

    實(shí)驗(yàn)分別模擬占用CPU、內(nèi)存、磁盤和網(wǎng)絡(luò)資源,展示本文設(shè)計(jì)的環(huán)境模擬負(fù)載對(duì)模擬資源占用的準(zhǔn)確性,并與目前環(huán)境模擬方向最先進(jìn)的工作 (華東師范大學(xué)數(shù)據(jù)學(xué)院研發(fā)的數(shù)據(jù)庫環(huán)境模擬工具,下文用作者名Chunxi 來代指該工具) 在達(dá)成模擬目標(biāo)的速度、對(duì)其余環(huán)境資源的占用程度等方面進(jìn)行對(duì)比.

    為了準(zhǔn)確展示環(huán)境模擬的效果,運(yùn)行環(huán)境模擬負(fù)載期間除了資源監(jiān)控工具nmon[29]以外,未在實(shí)驗(yàn)服務(wù)器中運(yùn)行與實(shí)驗(yàn)無關(guān)的軟件、程序.每次實(shí)驗(yàn)開始前,本工具會(huì)自動(dòng)啟動(dòng)nmon,并等待nmon 工具開始記錄指標(biāo)后再執(zhí)行資源模擬負(fù)載,防止nmon 因?yàn)閱?dòng)緩慢而采集不到實(shí)驗(yàn)前幾秒的資源消耗變化.nmon 是一個(gè)輕量級(jí)的資源監(jiān)控工具,運(yùn)行期間幾乎不影響CPU 和內(nèi)存使用率.但nmon 需要每秒統(tǒng)計(jì)各類資源的消耗情況,并輸出性能指標(biāo)到監(jiān)控結(jié)果文件中,這個(gè)過程本身會(huì)消耗少量磁盤I/O.為了消除nmon 對(duì)磁盤I/O 的影響,本工具在每次實(shí)驗(yàn)前,將虛擬文件系統(tǒng)tmpfs 掛載到指定目錄中,限制該文件目錄大小為1 MB.由于tmpfs 使用內(nèi)存來存儲(chǔ)數(shù)據(jù),nmon 每次輸出指標(biāo)數(shù)據(jù)都相當(dāng)于直接寫入內(nèi)存中,避免了對(duì)磁盤資源的使用,并且分配給nmon 使用的這1 MB 內(nèi)存大小只占于實(shí)驗(yàn)服務(wù)器內(nèi)存總量的十萬分之三,影響微小.

    5.2.1 模擬占用CPU

    本實(shí)驗(yàn)分別將模擬占用CPU 的目標(biāo)設(shè)置為系統(tǒng)CPU 總量的25%、50%、75%、87.5%.從圖4 可以看出,本工具可以快速實(shí)現(xiàn)對(duì)指定核數(shù)CPU 的穩(wěn)定消耗,即使對(duì)87.5% CPU 的占用也可以在2 s 內(nèi)實(shí)現(xiàn).而Chunxi 的工具在占用CPU 期間,CPU 占用率先超過了目標(biāo)占用率,幾秒后再回落到目標(biāo)占用率,并且在模擬期間的前半段中CPU 占用率有小幅波動(dòng),這是因?yàn)樵摴ぞ咭訨ava 程序的形式運(yùn)行,運(yùn)行過程會(huì)帶來少量額外的CPU 消耗.

    圖4 模擬占用CPUFig.4 Simulation of CPU usage

    圖5 展示了模擬CPU 的負(fù)載運(yùn)行期間對(duì)內(nèi)存的影響情況.本工作的負(fù)載對(duì)內(nèi)存的平均消耗只在0.4%以內(nèi),這是因?yàn)楸疚脑O(shè)計(jì)的負(fù)載以Shell 腳本的形式運(yùn)行,通過調(diào)用指定數(shù)量的單線程進(jìn)程做無限死循環(huán)的操作來快速占用CPU,這個(gè)方法幾乎不消耗內(nèi)存.而Chunxi 的程序以Java 程序的形式運(yùn)行,該負(fù)載執(zhí)行期間不停地進(jìn)行pai 計(jì)算,計(jì)算過程會(huì)使用緩存來記錄中間計(jì)算結(jié)果.所以當(dāng)需要占用的CPU 核數(shù)越多,該負(fù)載對(duì)內(nèi)存的占用也明顯增加,在占用87.5% CPU 期間甚至消耗了約50%內(nèi)存.兩個(gè)工具運(yùn)行過程中對(duì)磁盤I/O 幾乎無影響.

    圖5 占用CPU 的負(fù)載對(duì)內(nèi)存的平均影響Fig.5 Average impact of CPU workload on memory

    5.2.2 模擬占用內(nèi)存

    本實(shí)驗(yàn)分別模擬了占用25%、50%、75%、87.5%內(nèi)存的場(chǎng)景.如圖6 所示,本工具的負(fù)載實(shí)現(xiàn)內(nèi)存占用時(shí),將參數(shù)bs 設(shè)為512 K,實(shí)現(xiàn)目標(biāo)的效率很高,即使占用87.5%的內(nèi)存也只需要8 s,比Chunxi的工作負(fù)載 (花費(fèi)11 s) 實(shí)現(xiàn)得略快一些.圖7 反映了模擬內(nèi)存占用的負(fù)載運(yùn)行期間對(duì)CPU 的平均影響.本工作負(fù)載因?yàn)樵谙騼?nèi)存填充數(shù)據(jù)時(shí)使用了系統(tǒng)命令,這段時(shí)間內(nèi)會(huì)對(duì)系統(tǒng)內(nèi)核CPU 造成少量消耗;但填充內(nèi)存之后只保持著不釋放內(nèi)存的狀態(tài),在此期間不消耗CPU.所以本負(fù)載運(yùn)行期間對(duì)CPU 的平均消耗率很低,即使占用了87.5%內(nèi)存,對(duì)CPU 的平均消耗也不到3%.而Chunxi 的內(nèi)存占用工具是以C 語言程序的形式運(yùn)行的,在填充內(nèi)存期間對(duì)用戶態(tài)CPU 和系統(tǒng)內(nèi)核CPU 都造成了一定消耗;并且在占用內(nèi)存期間,該負(fù)載保持活躍地操作內(nèi)存,導(dǎo)致該程序?qū)PU 的消耗明顯,即使只占用25%內(nèi)存也消耗了超過10% CPU.兩個(gè)工具都采用直接對(duì)內(nèi)存寫入數(shù)據(jù)的方式來占據(jù)內(nèi)存,所以在工具運(yùn)行期間幾乎沒有消耗磁盤資源.

    圖6 模擬占用內(nèi)存Fig.6 Simulation of memory usage

    圖7 占用內(nèi)存的負(fù)載對(duì)CPU 的平均影響Fig.7 Average impact of memory workload on CPU

    5.2.3 模擬占用磁盤

    本實(shí)驗(yàn)分別模擬了占用20%、40%、60%、90%磁盤IOPS 的場(chǎng)景.如圖8 所示,本工具的負(fù)載基本可以準(zhǔn)確地模擬出20%、40%、60%磁盤IOPS;在模擬產(chǎn)生90%磁盤IOPS 時(shí),也許因?yàn)樘芗拇疟P操作本身會(huì)給磁盤帶來壓力,使得每次I/O 操作的時(shí)間發(fā)生波動(dòng),所以負(fù)載剛開始運(yùn)行時(shí)的模擬效果不太準(zhǔn)確,到中、后期模擬的IOPS 變?yōu)槠椒€(wěn),并符合模擬目標(biāo).由于本工作負(fù)載直接對(duì)磁盤進(jìn)行操作,工具運(yùn)行期間對(duì)內(nèi)存幾乎無消耗.Chunxi 的負(fù)載運(yùn)行時(shí)會(huì)占用一定程度的IOPS,但是由于該工作無法保證對(duì)每個(gè)數(shù)據(jù)塊的操作都在一次I/O 中完成,并且在負(fù)載設(shè)計(jì)中未規(guī)避對(duì)內(nèi)存的使用,導(dǎo)致該負(fù)載對(duì)指定強(qiáng)度的IOPS 的占用完全不準(zhǔn)確,所以該工具不適合用于模擬磁盤IOPS.

    圖8 模擬占用磁盤IOPSFig.8 Simulation of disk IOPS usage

    圖9 和圖10 分別展示了占用IOPS 期間系統(tǒng)中CPU 平均使用率、內(nèi)存使用率.本工具運(yùn)行期間避免使用文件系統(tǒng)緩存,所以運(yùn)行期間對(duì)CPU 消耗微小,并且?guī)缀醪皇褂脙?nèi)存.而Chunxi 的工具在運(yùn)行過程中大量使用了內(nèi)存,這會(huì)觸發(fā)大量的系統(tǒng)調(diào)用,進(jìn)而導(dǎo)致CPU 的使用率也較高.

    圖9 占用磁盤IOPS 對(duì)CPU 的平均影響Fig.9 Average impact of disk IOPS workload on CPU

    圖10 占用磁盤IOPS 對(duì)內(nèi)存的平均影響Fig.10 Average impact of disk IOPS workload on memory

    5.2.4 模擬網(wǎng)絡(luò)環(huán)境

    本工作和Chunxi 的工作都能模擬網(wǎng)絡(luò)環(huán)境,但實(shí)現(xiàn)的方式不同: 本工作通過直接控制機(jī)器網(wǎng)卡,實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)帶寬的限制;而對(duì)比工作通過使用Java 程序在兩臺(tái)服務(wù)器間保持傳輸數(shù)據(jù)以達(dá)成占用網(wǎng)絡(luò)帶寬.為了更直觀地比較兩個(gè)工具對(duì)網(wǎng)絡(luò)帶寬的影響效果,在運(yùn)行本工具前先在實(shí)驗(yàn)服務(wù)器與另一臺(tái)服務(wù)器之間保持傳輸數(shù)據(jù),方便監(jiān)控工具記錄工具啟動(dòng)后系統(tǒng)中網(wǎng)絡(luò)帶寬的變化;而在用Chunxi的工具做實(shí)驗(yàn)時(shí),直接用監(jiān)控工具記錄系統(tǒng)中網(wǎng)絡(luò)帶寬的變化情況.

    實(shí)驗(yàn)比較了兩個(gè)工具運(yùn)行期間網(wǎng)絡(luò)帶寬的變化情況,以此來反映兩個(gè)工具對(duì)網(wǎng)絡(luò)帶寬占用的效果.圖11 展示了影響20%、40%、60%、90%網(wǎng)絡(luò)帶寬時(shí),系統(tǒng)中網(wǎng)絡(luò)帶寬的變化情況.本工具通過直接對(duì)系統(tǒng)網(wǎng)卡施加限制,達(dá)成目標(biāo)環(huán)境的效率快,在2 s 內(nèi)都能實(shí)現(xiàn)需要模擬的目標(biāo)值,并且模擬出了穩(wěn)定的網(wǎng)絡(luò)環(huán)境.Chunxi 的工具通過不停在兩臺(tái)服務(wù)器間傳輸數(shù)據(jù)來實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)帶寬的占用.該程序調(diào)用了Netty 技術(shù),需要花費(fèi)一點(diǎn)時(shí)間等待兩臺(tái)服務(wù)器間建立通信.該工具執(zhí)行期間,占用的網(wǎng)絡(luò)帶寬大小發(fā)生明顯波動(dòng).這也許是因?yàn)樵摴ぞ咴诜?wù)器間傳輸數(shù)據(jù)過程中遭遇了通道阻塞,導(dǎo)致部分?jǐn)?shù)據(jù)無法被及時(shí)傳輸.

    圖11 模擬影響網(wǎng)絡(luò)帶寬Fig.11 Simulation of network bandwidth usage

    圖12 反映了運(yùn)行環(huán)境負(fù)載期間系統(tǒng)中CPU 的變化情況.本工具直接對(duì)系統(tǒng)網(wǎng)卡施加限制,這個(gè)方法幾乎不會(huì)影響其他硬件資源的使用.由于測(cè)試本負(fù)載期間在兩臺(tái)服務(wù)器間保持傳輸數(shù)據(jù),這本身會(huì)帶來輕微的CPU 消耗,所以單獨(dú)運(yùn)行本工具時(shí)的CPU 使用率會(huì)比圖中記錄的使用率更低一些.而Chunxi 的工具通過執(zhí)行調(diào)用了Netty 技術(shù)的Java 程序來實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)資源的占用.該負(fù)載在運(yùn)行期間需要密集地計(jì)算要傳輸數(shù)據(jù)的大小,因此,網(wǎng)絡(luò)模擬的工作負(fù)載對(duì) CPU 有較明顯影響.兩個(gè)工具運(yùn)行過程中對(duì)磁盤I/O 幾乎無影響.

    圖12 模擬網(wǎng)絡(luò)環(huán)境的負(fù)載對(duì)CPU 的平均影響Fig.12 Average impact of network bandwidth workload on CPU

    5.3 動(dòng)態(tài)變化的環(huán)境模擬

    實(shí)驗(yàn)?zāi)M了自定義的環(huán)境場(chǎng)景,展示了本工具對(duì)動(dòng)態(tài)變化環(huán)境的模擬效果,模擬場(chǎng)景包含常規(guī)運(yùn)行環(huán)境和極端運(yùn)行環(huán)境,模擬資源包含硬件資源、軟件資源.

    本實(shí)驗(yàn)在部署于Kubernetes 集群的分布式TiDB 數(shù)據(jù)庫中執(zhí)行,數(shù)據(jù)庫節(jié)點(diǎn)部署在Kubernetes集群的容器內(nèi),部署情況如圖2 所示.其中PD-0 是調(diào)度節(jié)點(diǎn),負(fù)責(zé)數(shù)據(jù)庫集群的資源調(diào)度;3 個(gè)TiKV 節(jié)點(diǎn)都是數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn);TiDB-0 是計(jì)算節(jié)點(diǎn),負(fù)責(zé)向調(diào)度節(jié)點(diǎn)請(qǐng)求數(shù)據(jù)的存儲(chǔ)位置,再向存儲(chǔ)節(jié)點(diǎn)請(qǐng)求數(shù)據(jù),最后將處理結(jié)果返回給客戶端.

    本實(shí)驗(yàn)檢驗(yàn)了TiDB 數(shù)據(jù)庫在運(yùn)行TPC-C[30]負(fù)載期間遭遇各類環(huán)境模擬負(fù)載時(shí)發(fā)生的性能變化.實(shí)驗(yàn)使用SF=90 的TPC-C 負(fù)載,每次實(shí)驗(yàn)執(zhí)行TPC-C 負(fù)載400 s,共有90 個(gè)線程并發(fā)執(zhí)行TPC-C負(fù)載,每個(gè)線程每秒發(fā)送10 000 個(gè)事務(wù)處理請(qǐng)求.在TPC-C 負(fù)載運(yùn)行120 s 后開始執(zhí)行環(huán)境模擬負(fù)載.實(shí)驗(yàn)一共進(jìn)行了30 次,最終結(jié)果取平均值.

    5.3.1 動(dòng)態(tài)環(huán)境模擬負(fù)載

    為配合環(huán)境模擬工具的使用,本工作設(shè)計(jì)了一套環(huán)境負(fù)載描述語言,讓用戶更加方便、靈活地實(shí)現(xiàn)自定義環(huán)境場(chǎng)景的模擬.

    由于TPC-C 的各類事務(wù)中包含密集的讀、寫操作,執(zhí)行TPC-C 負(fù)載時(shí)TiDB 需要頻繁地與PD和TiKV 進(jìn)行網(wǎng)絡(luò)通信來請(qǐng)求數(shù)據(jù),TiKV 上會(huì)有較大的磁盤操作壓力.本實(shí)驗(yàn)針對(duì)這些負(fù)載行為特征,使用環(huán)境負(fù)載描述語言書寫了一份動(dòng)態(tài)環(huán)境模擬的案例,內(nèi)容見表4.該負(fù)載包含2 個(gè)并發(fā)子塊的并發(fā)執(zhí)行負(fù)載,包含2 個(gè)并發(fā)子塊的并發(fā)執(zhí)行負(fù)載.不同并發(fā)子塊間的負(fù)載會(huì)并發(fā)執(zhí)行,并發(fā)子塊內(nèi)的負(fù)載內(nèi)容會(huì)按行順序執(zhí)行.表4 的行2 到行4 是第一個(gè)并發(fā)子塊的內(nèi)容,分別執(zhí)行占用tikv-0 所在容器的CPU、tikv-1 所在容器的磁盤讀I/O、終止tikv-1 的進(jìn)程;行6 到行8 是第二個(gè)并發(fā)子塊的內(nèi)容,分別要執(zhí)行限制tidb-0 所在容器的網(wǎng)絡(luò)帶寬、占用tikv-2 所在容器的磁盤讀I/O,終止tikv-2 進(jìn)程.

    表4 動(dòng)態(tài)環(huán)境模擬負(fù)載Tab.4 Dynamic environment simulation workload

    5.3.2 數(shù)據(jù)庫性能變化

    本實(shí)驗(yàn)將注入環(huán)境模擬負(fù)載前數(shù)據(jù)庫吞吐量的峰值視為100%.注入環(huán)境負(fù)載期間,數(shù)據(jù)庫的性能變化如圖13 所示.

    圖13 TiDB 數(shù)據(jù)庫的性能變化Fig.13 Performance changes of TiDB database

    運(yùn)行環(huán)境模擬負(fù)載的前30 s (圖13 的120~ 150 s),由于環(huán)境負(fù)載占用了7 核CPU (系統(tǒng)CPU 總核數(shù)的87.5%),同時(shí)限制網(wǎng)絡(luò)帶寬為原始大小的80%,在此期間數(shù)據(jù)庫的平均吞吐量下降到約10%;之后的30 s,環(huán)境負(fù)載對(duì)CPU 的占用減少到4 核,對(duì)網(wǎng)絡(luò)帶寬的限制放寬到原始帶寬大小的90%,期間數(shù)據(jù)庫的平均吞吐量回升到50%左右;后30 s,環(huán)境負(fù)載對(duì)CPU 的占用減少到2 核,但是限制網(wǎng)絡(luò)帶寬大小為原始大小的10%,數(shù)據(jù)庫的吞吐量驟降到10%.這驗(yàn)證了本工具可以模擬無故障情況下的常規(guī)運(yùn)行環(huán)境,可幫助測(cè)試數(shù)據(jù)庫服務(wù)性能的穩(wěn)定性,即數(shù)據(jù)庫系統(tǒng)服務(wù)質(zhì)量受部署環(huán)境動(dòng)態(tài)變化的影響情況.

    對(duì)CPU 和網(wǎng)絡(luò)帶寬的消耗結(jié)束后,環(huán)境模擬負(fù)載開始占用磁盤的讀I/O (圖13 的210~ 240 s),首先占用3 000 IOPS (約是磁盤IOPS 上限的60%),期間數(shù)據(jù)庫的性能只有40%左右,后30 s 內(nèi),環(huán)境模擬負(fù)載只占用1 000 IOPS (約是磁盤IOPS 上限的20%),期間數(shù)據(jù)庫的性能恢復(fù)到原吞吐峰值的65%左右.這說明當(dāng)可使用的磁盤資源不足時(shí),數(shù)據(jù)庫處理磁盤操作密集型負(fù)載的速度會(huì)被限制.

    占用磁盤的讀I/O 結(jié)束后,環(huán)境模擬負(fù)載將tikv-1 和tikv-2 的進(jìn)程終止.TiDB 數(shù)據(jù)庫花費(fèi)約30 s(圖13 的270~ 300 s) 將被終止的tikv 自動(dòng)重啟,在進(jìn)程恢復(fù)期間數(shù)據(jù)庫的吞吐量為0,說明對(duì)事務(wù)的處理被迫中止;tikv 進(jìn)程恢復(fù)后,數(shù)據(jù)庫的性能逐漸回升,在70 s 后大致恢復(fù)到環(huán)境模擬負(fù)載執(zhí)行前的性能水平.這驗(yàn)證了本工具可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫進(jìn)程等軟件資源的破壞,可模擬極端的運(yùn)行場(chǎng)景,可以幫助測(cè)試數(shù)據(jù)庫運(yùn)行的高可用性和容錯(cuò)性.

    6 結(jié) 論

    本文分析了數(shù)據(jù)庫在開放環(huán)境下運(yùn)行可能會(huì)遇到的關(guān)鍵問題,提出并定義了模擬環(huán)境狀態(tài)的有效負(fù)載,完成對(duì)環(huán)境狀態(tài)的建模,并基于Woodpecker 測(cè)試框架設(shè)計(jì)且實(shí)現(xiàn)了一個(gè)全面、通用的數(shù)據(jù)庫運(yùn)行環(huán)境動(dòng)態(tài)模擬工具,可用于評(píng)測(cè)數(shù)據(jù)庫系統(tǒng)服務(wù)的可靠性、穩(wěn)定性.該工具可生成對(duì)硬件資源以及針對(duì)數(shù)據(jù)庫軟件資源的指定強(qiáng)度的環(huán)境負(fù)載,達(dá)成對(duì)各類資源消耗場(chǎng)景的準(zhǔn)確模擬.本工具可以方便用戶高效地實(shí)現(xiàn)自定義環(huán)境負(fù)載,降低數(shù)據(jù)庫測(cè)試工作難度,實(shí)驗(yàn)驗(yàn)證了其優(yōu)越性.

    本文針對(duì)數(shù)據(jù)庫外部的運(yùn)行環(huán)境設(shè)計(jì)了這個(gè)環(huán)境模擬工具,但數(shù)據(jù)庫內(nèi)部的運(yùn)行環(huán)境也是高度復(fù)雜,有研究、模擬的價(jià)值.今后會(huì)將數(shù)據(jù)庫內(nèi)部的運(yùn)行環(huán)境模擬作為未來工作,進(jìn)一步擴(kuò)展該環(huán)境模擬工具.

    猜你喜歡
    網(wǎng)絡(luò)帶寬磁盤內(nèi)存
    解決Windows磁盤簽名沖突
    電腦愛好者(2019年2期)2019-10-30 03:45:31
    “春夏秋冬”的內(nèi)存
    修改磁盤屬性
    如何提升高帶寬用戶的感知度
    科技傳播(2017年14期)2017-08-22 02:39:36
    磁盤組群組及iSCSI Target設(shè)置
    創(chuàng)建VSAN群集
    合理配置QoS改善校園網(wǎng)絡(luò)環(huán)境
    淺析泰州電視臺(tái)超大型高清非編網(wǎng)建設(shè)
    經(jīng)典路由協(xié)議在戰(zhàn)場(chǎng)環(huán)境下的仿真與評(píng)測(cè)
    基于內(nèi)存的地理信息訪問技術(shù)
    一边摸一边抽搐一进一小说| 波多野结衣巨乳人妻| 天天一区二区日本电影三级| 人人妻人人澡欧美一区二区| 国产三级黄色录像| 久久久久国内视频| svipshipincom国产片| 欧美日韩国产亚洲二区| 国产高潮美女av| 久久精品aⅴ一区二区三区四区| 看免费av毛片| 欧美乱色亚洲激情| 午夜影院日韩av| 变态另类丝袜制服| 午夜免费激情av| 午夜福利成人在线免费观看| 欧美乱码精品一区二区三区| 国产三级中文精品| 露出奶头的视频| 午夜精品在线福利| 亚洲在线自拍视频| 在线观看66精品国产| 巨乳人妻的诱惑在线观看| 淫秽高清视频在线观看| 精品一区二区三区四区五区乱码| 精品国产乱子伦一区二区三区| 国产成+人综合+亚洲专区| 欧美一区二区精品小视频在线| 亚洲片人在线观看| 一个人免费在线观看电影 | 国产亚洲精品一区二区www| 久久久久久人人人人人| 99在线人妻在线中文字幕| 一个人观看的视频www高清免费观看 | 在线观看日韩欧美| 啦啦啦韩国在线观看视频| 中文亚洲av片在线观看爽| 97人妻精品一区二区三区麻豆| 久久天堂一区二区三区四区| 亚洲专区中文字幕在线| 神马国产精品三级电影在线观看| 久久欧美精品欧美久久欧美| 亚洲真实伦在线观看| 亚洲精品乱码久久久v下载方式 | 亚洲成a人片在线一区二区| 免费在线观看成人毛片| 欧美极品一区二区三区四区| 亚洲av成人精品一区久久| 午夜久久久久精精品| 日韩欧美国产在线观看| 国产伦精品一区二区三区四那| 国产aⅴ精品一区二区三区波| 欧美日韩亚洲国产一区二区在线观看| www.精华液| 久久伊人香网站| 国产高清videossex| 中文在线观看免费www的网站| 欧洲精品卡2卡3卡4卡5卡区| 国产精品一区二区精品视频观看| 午夜a级毛片| 日日干狠狠操夜夜爽| 首页视频小说图片口味搜索| 天天一区二区日本电影三级| 亚洲美女视频黄频| 亚洲精品久久国产高清桃花| 91老司机精品| 一进一出抽搐gif免费好疼| 99精品欧美一区二区三区四区| 夜夜爽天天搞| 久久国产精品人妻蜜桃| 免费在线观看影片大全网站| 亚洲av日韩精品久久久久久密| 美女cb高潮喷水在线观看 | 亚洲国产欧洲综合997久久,| 欧美日韩一级在线毛片| 色综合婷婷激情| 国产乱人视频| 香蕉丝袜av| 桃色一区二区三区在线观看| 久久久久国产精品人妻aⅴ院| 女人高潮潮喷娇喘18禁视频| 黄频高清免费视频| 欧美中文综合在线视频| 亚洲熟女毛片儿| 国产91精品成人一区二区三区| 久久久久久久精品吃奶| 中文在线观看免费www的网站| 亚洲国产精品合色在线| 精品国产美女av久久久久小说| 亚洲精品中文字幕一二三四区| 女警被强在线播放| 亚洲专区字幕在线| 热99在线观看视频| 给我免费播放毛片高清在线观看| 91老司机精品| 日韩欧美国产一区二区入口| 国产成人精品久久二区二区91| 在线免费观看不下载黄p国产 | 午夜福利免费观看在线| 免费看日本二区| 亚洲最大成人中文| 国产精品一及| 久久久色成人| 9191精品国产免费久久| avwww免费| 18美女黄网站色大片免费观看| 午夜福利成人在线免费观看| 午夜两性在线视频| 精品久久久久久,| 在线永久观看黄色视频| av在线天堂中文字幕| 国产精品 国内视频| 麻豆国产av国片精品| 首页视频小说图片口味搜索| 99久久精品一区二区三区| 亚洲va日本ⅴa欧美va伊人久久| 99国产精品一区二区三区| 亚洲人成网站在线播放欧美日韩| 精品人妻1区二区| 国产精品香港三级国产av潘金莲| 亚洲熟妇熟女久久| 中国美女看黄片| 黄色片一级片一级黄色片| 免费看日本二区| 久久热在线av| 欧美不卡视频在线免费观看| 午夜福利在线在线| 亚洲18禁久久av| 90打野战视频偷拍视频| 精品欧美国产一区二区三| 久久久久性生活片| 怎么达到女性高潮| 成人国产综合亚洲| 国产av在哪里看| 欧美午夜高清在线| 亚洲精品中文字幕一二三四区| 99久久无色码亚洲精品果冻| 一本精品99久久精品77| 国产爱豆传媒在线观看| 91av网站免费观看| 制服人妻中文乱码| 午夜视频精品福利| 日韩欧美免费精品| 亚洲天堂国产精品一区在线| 伊人久久大香线蕉亚洲五| 久久中文字幕人妻熟女| 99热这里只有精品一区 | 国产欧美日韩精品亚洲av| 在线观看免费午夜福利视频| 成人高潮视频无遮挡免费网站| 亚洲成人中文字幕在线播放| 欧美成狂野欧美在线观看| 99久久精品一区二区三区| 精品人妻1区二区| 最近最新中文字幕大全免费视频| 久久热在线av| 2021天堂中文幕一二区在线观| 成在线人永久免费视频| 99热这里只有精品一区 | 久久精品综合一区二区三区| 亚洲av电影不卡..在线观看| 亚洲成人久久性| 俄罗斯特黄特色一大片| 男女那种视频在线观看| 日韩人妻高清精品专区| 啪啪无遮挡十八禁网站| 欧美一级a爱片免费观看看| 男人舔女人的私密视频| 嫩草影院入口| 小蜜桃在线观看免费完整版高清| 啦啦啦免费观看视频1| 最近最新免费中文字幕在线| 一区二区三区国产精品乱码| 久久精品国产亚洲av香蕉五月| 日本 欧美在线| 人妻丰满熟妇av一区二区三区| av在线蜜桃| 淫秽高清视频在线观看| 一本精品99久久精品77| 日韩精品青青久久久久久| 国产黄色小视频在线观看| 欧美国产日韩亚洲一区| 亚洲真实伦在线观看| 99久久无色码亚洲精品果冻| 亚洲av片天天在线观看| 国产免费av片在线观看野外av| 嫁个100分男人电影在线观看| 黑人欧美特级aaaaaa片| 久久国产乱子伦精品免费另类| 最近最新中文字幕大全免费视频| 国产在线精品亚洲第一网站| 亚洲国产精品999在线| 精品久久久久久久末码| 韩国av一区二区三区四区| 一区福利在线观看| 一进一出抽搐动态| 中文亚洲av片在线观看爽| 欧美日韩中文字幕国产精品一区二区三区| 欧美成人免费av一区二区三区| 老司机在亚洲福利影院| 一个人免费在线观看的高清视频| 少妇的丰满在线观看| 小说图片视频综合网站| 成年女人永久免费观看视频| 精品久久久久久成人av| 此物有八面人人有两片| 国产精品久久视频播放| 可以在线观看毛片的网站| 欧美av亚洲av综合av国产av| 欧美日韩一级在线毛片| 欧美日韩综合久久久久久 | 老司机福利观看| 国产一级毛片七仙女欲春2| 极品教师在线免费播放| 制服人妻中文乱码| 亚洲乱码一区二区免费版| 亚洲精华国产精华精| 欧美最黄视频在线播放免费| 亚洲美女视频黄频| 欧美丝袜亚洲另类 | 亚洲精华国产精华精| 国产av麻豆久久久久久久| 99国产极品粉嫩在线观看| 老鸭窝网址在线观看| 一级毛片女人18水好多| 啦啦啦免费观看视频1| 精品欧美国产一区二区三| 亚洲专区字幕在线| 亚洲精品美女久久久久99蜜臀| 三级毛片av免费| 国产精品1区2区在线观看.| 国产亚洲欧美在线一区二区| 久久伊人香网站| 成人国产一区最新在线观看| 午夜福利视频1000在线观看| 精品福利观看| 国产精品爽爽va在线观看网站| 中出人妻视频一区二区| 18禁观看日本| 两性夫妻黄色片| 国产午夜精品论理片| 美女黄网站色视频| 国产成人啪精品午夜网站| 91字幕亚洲| 亚洲黑人精品在线| netflix在线观看网站| 91麻豆精品激情在线观看国产| 国产美女午夜福利| 精品一区二区三区视频在线观看免费| 视频区欧美日本亚洲| 午夜成年电影在线免费观看| 国产av在哪里看| 美女cb高潮喷水在线观看 | 最近最新免费中文字幕在线| 欧美绝顶高潮抽搐喷水| or卡值多少钱| 精品国产乱子伦一区二区三区| 人人妻人人澡欧美一区二区| 熟女人妻精品中文字幕| 黄色日韩在线| 狠狠狠狠99中文字幕| 日韩大尺度精品在线看网址| 男人舔女人下体高潮全视频| 又爽又黄无遮挡网站| 亚洲中文字幕一区二区三区有码在线看 | 精品久久久久久成人av| 无遮挡黄片免费观看| 亚洲欧美日韩高清专用| 久久香蕉精品热| 一夜夜www| 人妻丰满熟妇av一区二区三区| 精品久久久久久,| 最近在线观看免费完整版| 熟妇人妻久久中文字幕3abv| 精华霜和精华液先用哪个| 亚洲黑人精品在线| 成熟少妇高潮喷水视频| 熟妇人妻久久中文字幕3abv| 国产蜜桃级精品一区二区三区| 精品欧美国产一区二区三| 亚洲一区二区三区不卡视频| 国内少妇人妻偷人精品xxx网站 | 国产激情偷乱视频一区二区| 精品乱码久久久久久99久播| 99久久成人亚洲精品观看| 久久国产乱子伦精品免费另类| 午夜福利视频1000在线观看| 变态另类成人亚洲欧美熟女| 啪啪无遮挡十八禁网站| 在线十欧美十亚洲十日本专区| 丁香欧美五月| 亚洲国产欧美一区二区综合| 性欧美人与动物交配| 亚洲色图av天堂| 精品国产三级普通话版| 国模一区二区三区四区视频 | 国产精品98久久久久久宅男小说| 九九久久精品国产亚洲av麻豆 | 国产精品野战在线观看| 日本与韩国留学比较| 亚洲精华国产精华精| 99久久成人亚洲精品观看| 亚洲熟女毛片儿| 巨乳人妻的诱惑在线观看| 黄频高清免费视频| 色av中文字幕| 我的老师免费观看完整版| 亚洲熟妇熟女久久| av片东京热男人的天堂| 超碰成人久久| 亚洲片人在线观看| 国产亚洲精品久久久com| 日日夜夜操网爽| 亚洲精品在线观看二区| 搡老妇女老女人老熟妇| 亚洲第一电影网av| 身体一侧抽搐| 国内毛片毛片毛片毛片毛片| www.熟女人妻精品国产| 亚洲 欧美 日韩 在线 免费| 久久久久久国产a免费观看| 日韩欧美一区二区三区在线观看| 欧美av亚洲av综合av国产av| 免费观看人在逋| 校园春色视频在线观看| 手机成人av网站| 亚洲激情在线av| 国产欧美日韩一区二区精品| 欧美高清成人免费视频www| 啦啦啦免费观看视频1| 黄片大片在线免费观看| 日韩大尺度精品在线看网址| 欧美日韩综合久久久久久 | 久久精品人妻少妇| 99国产精品一区二区蜜桃av| 中文字幕最新亚洲高清| 欧美日本亚洲视频在线播放| 国产69精品久久久久777片 | 美女扒开内裤让男人捅视频| 亚洲国产精品sss在线观看| 夜夜夜夜夜久久久久| 此物有八面人人有两片| 欧美色欧美亚洲另类二区| 神马国产精品三级电影在线观看| 黄色片一级片一级黄色片| 成人av一区二区三区在线看| 精品欧美国产一区二区三| 午夜福利在线观看免费完整高清在 | 国产精品久久久av美女十八| 国产精品亚洲av一区麻豆| 精品人妻1区二区| 亚洲人成伊人成综合网2020| 欧美日本亚洲视频在线播放| 狂野欧美激情性xxxx| 午夜福利18| xxxwww97欧美| 亚洲自拍偷在线| 成年免费大片在线观看| 亚洲国产精品999在线| 少妇的丰满在线观看| 亚洲国产精品999在线| 性欧美人与动物交配| 精品久久久久久,| 女人被狂操c到高潮| 久久人人精品亚洲av| 欧美色欧美亚洲另类二区| 人人妻人人澡欧美一区二区| 精品久久蜜臀av无| 国产主播在线观看一区二区| 亚洲第一电影网av| 亚洲精品色激情综合| 国产在线精品亚洲第一网站| 国产黄a三级三级三级人| 日日夜夜操网爽| 亚洲中文av在线| 日日摸夜夜添夜夜添小说| 国产精品日韩av在线免费观看| 夜夜躁狠狠躁天天躁| 美女高潮喷水抽搐中文字幕| 99精品在免费线老司机午夜| 九九热线精品视视频播放| 在线国产一区二区在线| 午夜亚洲福利在线播放| 免费无遮挡裸体视频| 嫩草影院入口| 午夜福利在线观看免费完整高清在 | 国产欧美日韩一区二区三| 亚洲天堂国产精品一区在线| 亚洲av成人av| 亚洲国产欧美网| 舔av片在线| 中文资源天堂在线| 51午夜福利影视在线观看| 国产毛片a区久久久久| 欧美在线一区亚洲| 在线a可以看的网站| 久久久久国内视频| 悠悠久久av| bbb黄色大片| 日本五十路高清| 欧美黄色淫秽网站| 国产高清激情床上av| 天堂影院成人在线观看| 哪里可以看免费的av片| 韩国av一区二区三区四区| 欧美日韩乱码在线| 国产精品一区二区精品视频观看| 欧美xxxx黑人xx丫x性爽| 国产精品久久久久久久电影 | 九色国产91popny在线| 国产高清视频在线观看网站| 人人妻人人看人人澡| 91av网站免费观看| 亚洲精品一卡2卡三卡4卡5卡| 男女视频在线观看网站免费| 精品国产超薄肉色丝袜足j| 好男人在线观看高清免费视频| 成年女人看的毛片在线观看| 成人性生交大片免费视频hd| 人人妻,人人澡人人爽秒播| 欧美3d第一页| 久久99热这里只有精品18| 国产精品一区二区免费欧美| 亚洲av日韩精品久久久久久密| 国产精品野战在线观看| 91av网站免费观看| 在线观看66精品国产| 毛片女人毛片| 久久精品人妻少妇| 特大巨黑吊av在线直播| 国产精品免费一区二区三区在线| 狠狠狠狠99中文字幕| 在线国产一区二区在线| 18禁美女被吸乳视频| 免费在线观看视频国产中文字幕亚洲| 18禁美女被吸乳视频| 国产黄片美女视频| 午夜福利视频1000在线观看| 男人舔女人的私密视频| 欧美3d第一页| 男女做爰动态图高潮gif福利片| 国产成人啪精品午夜网站| 1024香蕉在线观看| 欧美最黄视频在线播放免费| 国产精品av久久久久免费| 国产精品乱码一区二三区的特点| 国产精品久久久久久人妻精品电影| 成人国产综合亚洲| 男人的好看免费观看在线视频| 亚洲人成网站在线播放欧美日韩| 久久性视频一级片| 国产高清视频在线播放一区| 日本撒尿小便嘘嘘汇集6| 99re在线观看精品视频| 观看免费一级毛片| 欧美性猛交黑人性爽| 亚洲va日本ⅴa欧美va伊人久久| 亚洲av熟女| 日本成人三级电影网站| 1024手机看黄色片| 午夜影院日韩av| 午夜成年电影在线免费观看| 亚洲国产欧洲综合997久久,| 亚洲午夜理论影院| 亚洲aⅴ乱码一区二区在线播放| 手机成人av网站| 黄片大片在线免费观看| 大型黄色视频在线免费观看| 91麻豆av在线| 亚洲av美国av| 99久久99久久久精品蜜桃| 久久久久久久精品吃奶| 人妻丰满熟妇av一区二区三区| 亚洲熟妇中文字幕五十中出| 91九色精品人成在线观看| cao死你这个sao货| 欧美日韩黄片免| 久久久久性生活片| 久久久久亚洲av毛片大全| 91麻豆av在线| 亚洲精品色激情综合| 亚洲午夜理论影院| 日本 欧美在线| 亚洲成人久久性| 国产精品亚洲av一区麻豆| 国产精品久久久久久精品电影| 亚洲av成人精品一区久久| 天天添夜夜摸| 亚洲精品一卡2卡三卡4卡5卡| 国产亚洲av嫩草精品影院| 波多野结衣高清无吗| 欧美另类亚洲清纯唯美| 免费高清视频大片| 国产免费男女视频| 男人的好看免费观看在线视频| 日韩欧美 国产精品| 少妇的丰满在线观看| 午夜免费观看网址| 国产成人精品久久二区二区免费| 51午夜福利影视在线观看| 中文亚洲av片在线观看爽| 非洲黑人性xxxx精品又粗又长| 丁香欧美五月| 久久久精品大字幕| 国产精品精品国产色婷婷| 免费av不卡在线播放| 99精品久久久久人妻精品| 国产野战对白在线观看| av黄色大香蕉| 九九热线精品视视频播放| 老司机在亚洲福利影院| 亚洲成人久久爱视频| 欧美在线黄色| 脱女人内裤的视频| 国产高清有码在线观看视频| 1000部很黄的大片| 成熟少妇高潮喷水视频| 变态另类丝袜制服| 国产精品一区二区三区四区免费观看 | 久9热在线精品视频| 天天躁狠狠躁夜夜躁狠狠躁| 亚洲av成人精品一区久久| 制服丝袜大香蕉在线| 亚洲电影在线观看av| 美女高潮的动态| 在线免费观看的www视频| 一本综合久久免费| 亚洲成av人片免费观看| 搡老岳熟女国产| 国内精品久久久久精免费| 色综合站精品国产| 无限看片的www在线观看| 搡老妇女老女人老熟妇| 成人高潮视频无遮挡免费网站| 亚洲欧美一区二区三区黑人| 久久久久国产精品人妻aⅴ院| 久久久久久久精品吃奶| 每晚都被弄得嗷嗷叫到高潮| 国产v大片淫在线免费观看| 岛国视频午夜一区免费看| 国产精品99久久久久久久久| 青草久久国产| 18禁黄网站禁片免费观看直播| 制服人妻中文乱码| 少妇裸体淫交视频免费看高清| 亚洲专区国产一区二区| 三级毛片av免费| 他把我摸到了高潮在线观看| 亚洲无线观看免费| 日本一二三区视频观看| 91av网一区二区| 国产成人av激情在线播放| 日日干狠狠操夜夜爽| 久久久久久九九精品二区国产| 精品久久蜜臀av无| 麻豆国产97在线/欧美| 一个人看的www免费观看视频| 99在线视频只有这里精品首页| 亚洲美女黄片视频| 怎么达到女性高潮| 国产精品久久久久久人妻精品电影| 老汉色∧v一级毛片| 亚洲欧美精品综合久久99| 19禁男女啪啪无遮挡网站| 曰老女人黄片| 精品一区二区三区四区五区乱码| 男女做爰动态图高潮gif福利片| 成人一区二区视频在线观看| 99久久无色码亚洲精品果冻| 国产精品影院久久| 观看免费一级毛片| 欧美成人性av电影在线观看| 日本免费一区二区三区高清不卡| 美女高潮的动态| 天堂√8在线中文| 亚洲av五月六月丁香网| 国产成人av教育| 黄色女人牲交| 国产精品亚洲美女久久久| 两性夫妻黄色片| 男人舔女人下体高潮全视频| 亚洲av片天天在线观看| 国产亚洲av嫩草精品影院| 国产不卡一卡二| 小蜜桃在线观看免费完整版高清| 久久亚洲真实| 2021天堂中文幕一二区在线观| 久久午夜综合久久蜜桃| 亚洲精品中文字幕一二三四区| 亚洲一区二区三区色噜噜| 一卡2卡三卡四卡精品乱码亚洲| 亚洲熟妇熟女久久| av天堂中文字幕网| 国产97色在线日韩免费| 99精品欧美一区二区三区四区| 亚洲自偷自拍图片 自拍| 1024手机看黄色片| 国产蜜桃级精品一区二区三区| 国产亚洲精品综合一区在线观看| 亚洲国产欧美一区二区综合| 人人妻人人澡欧美一区二区| 脱女人内裤的视频| 这个男人来自地球电影免费观看| 亚洲精品一区av在线观看| 怎么达到女性高潮| 18美女黄网站色大片免费观看| av天堂在线播放| 亚洲人成网站高清观看| 亚洲av第一区精品v没综合| 国产乱人视频| 两个人看的免费小视频| av视频在线观看入口| 99国产极品粉嫩在线观看| 啦啦啦观看免费观看视频高清| 最近最新中文字幕大全免费视频|