久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

用C語言寫一個零依賴日志解析工具:caveman的設(shè)計與實(shí)現(xiàn)

用C語言寫一個零依賴日志解析工具:caveman的設(shè)計與實(shí)現(xiàn) 1. 項(xiàng)目起底caveman到底在解決什么問題1.1 為什么叫cavemancaveman不是一個復(fù)古游戲也不是什么部落生存App這是我維護(hù)了大半年的一個命令行工具項(xiàng)目。名字聽起來確實(shí)像穴居人核心思路也刻意走原始路線用標(biāo)準(zhǔn)C寫一個零第三方依賴的日志解析與指標(biāo)聚合程序編譯出來只有一個可執(zhí)行文件扔到幾十臺只裝了最小化系統(tǒng)的老服務(wù)器上也能直接跑。最初觸發(fā)這個項(xiàng)目的是很現(xiàn)實(shí)的問題。團(tuán)隊里有一套Python寫的日志統(tǒng)計腳本看起來功能挺全但每次部署都像渡劫有的機(jī)器Python版本不對有的機(jī)器缺pip包有的機(jī)器因?yàn)榘踩呗圆蛔屇懵?lián)網(wǎng)裝東西。更麻煩的是腳本一跑就是兩三個小時中途內(nèi)存漲到2GB多經(jīng)常被OOM Killer干掉。我那時候就想到底有沒有一種方式能讓這種工具像cp、grep一樣拷過去就能用跑起來還不容易死。那次排查持續(xù)了一周最后我干脆決定自己動手。既然要避開解釋器、運(yùn)行時和包管理這些麻煩最直接的選擇就是C語言。于是caveman這個項(xiàng)目就誕生了目標(biāo)非常簡單一個二進(jìn)制處理完輸入就退出內(nèi)存占用可預(yù)測速度盡量快出錯時能夠給出明確提示而不會整機(jī)崩潰。1.2 需求清單的確認(rèn)任何項(xiàng)目動手之前需求不敲定后面一定會反復(fù)返工。caveman的第一版需求清單其實(shí)很短但每條都是從實(shí)際痛點(diǎn)里提煉出來的需求說明優(yōu)先級單一可執(zhí)行文件拷貝即用不依賴任何外部運(yùn)行時和動態(tài)庫極高啟動速度快冷啟動到開始處理數(shù)據(jù)不超過50ms高內(nèi)存可控處理1GB文件時峰值內(nèi)存不超過200MB高支持管道處理能從stdin讀入也能直接處理文件列表高輸出格式穩(wěn)定支持CSV和JSON兩種輸出方便下游腳本消費(fèi)中錯誤可診斷任何異常都能定位到具體的行號和狀態(tài)中這份清單看著簡單但后來每次做技術(shù)取舍我都會回頭對照它。要不要引入第三方解析庫不會破壞單一可執(zhí)行文件的需求。要不要用多線程并行處理暫緩因?yàn)槎嗑€程會把內(nèi)存峰值和調(diào)試成本都拉高。要不要支持復(fù)雜的表達(dá)式過濾不加那會模糊項(xiàng)目的邊界。定下需求之后整體方向就清晰了。這個工具的核心是一個狀態(tài)機(jī)驅(qū)動的流式解析器外加一個簡單但夠用的哈希表做聚合統(tǒng)計最后按固定格式輸出。整個過程不需要把整個文件讀進(jìn)內(nèi)存而是采用固定緩沖區(qū)的流式讀取逐塊處理逐行聚合。1.3 適用對象與場景caveman適合誰首先是天天跟日志、文本記錄打交道的運(yùn)維和后端開發(fā)者。比如你需要統(tǒng)計一天之內(nèi)某個業(yè)務(wù)接口的調(diào)用次數(shù)、異常碼分布、響應(yīng)耗時分位數(shù)但手頭只有一個解壓后的原始日志又不想費(fèi)勁去搭大數(shù)據(jù)平臺這種場景就很適合。其次它適合所有對部署環(huán)境有嚴(yán)格限制的場景。我已經(jīng)不止一次碰到客戶機(jī)器不允許安裝任何額外軟件包的情況甚至不保證有Python環(huán)境。這種時候一個編譯好的caveman可執(zhí)行文件比什么都好用直接scp上去就能跑跑完把結(jié)果拿回來機(jī)器上不留任何痕跡。如果你是一個對新工具持有好奇心愿意自己動手折騰的人也可以把它當(dāng)作一個學(xué)習(xí)案例。后面我會講到手寫狀態(tài)機(jī)解析、內(nèi)存池設(shè)計、哈希表沖突處理這些偏底層的細(xì)節(jié)思路可以遷移到很多其他語言的項(xiàng)目里。2. 整體設(shè)計與架構(gòu)決策2.1 技術(shù)選型為什么是C而不是Go或Rust決定用C語言不是因?yàn)槲移珢跜而是這個項(xiàng)目的需求恰好把C的劣勢都規(guī)避了又把C的優(yōu)勢發(fā)揮到極致。先說說為什么不用Go。Go的部署確實(shí)方便交叉編譯也是加分項(xiàng)但Go二進(jìn)制里塞了運(yùn)行時體積隨隨便便就上10MB。在追求“盡可能小”的場景里這多出來的體積不算致命可還有另外一個問題Go的GC會帶來不確定的停頓雖然通常影響不大但在處理超大日志時觀察過幾次內(nèi)存翻倍和GC暫停和我“內(nèi)存可控”的目標(biāo)有點(diǎn)沖突。Rust其實(shí)是不錯的選擇內(nèi)存安全、性能接近C而且cargo管理依賴很舒服。但Rust對編譯工具鏈的要求不低很多老服務(wù)器上的gcc版本不行rustup安裝又受網(wǎng)絡(luò)限制。做運(yùn)維工具的人都有個習(xí)慣能用現(xiàn)有環(huán)境輕松編譯的就選現(xiàn)有的不要為了一時舒服制造部署負(fù)擔(dān)。C語言就是那個“在任何一個機(jī)器上都大概率能編譯”的語言。標(biāo)準(zhǔn)C11加上POSIX接口只依賴libc和內(nèi)核編譯選項(xiàng)控制得當(dāng)連動態(tài)庫都可以不依賴。在嵌入式、容器、最小化Linux系統(tǒng)這些場景里C幾乎是唯一一個不太需要擔(dān)心“環(huán)境沒有它就跑不了”的語言。當(dāng)然選C等于把內(nèi)存管理的責(zé)任全部背到自己身上。這個代價不能忽視所以我專門設(shè)計了內(nèi)存池來集中管理內(nèi)存分配后面會詳細(xì)說。2.2 模塊劃分與數(shù)據(jù)流caveman的代碼結(jié)構(gòu)刻意做得非常簡單我不喜歡一個工具項(xiàng)目一上來就搞十幾個目錄。最終劃分成四個核心模塊main.c入口、命令行參數(shù)解析、頂層流程控制parser.c流式解析器負(fù)責(zé)把文本按行拆開并提取字段store.c聚合存儲層負(fù)責(zé)哈希表、內(nèi)存池和統(tǒng)計值更新report.c輸出層負(fù)責(zé)將結(jié)果寫成CSV或JSON這四個模塊之間只通過很小的幾個接口交互。main拿到命令行參數(shù)之后把輸入源統(tǒng)一抽象成一個“讀取器”。讀取器要么是open后的文件描述符要么直接是stdin解析器不關(guān)心數(shù)據(jù)從哪來只關(guān)心next()函數(shù)是否還能返回新的一行。這樣的分層帶來一個額外的好處測試的時候可以把任意一段文本通過管道喂進(jìn)去不用構(gòu)建復(fù)雜的測試文件系統(tǒng)。我在單元測試?yán)锎罅渴褂胑cho加管道的組合比如echo -e a\nb\nc | caveman --format csv測起來非常順手。數(shù)據(jù)流的方向是單向的一行文本進(jìn)入parser之后解析出鍵值對更新到store里。store里的數(shù)據(jù)最終由report讀取并格式化。全程沒有回調(diào)函數(shù)沒有復(fù)雜的事件循環(huán)就是一個簡單的線性流程。這種設(shè)計思路可能在一些人眼里過于樸素但恰恰是這種樸素讓問題定位變得特別容易。任何一個環(huán)節(jié)出問題只要追蹤一個方向就能找到根因。2.3 三個關(guān)鍵取舍第一個取舍是不用多線程。日志解析這個任務(wù)本質(zhì)上是IO密集和簡單計算密集的混合體理論上用多線程確實(shí)能提速。但我評估了一下復(fù)雜度多線程意味著要處理鎖競爭、線程池、任務(wù)隊列還要處理各個線程統(tǒng)計結(jié)果的合并。一旦引入這些內(nèi)存峰值會上去bug排查難度也會成倍增加。項(xiàng)目初版先跑通性能不夠再做多進(jìn)程也行反正數(shù)據(jù)可以分片。第二個取舍是不做異步IO。異步IO很時髦但對這個項(xiàng)目來說收益不大。我們用標(biāo)準(zhǔn)read/write配合一個64KB的緩沖區(qū)在絕大多數(shù)場景下已經(jīng)能吃掉磁盤的吞吐能力。真要做異步還得考慮不同平臺的多路復(fù)用機(jī)制差異這明顯違背了零負(fù)擔(dān)部署的初衷。第三個取舍是內(nèi)存池。C語言里malloc和free本身不慢但頻繁分配小塊內(nèi)存會出現(xiàn)碎片和性能抖動。對于解析日志這種模式每解析一行就有若干臨時字符串如果用malloc/free那調(diào)用次數(shù)會極其夸張。內(nèi)存池的做法是一次性向系統(tǒng)申請一大塊內(nèi)存內(nèi)部用游標(biāo)切分解析過程中產(chǎn)生的臨時對象全部從池子里分配任務(wù)結(jié)束直接把整塊內(nèi)存交還系統(tǒng)。省掉了free的逐個調(diào)用也避免了碎片的出現(xiàn)。需要強(qiáng)調(diào)一點(diǎn)內(nèi)存池不是所有情況的萬能藥。如果每個對象生命周期差異很大內(nèi)存池可能會造成巨大浪費(fèi)。但日志解析的特點(diǎn)是周期短、體量大、生命周期整齊所有臨時字符串都是活到當(dāng)前行處理完就不用了這正好匹配內(nèi)存池的長處。3. 實(shí)操過程從零構(gòu)建caveman核心3.1 工程骨架與構(gòu)建腳本我習(xí)慣新建項(xiàng)目時先把構(gòu)建腳本寫好哪怕是三四個源文件的小項(xiàng)目也要讓make build和make test能一鍵完成。caveman的目錄結(jié)構(gòu)很簡單caveman/ ├── src/ │ ├── main.c │ ├── parser.c │ ├── parser.h │ ├── store.c │ ├── store.h │ ├── report.c │ └── report.h ├── tests/ │ ├── run_tests.sh │ └── fixtures/ ├── Makefile └── README.mdMakefile寫得也比較克制沒有用autotools因?yàn)椴幌霝榱艘粋€單文件工具引入一整套構(gòu)建系統(tǒng)。下面是核心的構(gòu)建規(guī)則我做了個簡化版CC ? gcc CFLAGS ? -stdc11 -O2 -Wall -Wextra -fno-strict-aliasing LDFLAGS ? -static BIN : caveman SRC : $(wildcard src/*.c) OBJ : $(SRC:.c.o) all: $(BIN) $(BIN): $(OBJ) $(CC) $(CFLAGS) -o $ $^ $(LDFLAGS) %.o: %.c $(CC) $(CFLAGS) -c -o $ $ test: $(BIN) bash tests/run_tests.sh clean: rm -f $(OBJ) $(BIN)幾個值得注意的細(xì)節(jié)。第一-fno-strict-aliasing在C語言里基本屬于保險開關(guān)因?yàn)橛行├洗a在指針類型轉(zhuǎn)換上不夠嚴(yán)謹(jǐn)取消嚴(yán)格別名規(guī)則能減少莫名奇妙的優(yōu)化bug。第二-static這個選項(xiàng)會把libc靜態(tài)鏈接進(jìn)去生成的文件會稍微大一點(diǎn)但換來的是在目標(biāo)機(jī)器上不需要任何動態(tài)庫。對于caveman這種工具追求的就是極致的可移植性體積多幾百KB完全可以接受。編譯生成的二進(jìn)制在老服務(wù)器上實(shí)測大概是300KB左右這在今天動輒幾十MB的工具里面真的有點(diǎn)特殊的時代感。但就是這300KB解決了我們長久以來的部署難題。3.2 手寫狀態(tài)機(jī)解析器解析器是caveman最核心的部分也是最值得說的。如果考慮用正則表達(dá)式來解析日志那寫起來確實(shí)舒服但正則庫的依賴會打破零依賴原則而且正則引擎在處理特別長的行時存在災(zāi)難性回溯的風(fēng)險。對于一個需要長時間穩(wěn)定運(yùn)行的解析工具這種不確定性是不能接受的。所以我把解析器做成一個確定性的狀態(tài)機(jī)。以解析常見的訪問日志為例一條日志長這樣2025-01-15T10:24:3108:00 [INFO] user10086 api/order/detail code200 cost185ms我們需要提取時間、用戶ID、接口路徑、狀態(tài)碼和耗時。狀態(tài)機(jī)的思路是逐字符掃描把整個解析過程分為幾個明確的狀態(tài)STATE_TIME讀取時間字段遇到空格就切到下一個字段STATE_LEVEL讀日志級別遇到空格切換到字段掃描STATE_FIELD讀取keyvalue對遇到空格繼續(xù)下一對遇到換行結(jié)束本行核心代碼示意大致長這樣typedef enum { STATE_TIME, STATE_LEVEL, STATE_FIELD, STATE_DONE } ParseState; int parse_line(const char *line, size_t len, ParsedRecord *out) { ParseState state STATE_TIME; size_t i 0; Field cur {0}; while (i len state ! STATE_DONE) { char c line[i]; switch (state) { case STATE_TIME: if (c ) { state STATE_LEVEL; } break; case STATE_LEVEL: if (c ) { state STATE_FIELD; } break; case STATE_FIELD: if (c ) { cur.key_start field_start; } else if (c ) { commit_field(out, cur); state STATE_FIELD; field_start i 1; } else if (c \n) { commit_field(out, cur); state STATE_DONE; } break; default: break; } i; } return 0; }這段代碼是高度簡化后的示意圖真實(shí)實(shí)現(xiàn)里我會把字段名解析和值截取分開做還會處理轉(zhuǎn)義字符。但核心思想就是這個用狀態(tài)變量記住當(dāng)前在哪個階段每讀一個字符做一次判斷復(fù)雜度是O(n)理論上不會出現(xiàn)正則那樣回溯到指數(shù)級的情況。手寫狀態(tài)機(jī)的另一個好處是我可以精確控制哪些字符需要處理哪些可以直接跳過。比如解析大量日志時很多字段我們是根本不關(guān)心的狀態(tài)機(jī)可以不把它們的內(nèi)容復(fù)制到任何緩沖區(qū)里直接跳過只保留字段起止位置后面需要時再按需拷貝。這種零拷貝思路比正則表達(dá)式那種“匹配結(jié)果即復(fù)制”的方式高效得多。3.3 內(nèi)存池和哈希表設(shè)計之前提到內(nèi)存池是本項(xiàng)目控制內(nèi)存的關(guān)鍵。這里的實(shí)現(xiàn)思路并不復(fù)雜我用一個鏈?zhǔn)降拇髩K結(jié)構(gòu)每個塊默認(rèn)64KB塊內(nèi)用offset分配內(nèi)存塊用完就新開一個塊typedef struct PoolBlock { size_t used; size_t capacity; struct PoolBlock *next; char data[]; } PoolBlock; typedef struct { PoolBlock *head; size_t block_size; } Pool; void *pool_alloc(Pool *p, size_t size) { size (size 7) ~7; // 8字節(jié)對齊 PoolBlock *b p-head; if (b-used size b-capacity) { b create_block(p, max(p-block_size, size)); b-next p-head; p-head b; } void *ptr b-data b-used; b-used size; return ptr; }每次分配都從當(dāng)前塊的used游標(biāo)上切一塊出去不做單獨(dú)釋放。因?yàn)槿罩窘馕鰣鼍爸兴行枰A舻阶罱K報告里的數(shù)據(jù)只包括聚合鍵和累加值這些數(shù)據(jù)一旦確定就不會再改變所以不需要在任務(wù)結(jié)束前釋放某個單獨(dú)的字符串。整池銷毀時只需要遍歷一次鏈表把每個塊free掉就行。哈希表方面我也沒有引入任何外部哈希庫而是自己實(shí)現(xiàn)了一個鏈地址法的哈希表。鍵是一個字符串視圖也就是指針加長度而不是以\0結(jié)尾的字符串。這樣可以避免為了查詢在內(nèi)存池里額外復(fù)制一份同樣的字符串。哈希函數(shù)我選擇了FNV-1a這種哈希算法簡單、速度快而且在處理短字符串時分布非常均勻。查找過程是先通過哈希定位到桶再在桶內(nèi)鏈表中逐個比較長度和memcmp。因?yàn)檫@個場景的鍵通常比較短具體業(yè)務(wù)里一般也就幾十個不同字段桶里鏈表很短沖突基本可以忽略。但如果鍵數(shù)量非常多我會在初始化哈希表時設(shè)定較大的桶數(shù)比如默認(rèn)4096個桶在聚合數(shù)超過負(fù)載因子之后再動態(tài)擴(kuò)容。內(nèi)存池和哈希表組合的精妙之處在于整個程序在生命周期內(nèi)不會調(diào)用很多次系統(tǒng)分配函數(shù)從而避免內(nèi)存碎片。我曾在處理10GB日志時觀察過RSS曲線它的峰值很穩(wěn)定基本是一個平臺狀態(tài)而不是那種鋸齒形波動。3.4 參數(shù)解析與退出碼約定命令行參數(shù)解析部分是整個項(xiàng)目里最“無聊”的模塊但它直接決定了工具好不好用。caveman支持的參數(shù)不多這也是我刻意克制的結(jié)果caveman [-f input_file] [-o output_file] [--format csv|json] [--field TIME,CODE,COST] [--mode count|sum|avg]參數(shù)越少使用門檻越低也越不容易出錯。每個參數(shù)我都選擇了簡短且含義明確的命名而不是搞一堆縮寫。同時我還支持從環(huán)境變量讀取默認(rèn)參數(shù)這樣在腳本里可以將一些固定配置收斂。退出碼的約定也必須固定下來。0表示正常處理完畢1表示參數(shù)解析錯誤2表示輸入文件無法打開3表示解析過程中出現(xiàn)了無法跳過的致命錯誤。這個約定看著簡單但自動化腳本非常依賴它。比如在采集平臺里一旦某臺機(jī)器返回碼不是0調(diào)度器就能立刻知道任務(wù)失敗而不需要再去解析標(biāo)準(zhǔn)輸出里的錯誤信息。標(biāo)準(zhǔn)輸出只輸出正式結(jié)果錯誤信息全部走標(biāo)準(zhǔn)錯誤輸出。這也是一個小細(xì)節(jié)但直接影響下游腳本能否安全地把結(jié)果重定向到文件。如果你在日志里混入報錯信息那結(jié)果文件就會變成無法解析的垃圾。4. 常見問題與排坑記錄4.1 靜態(tài)編譯之后竟然還是缺依賴?yán)碚撋霞恿?static之后生成的二進(jìn)制就不依賴任何動態(tài)庫了但我在第一次部署時還是踩了坑拿到目標(biāo)機(jī)器上一跑提示Illegal instruction。排查了很久才發(fā)現(xiàn)問題出在編譯時的CPU指令集。編譯caveman的機(jī)器是較新的CPUgcc默認(rèn)會根據(jù)當(dāng)前機(jī)器的特性啟用一部分新指令集擴(kuò)展而目標(biāo)服務(wù)器的CPU比較老不支持這些指令于是一執(zhí)行就非法指令。解決辦法是在Makefile里明確指定編譯目標(biāo)平臺的最小子集CFLAGS -marchx86-64 -mtunegeneric這樣編譯器只會使用所有x86-64處理器都支持的基礎(chǔ)指令兼容性一下就上去了。后續(xù)我在給其他架構(gòu)編譯的時候也會檢查-march參數(shù)比如針對ARM平臺會改用-marcharmv7-a或者直接不指定。這個坑提醒我靜態(tài)鏈接解決的是運(yùn)行庫依賴但解決不了CPU指令集差異。在面向多環(huán)境的通用工具上寧可犧牲一點(diǎn)本地機(jī)器的性能也要保證生成二進(jìn)制在目標(biāo)環(huán)境能跑。4.2 大文件處理時的內(nèi)存水位突然升高有一段時間我持續(xù)觀測到caveman處理大文件時的內(nèi)存峰值不穩(wěn)定有時300MB有時600MB。一開始以為是哈希表擴(kuò)容導(dǎo)致但排查后發(fā)現(xiàn)真正的罪魁禍?zhǔn)资禽敵鰧?。原來的輸出邏輯是在所有行解析完成之后把整個報告一次性拼成一個巨大的字符串然后再一次性write出去。這個字符串的大小取決于聚合結(jié)果數(shù)量而當(dāng)unique鍵數(shù)量很多時內(nèi)存自然飆升。解決方式非常直接改成分塊寫入。每生成一批記錄就立刻調(diào)用write落盤并清空內(nèi)部緩沖區(qū)。因?yàn)閳蟾鏀?shù)據(jù)本身是順序遍歷哈希表產(chǎn)生的所以這不需要復(fù)雜的調(diào)度只需要在遍歷過程中維持一個小的寫緩沖比如32KB寫滿就flush一次。修改之后內(nèi)存峰值穩(wěn)定在180MB以內(nèi)即在處理10GB日志時也沒再出現(xiàn)過超出預(yù)期的情況。項(xiàng)目中凡是遇到內(nèi)存抖動的大概率都是在某個地方攢了大量的中間數(shù)據(jù)而不是真正的業(yè)務(wù)數(shù)據(jù)量太大。4.3 管道模式下stdin的數(shù)據(jù)怎么處理另一個容易出問題的是stdin輸入模式。如果用戶執(zhí)行cat file | caveman --format json程序是讀取標(biāo)準(zhǔn)輸入而不是直接從文件讀取。這本身沒問題但我在初版實(shí)現(xiàn)里沿用了普通文件的lseek來跳過無效頭部結(jié)果stdin不允許lseek直接返回ESPIPE報錯。這個問題讓測試腳本時斷時續(xù)后來我統(tǒng)一用一個輸入抽象層來解決。這個抽象層內(nèi)部維護(hù)一個當(dāng)前讀取方式標(biāo)志普通文件模式下可以使用pread或lseek管道模式下只能順序讀取并維護(hù)自己的offset狀態(tài)。這個調(diào)整的影響面不小因?yàn)樗偈刮抑匦率崂砹恕拜斎朐础边@個概念?,F(xiàn)在caveman不僅能讀普通文件和stdin還能通過文件描述符參數(shù)與上游進(jìn)程協(xié)作處理一些更復(fù)雜的管道場景。4.4 在CI流水線里的集成思路既然部署場景是自動化環(huán)境caveman自然也要能被CI流水線方便地使用。我在項(xiàng)目的tests目錄里寫了一個run_tests.sh把常規(guī)使用場景全部覆蓋成斷言式測試#!/bin/bash set -euo pipefail caveman_bin${1:-./caveman} printf user1 code200\nuser2 code500\nuser1 code200\n | \ $caveman_bin --field user,code --mode count --format csv /tmp/t1.csv test $(cat /tmp/t1.csv) $user,code,count\n1,200,2\n2,500,1 echo PASS: basic count aggregation這些測試在每次代碼變更后都會跑所以后續(xù)迭代一直沒有鬧出過什么大回歸。CI流水線里我把編譯環(huán)節(jié)拆成了兩步先做常規(guī)編譯再跑一次針對老CPU的兼容性編譯。只有兩步都通過才會生成release二進(jìn)制。5. 實(shí)測數(shù)據(jù)與個人經(jīng)驗(yàn)5.1 測試環(huán)境測試這組數(shù)據(jù)使用的是一臺很普通的4核8GB內(nèi)存虛擬機(jī)磁盤是普通SSD操作系統(tǒng)是Debian 11內(nèi)核版本5.10。對比對象是團(tuán)隊原來使用的Python腳本它用正則表達(dá)式逐行匹配把所有結(jié)果保存在字典里最后一次性打印。輸入數(shù)據(jù)是一份模擬的訪問日志共1000萬行大小約1.2GB。字段包括時間戳、用戶ID、接口路徑、狀態(tài)碼和耗時。聚合任務(wù)要求按狀態(tài)碼和接口路徑兩個維度統(tǒng)計調(diào)用次數(shù)和平均耗時。5.2 性能與資源占用對比指標(biāo)Python腳本caveman處理耗時約23分40秒約42秒峰值內(nèi)存2.1GB156MB依賴需Python3.8無啟動時間約0.45秒約3毫秒這個數(shù)據(jù)看起來差距非常大但實(shí)際測試并不意外。Python腳本在正則匹配和字典維護(hù)上有較大的開銷而且它把中間結(jié)果全部保留到字典中又疊加了對象頭信息的內(nèi)存放大。caveman走的是流式處理和緊湊的內(nèi)存池存儲邏輯更貼近底層性能自然占優(yōu)。耗時從十幾分鐘變成幾十秒對于每天需要跑好幾次統(tǒng)計的任務(wù)來說改善非常直觀。更重要的是內(nèi)存從2.1GB降到156MB這讓它能夠跑在一些配置很低的采集機(jī)器上不再會因?yàn)閮?nèi)存不足而被系統(tǒng)殺掉。5.3 哪些場景適合caveman從這半年多的使用經(jīng)驗(yàn)看caveman比較適合以下幾類場景第一是日志聚合。無論是Nginx訪問日志、應(yīng)用日志還是業(yè)務(wù)埋點(diǎn)日志只要格式相對固定caveman就能用很小的代價完成統(tǒng)計。對格式不規(guī)則的文本它的狀態(tài)機(jī)設(shè)計也能通過新增狀態(tài)分支來適應(yīng)。第二是數(shù)據(jù)清洗和簡單轉(zhuǎn)換。一些臨時性的文本處理任務(wù)如果把Python腳本部署到目標(biāo)機(jī)器環(huán)境實(shí)在太重。用caveman可以一次編譯到處運(yùn)行在處理大批量數(shù)據(jù)時還不容易卡死。第三是嵌入式或邊緣計算場景。那些機(jī)器資源非常緊張不僅是CPU和內(nèi)存連存儲空間都吝嗇。caveman一個300KB的二進(jìn)制放在任何地方都不會覺得占地方。不適用的場景也有。如果字段結(jié)構(gòu)高度動態(tài)每行格式都不一樣那狀態(tài)機(jī)寫起來會非常痛苦。這時候更通用的awk甚至Python反而是更好的選擇。另外如果需要實(shí)時監(jiān)聽并處理持續(xù)到達(dá)的數(shù)據(jù)流caveman的單次運(yùn)行模型也不合適它更適合批處理。5.4 一些額外的經(jīng)驗(yàn)體會整個caveman項(xiàng)目做下來我最大的體會是工具的價值常常不體現(xiàn)在功能多少上而體現(xiàn)在它能不能在特定環(huán)境里穩(wěn)定完成一件事。很多時候我們并不缺功能強(qiáng)大的軟件缺的是能放在任何機(jī)器上、不用折騰依賴、不會半路崩潰的小工具。如果你也想做一個類似的工具我建議從需求清單開始清晰寫下你的邊界條件。這個清單會在你頭腦發(fā)熱想加功能時幫你保持理智。另外C語言項(xiàng)目的內(nèi)存管理一定不能圖省事散著malloc內(nèi)存池或預(yù)分配策略對長時間運(yùn)行的批處理工具幾乎是必需品。最后一點(diǎn)多做真實(shí)數(shù)據(jù)的壓測。我用10GB日志壓測過caveman之后才發(fā)現(xiàn)自己最初的輸出緩沖設(shè)計有問題。紙上推演一百遍都不如實(shí)際跑一次大文件來得直接。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美久久人体| 97色色色| 欧美性高潮| 超碰激情808| 天天狠操| 欧美97色| 亚洲。天堂。日本在线观看| 亚洲棕合电彰| 国产原创精品| 日本三级日本三级99| 亚洲色婷婷久久久综合日本| 亚洲精品九九九| 精品视频专区| 神马麻豆福利院| 东京成人一区| a男人的天堂| 五月丁香社区婷婷日韩欧美精品影院| 日韩欧美午夜一区二区| 欧美狠狠| 国产精品内射婷婷一级二| 欧美精品,四区。五区| 91丝袜熟女| 欧美老妇综合网| 久热91| 乱伦日本色图AⅤ| 国产家庭乱伦表演| 亚洲成a人v欧美综合天堂下载| 另类成人首页一区| 欧美另类天堂| 密臀视频三区免费网站| 另类欧美色| 蜜桃午夜视频一区二区 | 美女露胸露尿口| 色爱三区| 在线性黄高清免费视频| 国产精品久久久久久久毛片1| 亚洲丝袜少妇在线| 老女人碰碰在线碰碰视频| 太久视频| 五月天婷婷综合网| 国产精品制服丝袜清纯唯美| 久久精品无码熟妇一区二区三区视频导航| 国产精品久久久视频| 可以免费看黄片的视频| 日韩午夜国产| 蜜桃久久久久久久久久久久| 日韩欧美偷拍美女视频| 色九九综合AV| 青青青草伊人精品| 国产麻豆一区二三区| 激情五月综合开心五月| 日韩 国产 欧美自拍| 欧美AAAA黄片| 404操逼福利视频| 日本黄大片在线观看视频| 亚洲久久久| 99夜夜操| 婷婷色综合欧美日韩| 国产激情在线| 三上悠亚在线毛片91| 婷婷操视频| 麻豆天美91| 1二区9| 国产综合久久久鬼色| 青青草视频在线观看一区二区| 爆乳免费黄网站| 东北女人av| 欧洲精品久久| 国偷自 一区| 欧美丝袜亚洲| 家庭乱伦麻豆| 欧美视频在线视频免费va| 九九碰九九爱97超碰| 婷婷激情五月| 亚州色站 日韩电影| 婷婷综合在线观看| 丝袜高跟澳门91视频| 高清肉丝中文无码| 富女玩鸭子一级毛片| 欧美日韩另类在线播放| 五月激情综合网| 国产成人资源| 五月开心久久AV官网| 乱欲一区二区| 99热这里只有精品8| 伊人AAA| 丁香六月婷婷久久综合| 天堂综合| 日本一区二区三区四区五区六区七区八区九区| 91东北熟女| av在线观看不卡网站| 操逼片国产| 国产成人网址| 99国产精品免费| 九九九九九九免费视频| 黄色大片视频在线免费看| 美女尤物人人操| 超碰亚洲欧美日韩无| 人妻精品一区二区全免费| 99re在线| 亚洲无限观看| 高清国产精品福利网站| 操狠狠| 老熟妇一区二区三区啪啪| 婷婷午夜清品久久久久久久性色视频观| 澳门色噜噜色噜噜色噜噜色噜噜色噜噜| 久久这里是精品| 狠狠操狠狠爱| 屁股久久久久久久久久| 天天操天天插| 久久99国产精品| 国产1769在线| 公司1区2区3区精产精| 九九九久久久| 91男女啊啊啊| 一本色道熟妇| 女人高潮抽搐喷水视频网站| 久久日本熟女精品一区| 射综合网| WWW4虎| 少妇大屁屁| 一区二区三区视频在线观看免费| 欧美青青草视频| 欧美呦呦性爱| 操我啊啊啊啊啊| 撸无码不卡免费视频| 亚洲中文日韩欧美大香蕉视频| 人妻出轨一区二区三区| www.操| 大色综合| 五月天伊人| 干B网| 激情久久久| av久日| 日本精品网站在线中文| 婷婷激情一区二区三区俺也去| 夜夜爽夜夜| 亚洲精品99| 深夜视频| 久久9 9 9精品| 国产精品第一页国产大屁股视频免费区 | 久久久111| AA级电影三区| 成人贴图日韩欧美| 久久国产逼| 国产夜夜操| 一二三四视频在线社区中文字幕| 日韩无码一级黄色av片| 日韩有码中文字幕女同性恋 | 超碰激情808| 视频国产成人精品日本亚洲18| 91视频国品一二三区| 一起草视频在线| 人人爽天天爽| 久久久久人妻二区精品叶可怜| 亚洲 图片 欧美 色图| 免费家庭乱伦视频| 国精综合一二三区影视| 中文字幕日本久久| 日韩精品-原创伙伴| 亚洲情色婷婷五月天| 91看黄片| 91色人| 婷婷性爱| 国产三级资源在线观看| 国产熟女自拍| 亚洲最大的黄色电影网站。| 亚洲九月丁香| 中日韓欧美高清| 毛片视频白嫩| 亚洲精品啪视频| 色五月激情网| 日韩字幕一区| 超碰在线综合97| 99热精品在线观看| 国产成人一级av88| 亚洲不卡三级手机播放| 中文字幕文字幕无码一区二区三区电影99| 久久精品人体AV| 大香蕉一区二区在线观看.| 大香蕉92| 精品国产自在在线99| 操高情无码| 久久影视二区三区行押| 久久性爱免费送| 欧美呦呦性爱| 久热最新在线杭州| 成人在线午夜视频一区| 丁香六月婷婷久久综合| 午夜福利精品| 久久首页| 国产精品在线一区二区| 岛国免费黄色网址| 欧美色图91| 日本A级视频| 2024人人操人人摸| 欧美日韩222| 97久久国产精品| 激情99| 国产精品一区二区手机看片| 96久久久精品| 日韩AV熟女乱伦| 白丝AV网站| 欧美性爱十八禁| com 首页 18岁 禁区 女优 免费 精选 同城 | 亚洲情色中文字幕一区| 国产99999久久精品| 激情黄色五月天| 色色色色色色色色综合| 欧美在线啊啊啊| 亚洲欧洲另类| 国产伦乱91| 欧美区亚洲区偷拍区| 俺也射| 嗯嗯啊啊啊好舒服| 偷拍欧美激情| 亚洲激情 欧美色图| 久久久人体| 99热国产| 国产成人久久久精品免费AV| WWW.操逼.COM| 久久久久久久97| 欧美亚洲情色| 国产天天噜一噜久久久| 97在线视频观看免费| 欧美暴力猛交| 久超超碰| 亚洲青色欧美| 大肉棒导航| 精品无码久久久久| 超碰这里只有精品| 欧美综合传媒| 91欧洲入口| 久久9久久| 无码操逼视频一下| 91 手机在线播放 绯色| 成人性爱高清视频免费看| 人妻少妇被猛烈进入中| 无码日韩人妻av一| 色婷婷影院| 69精品人人人人| 黄页大片在线观看| 91啪9色| 国产精品熟女九九九| 麻豆性爱视频在线播放| 97爱碰| 嗯嗯啊啊日韩精品| 97超碰人妻| 亚洲图片视频小说| 亚洲日本天堂| 黄色AV免费| 亚洲精品乱码线路中文字幕| 色香av| 新久久AV| 亚洲AV成人无码一区二区三区在线观看| 欧美黄片视频在线观看免费| 超碰亚洲97| 免费视频在线一区二区不卡| 性开放中文AV高清无码免费看| 人妻在线视频| 热天堂一区二区| 久久做97| KK色在线影院| 成人av影院在线观看| 动漫爆乳3D奶水一区在线观看 | 中文字幕亚洲欧美在线不卡| 午夜后入| 久操97| 欧美αv.com| aaa一级黄片| 在线人妻熟女一区二区三区四区五区| 久久五十路熟女人妻| av三级电影在线播放| 亚洲欧美综合| 9超碰免费| 72av视频| 日韩乱伦影音先锋| 欧美天天谢综合网| 日本ZZ高免费A级视频| 欧美人妻一区| 精品久久9| 久久午夜色播影院免费高清| 国产精品分类在线观看| 九九九精品成人免费视频小说| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 亚洲欧洲日产国产综合网| av72网| 久久99九九九九6666免费观看软件| 成人性爱免费播放| 日亚韩精品视频二区三| 极品AV网站在线观看| 欧美天天射| 精品成人av一区二区三区在线| 无码人妻丰满熟妇奶水区毛片| 国产91 丝袜在线播放00-百度| 国产精品婬乱一级毛片彝族| 特级大荫道BBwBBwBBW| 久久99国产精品| 全免费a敌肛交毛片免费| 亚洲另类色图片| 91五十路| 中文字幕一区二区三区50路| 中文字幕在线观看二区三区| aV中文麻| 五月天精品| 久久婷婷苹果| 九九香蕉网| wuyechaopeng| 日本三级一区二区 在线| 91女人的网站| 天天日天天搞天天干| 澳门成人网站久国产日韩| 少妇久久久久久久久| 五月色丁香| 欧美图片校园春色| 天美麻花大全视频| 本道在线| 黑丝自慰喷水网站| 久久精品成人| 亚洲老熟妇xxx| 91综合网站| 久久免费精彩视频| 超碰97久久| 六月色色| 人妻性爱一区二区| 久干网| 偷窥自拍A片| 中精品一区二区三区| 亚洲福利中文字幕在线| 超碰天天去日穴| 亚洲啪啪性视频| 中文字幕视频在线观看| 啊啊啊不要好疼视频| 精品人妻免费观看| 在线一区| 欧美激情亚洲色图| 无码精品啪啪啪一区二区三区三州| www.婷婷五月天| 欧美成人午夜免费福利785| 久久六六| 在线视频一区二区传媒| 亚熟hd视频在线| 99re在线视频这里只有精品| 中文字幕一区电影在线观看| 强奸乱伦中文字幕AV| 久久久久久九九九九-美女久久久久久久-成人AV | 十八禁av无码免费网站APP| 亚洲精品白丝| 天天91~综合入口| 爱丝福利| 午夜.DJ高清在线观看免费7| 久热精品色情| 亚洲精品不卡一二三区| 一个人免费视频观看在线WWW| 日日夜夜干| 人妻熟女一区在| 午夜操操操| 亚洲国产婷婷在线播放| 伊人宅男大香蕉| 一区二区三区免费岛国片| 久久黄片国产一区二区| 欧美做爰无码A片视频| 亚洲男人天堂手机版| 黄资源| 四虎精品一区| 国产真乱mangent| 97中文超碰| 天美91| 自拍亚洲综合| 2025亚洲男人天堂| 欧美亚洲丝袜人妻制服99| 在线有码中文字幕| 91亚.色| 久9久| 神马久久久久久久久久| 午夜福利av电影在线| 免费1级a做爰片观看| 国产欧美一区激情交| 在线视频一区二区传媒| 亚洲av性爱电影| 国产精品成人在线| 日韩乱插| 亚洲伊人a线观看视频| 蜜臀久久99精品久久久电影| 女人香蕉久久毛毛片精品| 97国产精品久久久久| 内射黑人| 日逼五月天| 高凊专区人人操| 综合熟女| 国产一区二区久久| 五月天婷精品激情| 91中出| 中文字幕天堂在线| 欧美在线播放aaaa| 国产又色又爽又舒服的三级视频| 夜夜天天噜狠狠爱2021| 国产精品一区二区久久精品| 国产成人99久久亚洲综合| 天天色欧美| 加勒比海色香蕉婷婷| 久久五十路熟女人妻| 91天天综合在线观看| 大屁股人妻女教师撅着屁股| 99精品无码| 欧美性爱www免费版| 超碰在线日韩一区| 奇米四色网| 亚洲中文日韩欧美大香蕉视频| 国产久久久久久| 国产久久天堂资源| 久久久久久九| 丝袜人妻av一区二区| 男人女人18禁片免费看网站| 五月婷婷丁香六月丁香| 亚洲阿v天堂无码z2018| 玖玖玖玖精品国产剧情| 日本人人操人人操| 97视频观看| 日韩97视频!在线| 大香蕉520| 亚洲熟妇图片| 久久久久9| 国产精品对白自产拍| 91综合天天| 亚洲情色欧美| 激情四射五月天| 乱伦日本色图AⅤ| 日本 色 导航| 男人综合网| 国产成人无码久久精品| 国产亚洲精品农村妇女| 97超碰免费人人性爱| 91在线色综合| 国产地址二三| 91大学精品激情戏| 熟女突然公开看18禁影片| 夜夜天天噜狠狠爱2021| 亚洲欧美日韩精品久久久一区二区 | 欧美白嫩在线放| 999熟女精品| 91激情综合| 人人妻碰人人免费| 日本女人久久久| 玖玖97综合| 成人网欧美风情| 欧美日韩亚洲国产中文永久天天看| 欧美淫乱视频| 免费看片黄| 熟女露脸激情自拍视频| 久久久日本电影| 亚洲一区在线观看欧洲| 日本成人A片网站| 成人AV超碰免费在线| 日本二区不卡| 欧美亚洲素人制服精品| 婷婷伊人| 久久久96精品| 亚洲无码太久| 少妇高潮99p| 久久偷偷色综合蜜桃| 成人羞羞视频国产| 精品人妻美妇91job| 国产97/欧美| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴| av操操不卡| 日韩欧美麻豆 | 亚洲国产精品无码AV在线| 国内精品久久久久影院亚洲| 亚洲老司机123专区| 欧美天天综合网| 婷婷97| 久久久免费视频18| 人人摸人人添人人操| 欧美日韩另类在线| 蜜臀久久99精品久久久久久-DVD| 亚洲美女自拍偷拍视频| 亚洲精品蜜桃久久久久久久| 18禁无码永久免费无限制| 91在线欧色| 一二三区精品视频| www.zbzhongsen.com| 亚洲天天精品| 国产高潮AA片免费看| 亚洲极品| 国模吧 一区二区三区| 一本大道综合伊人精品热热| 岛国片在线播放| 9999伦理视频| 91影库| 亚洲青色欧美| 亚洲一曲日韩精品| 久久综合av| 国产1769在线| 美女爽爽爽刺痛洞洞| 无码高清专| 亚洲蜜臀视频精品久久| 嫩草影院在线观看精品| 国产中午字一暮区| 激情五月婷婷综合| 清纯唯美亚洲综合| 一区二区三区国产精产| 日韩在线欧美精品一区二区| 亚洲欧洲色情高清| 殴美大黄片| 91宗合网| 黄色二级片网站| 狼人综合婷婷激情四射| 99re免费视频精品全部| 都市激情人妻一区二区青青操视频| 中文字幕久热视频在线| 蜜桃精品一区二区三区久在线| 欧美日韩国产高清在线一二三区 | 色爱欲亚洲| 国产精品 久久久精品一牛| 国产精品天干天干综合网麻豆| 日本肉体xxxx裸交| 亚洲欧洲无码一区夜| 伊人99热| 免费看A片毛毛片在线播| 国产呦精品系列在线观看| 欧美在线中M| 91搞逼视频| 五月天欧美色图| 亚洲天堂久久久久久粉红视频| 熟妇国产免费一区| 久久一区二区加油站| 啊啊啊啊啊好舒服视频| 伊人久久亚洲中文字幕不卡| 久久在线观看免费视频| 成全在线观看免费观看| 中文字幕欧美丝袜07资源| 美欧老女人97| 精品亚洲国产成人精品| 中文字幕视频免费| 亚洲综合激情五月久久| 亚洲日韩美女中文字幕乱| 91制服丝袜中文字幕| 亚欧美综合网。| 五月天啪啪| 淫荡少妇免费| 日本天堂网| 国产亲戚伦亲在线| 色视频蜜乳| 天天干1区2区在线| 玖玖爱一区在线| 大香樵伊人网| 国内自拍 日韩激情 99| 精品中文字幕第一页| 精品国产乱码久久| 久久精品区| 999熟女精品| 亚洲成人精品久久久| 人妻夜夜爽天天爽麻豆三区网站| 夜夜嗨一区二区三区直播内容| yazhousetuoumei| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 伊人网一本| 中文97国产| 97超碰美国| 激情五月丁香五月| 国产麻豆一级精品视频| 日本操逼视频导航| 亚洲h片在线免费观看| 死我十八禁| 色哟哟精品1精品2| 亚洲AV在线资源| 国产午夜视频| 天天爽爽爽爽| 久99| 亚洲高潮少妇| 天天综合在线4| 五月婷婷丁香| 久久精品国产精品亚洲艾通辽熟妇| 久久精品国产亚洲AV无码电影 | 99热精品青草在线| 久久99网站| 人妻嗯啊啊在线播放| 色色综合网站| 精品国产一区二区三区av在线资源| 亚洲AV无码国产成人| 色偷偷2020免费视频播放| 蜜桃臀一区二区aV| 黑人综合色| 麻豆天天躁天天揉揉AV| 超碰97综合在线| 人人妻人人爽人人精品| 日本性一区| 91精品丝袜久久久久久| 午夜爽爽爽| 综合久久少妇中文字幕| 亚洲乱色熟女一区| 午夜啪啪片| 亚洲欧美国产其他二区| 九九亚洲视频| 人人妻人人操人人乐| 欧美日韩人人精品| 亚洲色图加勒比| 少妇人妻激情四射| 伊人网在线点播| 丝袜亚洲综合| 精品人妻一区二区视频| 久久精品色欧美aⅴ一区二区| 在线视频日韩欧美国产| 欧美综合骚| 日韩精品99久久久久久中文字幕| Julia Annxxxxx| 夜夜国产一区| 国产9熟妇视频网站| av黄图片在线观看| 国产精品免费日韩| 精品人妻伦一二三区久久| 久久伊人在线五区| 久久久国产精品亚洲精品| 老熟女综合网| 一个色导综合| 91超碰人人操| 99在线观看无大码| 欧美日韩不卡传媒| 日本高清视频xxxx| 五月天大香蕉| 国产成人天堂| 9丨久久九九九| 加勒比在线观看一区二区| 成人亚欧免费视频| 国产11页| 色五月激情AV在线| 999岛国大片| 国产精品对白内射| 老熟女综合网| 国产女人与拘做受视频免费| 国产超碰国产97| 男人的天堂三级| 成年人三级黄色片视频| 欧美精品另类人妖xxxx| 91久热| 2018天天干在线视频| 亚欧精品久久久久久久久久久| 色色青青久久| 国产亚洲女v在线观看| www.夜夜| 少妇贴图| 人成午夜免费大片| 日本孕妇孕交| 中文字幕一区二区在线日韩精品| 国产精品久久发布| 97视频播放| 深夜激情无码| 欧美在线 亚洲| 综合av社区| 天无日色综合| 中国熟女91| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 久久久久亚洲三级电影| 天天综合精品| 欧美+日产+中文| 九九综合久久| 国产一线二线三线av| 久久久 国产精品| 黄色一区三区| 午夜福利免费精品视频| 97精品97久久| 蜜臀操逼黄色视频操的好爽| 加勒比人妻综合| 无码精品人妻一区二区三区妖精| 性爱AV天堂| 成 人片 黄色大片| 日韩电影天堂视频一区二区| AV一起草在线| 亚洲欧洲色情高清| 免费观看国产不卡av| 午夜毛片高清免费不卡| 亚州操逼图| 日本精品久久久久久久| 国产精品久久久久中文字幕| 91男人天堂网| 日韩免费看黄片| 久久久久久久91| 国产亚洲人妻综合日韩 久久| 97免费视频在线| 亚洲一区二区三区久久 亚洲一区二区| 啊啊啊啊好爽好舒服一区二区易域| 久久婷婷五月| 日韩一级欧美一级国产一级台湾 | 亚洲美腿丝袜香蕉影视欧美成人| 日本99久久| 久久老女人| 中文字幕人妻色偷偷久久皮 | 啊啊啊好想要| 91网站18在线| 日本视频在线观看污污污| 色偷偷综合91久久噜噜| 国产久久久久久久久一区二区| 欧美国产婷婷久久| 中文字幕在线观看AV| 午夜AV人气不卡| 色香综合天天影视综合 | 91老女人| se,,,亚洲欧美| 91丨熟女丨丰满熟女| 久久国产精品m码| 白丝AV网站| 久久精品国产亚洲AV片多多| 男人天堂欧美| 粉嫩AV一区夜夜嗨| 又大又白奶子| 东京热视频网| 久操频道免费在线呗看| 欧美精品91| 黑人操一区二区| 精品久久久久综合无码| 天天天天天超碰| 色婷五月天| 久久精品国产亚洲AV嘿嘿| 日本不卡在线二区三区| 亚洲欧美日产国产91毛片| 中文字幕日韩人妻视频一区二区三区| 亚洲综合有码| 亚洲Av噜噜一区二区三区妖精| 丁香五月激情综合国产| 欧美精品23| 91色婷婷综合久久中文字幕二区| 精品无码一二三四区| 日韩人妻大香蕉| 国产一区在线观看无码AV| 伊人麻豆传媒| 少妇久久久免费| 97 超碰 人人做 人人爱| 去干网最新版| 国产人伦a片信息免费片| 久操精品| 另类欧美综合| 天美传媒麻豆一区二区三区国产精| 青青草日本中文字幕| 亚洲黑丝在线| 懂色AV蜜臀无码精品APP| 亚洲AV无码秘 蜜桃臀国精产品| 久艹视频在线| 9 9无尺码天堂网| 欧美se亚洲| 激情文学 国产一二三aV| 六九九九| 天天插天天干| 九九无码视频| 欧美,日韩,亚洲视频| 丁香六月激情| 黄片免费视频2019| 97国产精品视频| 少妇激情一区二区三区视频| 精品人妻一区二区蜜桃视频| 偷拍2020| 欧美日韩人妻少妇 一区二区三区| 国产精品欧美激在线| 麻豆 欧美 日韩| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 日本三级韩国三级99| 日韩中文字幕视频在线观看| A V视频日本| 久久五十路熟女人妻| 飘花国产午夜精品不卡| 久久久久亚洲?V片无码V| 精品人妻av在线播放| 久久69精品久久久久久久| 在线亚洲 欧美 日本专区| 精品午夜福利| 欧美不卡五十路| 中英熟女操女| 亚洲情欲| 精品免费视频国产一区| 欧美日韩国产一区二区小黄片大全| 中国人高清www色视频免费| 夜夜无码| 久久超碰97| 欧美成人一级麻豆| 国产日韩欧美中文在线播放| 亚洲中文一区二区三区| 操逼视频免费日韩无码| 日本综合色图| 日韩三级久久久| 伊人国产av| 大香蕉欧美国产日韩高潮| 久热精品在线| 亚洲一二三四区| 国产又粗又大硬免费色网视频| 最新av中文字幕高清| 一起草日韩| 久久性视频| 日本精品高清一二区一本到| 日本久久久久久久久| 欧美熟女激情| 国产欧洲精品亚洲午夜拍精品| 密臀成人视频久久久| 夜夜爽夜夜操| 亚洲色系另类精品国产| www.伪伪| 日韩精品.久久精品.AV女优.天美传媒| 欧美综合骚| 亚洲男人的天堂在线看| 国产嫩草精品A88AV| 91精品国产91综合久久蜜臀| 思思热免费在线视频| 91色色色| 97精品久久久久中文字幕| 亚洲深夜福利| 亚洲图片激情综合另类| 天天爽人人综合免费7799| 天堂av2019| 日韩色欲久久一二三四区| 美女91AV| 亚洲 无码 偷拍| oumeisetu综合| 精产国品一区二三产品| 综合亚洲网| 韩三级a视频在线观看| 国产福利影视| 欧美色图成人网一区二区| 黑人综合网| 亚洲AV无码AV吞精久久久久| 发朗少妇买婬全视频中文| 亚州色图欧美| 女性91网站| 日本污ww视频网站| 91neishe| 国产视频97| 蜜乳AV免费观看| 亚洲国产精品久久久久久久久久| 国产精品久久久久久久久久久久久久久久 | 国内毛片国产专区二| 97色插| 日天天九九天堂666| 欧美αv.com| 搡老女人老妇女老妇老熟女怎么读| 日韩大香蕉AV影片| 1禁看欧美黄片免费看| 亚洲图片欧美制度| 97av在线观看| 国内毛片无码一级毛片| 国产第11页| 精品一区二区成人| 九X超碰| 人妻少妇久久中文字幕一区二区 麻豆| 免费观看啪视频| 日日干夜夜欢| 99热99在线播放激情| 一区中文字幕二区日韩| 国产综合久久久麻桃个| 五月丁香激情综合网| 欧美精品不卡一二三四在线91| 少妇一区二区三区高速| 久久这里精品国产99丫e6| 91模特在线观看| 欧美一区二区三区日韩| 天天天做天天天爱天天天爽| 377p欧洲日本亚洲大胆| 午夜毛片高清免费不卡| 欧美天天干| 国产欧美日韩臀| 1级黄色夫妻对换性交免费看| 四虎AV无码| 国产精品久久久久久亚洲色欲| 男人天堂.AB| 一区在线精品中文字幕| 91红杏| 国产美女mm131爽爽爽爽| 免费人成在线观看网站品爱网| 91色五月俺来也| 亚洲一区二区三区在线激情| 另类亚洲图色| 久操操AV电影| 少妇专区一二三四五| 粉嫩粉嫩一区性色AV片| 本道在线| 久久伊人大香蕉| 另类欧美综合| 91N五十路| 日韩 欧美 视频 在线 一区| 欧美一级专区免费大片 | 日韩内射视频| 国产v片在线免费观看| 有码色中文字幕在线观看| 亚洲色图欧美色图日韩色图| 97爱碰| 婷婷久草一区二区三区| 国产精品ww久久| 97色97好| 色小视频蜜乳| 日本阿v天堂在线观看| AV老汉| 中文色综合| 91久久婷婷| 97人亚洲综合字幕| 天天视频综合在线观看视频| 加勒比99999| 亚洲综合在线高清| 精品少妇一区二区三区在线视频| 欧美日韩另类激情图片| 丝袜喷水在线| 强奸乱伦麻豆| 久久人妻| 香蕉色网| 99久久这里只有精品| 裸体美女久久久| 夜夜高潮夜夜爽高清视频一 | 99色在线| 日日日啊啊啊| 九九RE视频在线精品| 日韩免费簧片| 熟女91网| 97爱免费插| 亚洲超碰AV| 福利天天都操| 久久婷婷亚洲欧| 成人综合色网| 高清无码 国产精品| 欧州91高潮| 综合天天。| 都市激情人妻一区二区青青操视频| 把腿张开老子CAO烂你| 操逼操2| 91美女视频直播| 嗯嗯啊好大| 大香蕉婷婷| 亚洲最大成人a毛毛片| 337p大胆噜噜噜噜噜91Av| 家庭乱伦国产| 激情文学88| 色欧美在线| 久久亚洲熟妇在线视频| 台欧久久精品视频| 蜜乳AV色欲AVAV无码| 99热这里只有精品18| 伊人四虎综合| 亚洲 另类 丝袜 自拍 动漫| 欧美亚洲AN| 亚洲另类久操网| 亚洲中文字幕av| 91小视频| 香蕉国产精品麻豆亚洲欧美日韩| 91人妻在线视频| 手机av亚洲丝袜美腿日韩第一页二页| 欧美一区二区情色| 草草影院在线视频| 午夜免费福利视频一区| 人妻爽爽啪视频| 曰本人妻人人澡人人夹| 午夜天堂网| 久久ww| 欧美熟女操屄| 亚洲欧美色图| 91白嫩| av午夜玫瑰| 久热香蕉精品在线视频| 99re6国产精品99re| 午夜免费视频1000| AV网站高清无码在线观看| 欧美日韩999| 日本无码1| 热99这里有精品综合久久 | 无码欧美有限公司| 久久是精品| 天美传媒AV在线播放| 我想要 啊 啊 啊| 91色久| 女人双腿搬开让男人桶| 国产精品久久久久久久毛片1| 99re热有精品视频国产| 国产女同视频在线播放| 中文精品一区二去| 96免费视频在线| 1区2区3区中文字幕日韩| 爱爱动态试试看6 0秒| 麻豆人妻少妇在线免费观看| 亚洲大色堂| 日本中文字幕一区| 欧色网址| 最新日本中文字幕| 国产一区二区三区视频在线看| 国产一在线观看| 国产一区二区三区高清视频| 亚洲熟女性高潮久久久| 网页导航五月天免费一二三区| 日韩在线性爱免费视频| av日韩在线观看电影| 狠狠操官网| 男人的天堂午夜av| 一起草三级AV电影在线观看| 97Ai亚洲| 亚洲色交| 九九热九九| 国产老女人久久毛| 国产精品不卡少妇白| 日日97| 躁躁躁日日躁2020| 五十路熟女人妻一区二区在线观看| 美女黄色91| 精品传媒在线一区| 日本操逼视频免费| 在线视频97| 影音先锋少妇| 国产区性爱在线视频秋霞豆| 亚州熟女乱伦| 久久色精品视频在线| 91精品人妻一品二品三品| 黄片免费视频2019| 99色婷婷中文字幕乱色| 91chinese在线| 熟妇在线视频一区二区| 九九毛片这里只有精品| 99re热| 欧美亚洲中文| 国产精品一二三在线看| 插入综合网| 黄色十八禁| 韩日欧亚a级| 一级日本牲交大片好爽在线看| 蜜臀AV网站| 日韩伦理久 久久 清纯| 中文字幕色AV| 大香蕉综合网| 亚洲成a人片在线观看中文!!!| 国产 日韩 欧美 人妻 熟女 中文 69人妻精品一区二区绯色 | 国内操逼视频二区| 少妇蹲下露出大唇5| 尤物视频一区| 丁香五月AV| 久久久9品一区二区三区| 97精品久久久久中文字幕| 日本一二区不卡| 日本免费人成视频播放120秒| 91成人精品| 国产久久av| 久久久久久91香蕉国产| 老熟妇91| 欧洲熟妇xxXx欧美老妇裸体| 一区二区三区蜜桃成人撸久久东京热 | 国产精品2020| 高清孕妇孕交 交| 日本色色色视频| 狠插 制服 自拍| 舔足天天操天天射| 久久久国产三级黄色片| 伊人亚洲综合| 浓厚中出中文字幕在线| 操婷婷逼| 偷拍亚洲情色| 韩国成人精品久久久免费看| 国产白领连续中出在线观看| 天天射夜夜骑| 91性高朝久久久久久久久| 中文字幕一二三区| 亚洲欧美情色| 思思热在线视频精品| 美女十八禁| 333kkkk·亚洲com久久| ai欧美亚洲小说| 啪啪啪东京| 综合激情97 | 欧美性爱第一区| 蜜臀久久在线视频| 久久久精品91八戒| 殴美日韩m| 又大又长又粗又爽又黄| 男人天堂日日夜夜| 精品亚洲成人免费在线| 伊人久久国产免费观看视频| 国产资源中文字幕在线| 久久最新视频免费观看| 成人性爱AV在线免费观看| 欧美午夜色妇色鬼| 国产午夜福利专区综合| 精品国产少妇高潮视频| 20cm女自慰在线日韩欧美| 日韩中文字幕熟妇人妻| 波多野结衣AV无码一区| 97自拍一区| 国产网红精品| 91N综合网| 99这里有精品视频| 97天堂| 97超碰天天爱天天爱| 国产精品不卡少妇白| 青青色综合| 久久精品日韩| 日本人妻天堂网站在线播放| 亚洲伊人久久精品影院| 中文字幕人乱码中文字的预防方法| 综合欧美激情网| 99999国产| 精品91摸| 亚洲强奸乱伦影视网| 啊啊啊不要嗯嗯在线观看| 国产在线视视频有精品| 色欧洲| 少妇精品久久久| 色婷婷网| 综合伊人网12色| 东京热熟女亚洲视频网站| 妇女性内射冈站HDWWWCOM| 欧美在线第五页| 91蜜臀熟女| 久久久久亚洲三级电影| 在线五区| 麻豆国产96在线| 酒色综合网| 蜜桃色院一区久久 | 久久只有精品一区二区三区| 久久无码成人| 男人的天堂视频精品乱在线| 欧美激情 日韩精品| 欧美黑人精品一区二区| 色婷婷一区二区三区久久| 欧美丝袜美女电影一二三四区| 国产女性无套 免费观看| 夜色91| 色眯眯av| 久久久久久久久久久久久久久性生活视频 | 久久东京热久久| 伊人伊人LD| 久久超碰久| 日韩有码中文字幕女同性恋| 色综合潮| 激情色播| 精品国模无码| 外国免费性情大片| 综合性视频99| 蜜臀AV一区二区三区激情综合| 日本色色色色色视频| 人人人干干人人干| 九9热伊人| 麻豆区99999| 91九色首页| 日韩亚洲中文有码视频| 99999精品| 日韩内| 中文字幕第23区| 久久久久久亚洲精品中文字幕人妻| 日韩精品黄片免费观看| 免费av高清无码| 久久人妻| 国产免费内射视频| 高清无码91| 中文字幕欧美日本乱码一线二线| 久久精品视频28| 91久久精品国产| 人妻天堂综合网| 在线看免费无码AV天堂的| 国产福利在线视频网站| 理论久久婷婷网8| julia中文字幕在线观看| 欧美熟女激情| 国产欧美一区二区| 中文字幕黑人大片| 女优免费一区二区永久| 操一区| 日本午夜福利影院| 99在线无码精品秘 入口黑人 | 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 色婷婷婷五月天激情四射| 在线观看十八禁| 东京热激情视频一二三区|