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

ARTICLE DETAIL

資訊詳情

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

雙緩沖隊列異步日志系統(tǒng):高并發(fā)場景下徹底解決同步日志阻塞問題

雙緩沖隊列異步日志系統(tǒng):高并發(fā)場景下徹底解決同步日志阻塞問題 1. 先別急著一股腦寫文件同步日志為什么扛不住生產(chǎn)環(huán)境先說結(jié)論再聊細節(jié)日志系統(tǒng)最容易被低估也最容易被埋雷。很多項目剛開始的時候日志就是到處printf或者更“規(guī)范”一點接個log4j、spdlog級別的庫線上跑一跑也沒覺得有什么問題。但等流量上來高并發(fā)場景一壓第一塊倒下的往往不是業(yè)務(wù)代碼而是看似人畜無害的日志鏈路。我們做雙緩沖隊列異步日志系統(tǒng)要解決的核心痛點很簡單日志寫入不再阻塞業(yè)務(wù)線程。同步日志為什么會阻塞因為write()到磁盤并不便宜。一個日志條目看起來只是一行字符串但這條字符串從用戶態(tài)的日志緩沖區(qū)到內(nèi)核的文件系統(tǒng)緩存再到真正的磁盤設(shè)備中間隔著至少兩道拷貝還伴隨一次系統(tǒng)調(diào)用。生產(chǎn)環(huán)境里無論是機械硬盤還是 SSD單次寫入的小 IO 都遠沒有想象中的快。日志一多、高頻一寫業(yè)務(wù)線程就被迫排隊等磁盤。我舉個真實場景某線上服務(wù)需要記錄每次請求的完整參數(shù)和響應(yīng)體單個請求撐死幾十行日志但 QPS 上了幾千之后同步日志的磁盤寫壓力瞬間拉滿接口平均耗時從 2ms 漲到了 40ms最夸張的時候業(yè)務(wù)線程被日志卡的連心跳包都發(fā)不出去。后來把策略改成“攢一批再寫”問題才算緩解。這就是異步日志的核心思路把日志寫入從業(yè)務(wù)線程上搬走交給專門的線程去處理。業(yè)務(wù)線程只負責(zé)把日志內(nèi)容往內(nèi)存里一放就返回磁盤寫入由后臺線程異步完成。聽起來簡單但實現(xiàn)上有很多講究尤其是“怎么把日志內(nèi)容安全高效地交到后臺線程”這一步選型不同效果天差地別。雙緩沖隊列就是這條鏈路里比較經(jīng)典、也比較容易理解的一種實現(xiàn)方案。如果你現(xiàn)在正被“日志寫入拖慢接口”“日志一多系統(tǒng)就卡頓”“日志模塊與業(yè)務(wù)模塊共用鎖導(dǎo)致死等”這些問題困擾這篇文章適合你。我會從設(shè)計思路講到接口封裝再到部署使用把雙緩沖日志系統(tǒng)的“上半場”講透。2. 雙緩沖隊列的工作機制把“寫日志”和“寫磁盤”拆開2.1 兩段式緩沖一個正寫一個在刷雙緩沖隊列這個名字關(guān)鍵在于“雙”和“隊列”?!熬彌_”比較好理解就是一塊預(yù)先分配好的內(nèi)存。日志內(nèi)容先落在這塊內(nèi)存里攢多了再一次性寫入磁盤。為什么要攢因為一次write()寫入 1MB 數(shù)據(jù)和分 1 萬次每次寫 100 字節(jié)兩者的 IO 效率完全是兩個量級。批量寫不僅能大大減少系統(tǒng)調(diào)用的次數(shù)還能讓磁盤的寫模式更規(guī)整性能提升非常明顯?!半p緩沖”指的是這塊預(yù)分配內(nèi)存有兩份。一份被業(yè)務(wù)線程用來寫入日志稱為“待寫緩沖區(qū)”或“當(dāng)前緩沖區(qū)”另一份被后臺線程用來讀取并刷入磁盤稱為“待刷緩沖區(qū)”。當(dāng)“當(dāng)前緩沖區(qū)”寫滿了或者到了固定時間系統(tǒng)會執(zhí)行一次緩沖區(qū)交換swap把業(yè)務(wù)線程寫滿的這塊換成后臺線程手里的那塊。交換之后業(yè)務(wù)線程繼續(xù)往新?lián)Q來的空緩沖區(qū)里寫后臺線程則拿著裝滿日志的緩沖區(qū)去刷磁盤。圖景大概是這樣業(yè)務(wù)線程 后臺線程 | | | 寫入Buffer A | |-------------| | Buffer A滿 | | 交換 | |-------------| | 寫入Buffer B | | | 刷Buffer A到磁盤 | |------------- Disk簡化成文字描述就是業(yè)務(wù)線程永遠只面對一塊“可以寫”的內(nèi)存寫完一塊就換一塊完全不碰磁盤 IO。后臺線程永遠只面對一塊“已經(jīng)寫滿”的內(nèi)存刷完一塊就換一塊完全不阻塞業(yè)務(wù)線程。兩者之間只有一次極短的交換操作需要同步。2.2 為什么是“雙”緩沖而不是單緩沖或多緩沖單緩沖的方案看起來也能用一塊緩沖區(qū)寫滿了就刷盤刷盤期間業(yè)務(wù)線程等著。但問題在于“寫滿后刷盤”這個動作是阻塞的而且刷盤耗時不定。一旦磁盤繁忙業(yè)務(wù)線程就卡住了和同步日志沒有本質(zhì)區(qū)別只是把fprintf換成了memcpy仍然治標(biāo)不治本。多緩沖方案呢理論上可以準(zhǔn)備 N 塊緩沖區(qū)寫滿一塊就換下一塊后臺線程依次刷。這能進一步降低交換頻率內(nèi)存占用也更高。但在大部分場景下兩塊緩沖區(qū)已經(jīng)足夠只要后臺線程刷盤的平均速度大于業(yè)務(wù)線程寫入的平均速度兩塊就能循環(huán)起來。如果后臺線程的消費速度跟不上說明系統(tǒng)已經(jīng)到了日志量過載的狀態(tài)即使準(zhǔn)備更多緩沖區(qū)也只是延緩問題并不能消除問題。這里有個很多人會忽略的點雙緩沖系統(tǒng)里的交換是“一次性”完成的。生產(chǎn)線程與消費線程之間只共享一個狀態(tài)指針一次 swap 操作只需要幾納秒到幾十納秒的臨界區(qū)保護。對比直接用std::queue存日志的逐條入隊方案雙緩沖避免了高頻的鎖競爭把鎖的粒度從“每條日志”降到了“每批日志”這是它能扛高吞吐的根本原因。另外雙緩沖天然支持延遲刷新。很多時候日志峰值只出現(xiàn)在一秒內(nèi)的某幾百毫秒中其他時間業(yè)務(wù)線程并不忙。如果每寫一條就通知后臺線程來取線程喚醒、上下文切換的成本反而會拖垮性能。雙緩沖方案可以設(shè)定“緩沖區(qū)未滿就定時刷”比如每 1 秒強制交換一次保證日志延遲可控且不會出現(xiàn)長時間無輸出。2.3 雙緩沖的兩個隱藏風(fēng)險設(shè)計時繞不開第一個風(fēng)險是日志丟失。異步意味著業(yè)務(wù)線程返回時日志還沒落盤如果此時進程崩潰或者被kill -9最后一段還在內(nèi)存里的日志就沒了。這個問題沒法完全規(guī)避只能降低損失。常見做法是后臺線程定期刷盤并且支持外部顯式調(diào)用Flush()在需要保命的關(guān)鍵節(jié)點比如服務(wù)收到終止信號后強制把所有緩沖數(shù)據(jù)落盤。第二個風(fēng)險是背壓問題。如果日志生產(chǎn)速度長期超過消費速度緩沖區(qū)很快會處于“寫滿-交換-刷盤-再寫滿”的循環(huán)表現(xiàn)為磁盤持續(xù)高負載系統(tǒng)整體性能下降。此時不能無限等下去常見策略是當(dāng)兩緩沖都占滿且后臺線程來不及刷時要么直接丟棄未來日志并按計數(shù)報錯要么將當(dāng)前緩沖區(qū)擴容一擋臨時救急。我一般推薦前者因為日志量過載時保留完整性的優(yōu)先級低于保證業(yè)務(wù)可用性而且丟失提示本身也是重要日志。3. 核心接口設(shè)計Buffer、隊列交換與 AsyncLogger設(shè)計雙緩沖日志系統(tǒng)時最重要的是把三個角色拆清楚Buffer負責(zé)存儲字節(jié)流BufferQueue負責(zé)管理兩個 Buffer 的交換與調(diào)度AsyncLogger負責(zé)向上層業(yè)務(wù)提供日志寫入 API同時管理后臺線程的生命周期。3.1 Buffer 的核心字段與內(nèi)存使用Buffer本質(zhì)是一塊預(yù)分配內(nèi)存加上讀寫游標(biāo)。我常用的定義大概是class Buffer { public: explicit Buffer(size_t capacity) { data_.reserve(capacity); } void Append(const char* log, size_t len) { if (len WritableBytes()) { return; // 或觸發(fā)擴容 / 丟棄策略 } data_.insert(data_.end(), log, log len); } void Reset() { data_.clear(); } bool Empty() { return data_.empty(); } size_t WritableBytes() { return data_.capacity() - data_.size(); } const char* Data() { return data_.data(); } size_t Size() { return data_.size(); } private: std::vectorchar data_; };注意這里我用的是std::vector而不是裸指針加char[]。生產(chǎn)級日志系統(tǒng)對性能苛刻通常會直接用預(yù)分配的char[]配合size_t游標(biāo)甚至用mmap映射文件。但std::vector足夠滿足絕大多數(shù)業(yè)務(wù)系統(tǒng)的日志壓力而且內(nèi)存管理更安全。真正要緊的是讓 Buffer 的容量在初始化時一次定好盡量避免運行期擴容——擴容可能觸發(fā)內(nèi)存搬移而且擴容期間的操作會引入額外的不確定性。Buffer 容量取多大這個沒有標(biāo)準(zhǔn)答案。我個人的經(jīng)驗值是單條日志平均長度按 256 字節(jié)估如果 QPS 峰值為 1 萬每秒日志量約為 2.5MB那么每塊 Buffer 設(shè)為 8MB 左右比較合適兩塊就是 16MB。日志量小的服務(wù)4MB 也已經(jīng)足夠了。內(nèi)存是便宜的資源不必太摳但也不要拍腦袋選個 1GB —— 那會讓緩存的優(yōu)勢變成內(nèi)存的壓力。3.2 BufferQueue 的交換邏輯BufferQueue是雙緩沖結(jié)構(gòu)的中樞。它內(nèi)部維護兩個 Buffer 指針并在合適的時機執(zhí)行交換。class BufferQueue { public: explicit BufferQueue(size_t buffer_capacity) : buffer_capacity_(buffer_capacity), current_(new Buffer(buffer_capacity)), next_(new Buffer(buffer_capacity)) {} void Append(const char* data, size_t len) { std::lock_guardstd::mutex lock(mutex_); if (current_-WritableBytes() len) { Swap(); } current_-Append(data, len); } std::shared_ptrBuffer TakeForFlush() { std::lock_guardstd::mutex lock(mutex_); if (current_-Empty() next_-Empty()) { return nullptr; } Swap(); return std::shared_ptrBuffer swap_result_; } private: void Swap() { std::swap(current_, next_); // 這里同時喚醒消費線程 } size_t buffer_capacity_; std::unique_ptrBuffer current_; std::unique_ptrBuffer next_; std::mutex mutex_; std::condition_variable cond_; };這段邏輯里有幾個微妙的地方第一Append時發(fā)現(xiàn)當(dāng)前緩沖區(qū)寫不下一條日志立刻交換然后把日志寫到新緩沖區(qū)上。這意味著next_可能已經(jīng)在積累數(shù)據(jù)了交換前它會被重置。這里有一個取舍如果next_里還有沒來得及被后臺線程刷盤的數(shù)據(jù)交換會造成日志順序錯亂或數(shù)據(jù)覆蓋。所以更嚴(yán)謹?shù)膶懛ㄊ钱?dāng)Append時current_寫不下且next_非空即后臺線程還沒取走過要介入“等待消費線程完成一次 flush”的流程。我在實現(xiàn)時通過條件變量控制保證交換發(fā)生時next_一定是已經(jīng)刷完的空 Buffer。第二條件變量的喚醒時機。最直接的邏輯是Swap()之后立刻喚醒后臺線程。但如果每次Append都喚醒日志量一高線程頻繁被喚醒上下文切換成本就上去了。我的做法是只有滿足“當(dāng)前緩沖區(qū)由空變?yōu)榉强铡被颉敖粨Q發(fā)生時next_中有數(shù)據(jù)”這兩個條件才喚醒。這能把線程喚醒次數(shù)與日志寫入頻率解耦后臺線程還可以配合定時策略每 100ms 檢查一次。3.3 AsyncLogger 的對外接口設(shè)計對外接口是我的原則是極簡。業(yè)務(wù)方不需要理解雙緩沖內(nèi)部機制他們只需要“初始化、寫日志、關(guān)閉”這三個動作。class AsyncLogger { public: static AsyncLogger* Instance(); bool Init(const LogConfig config); void Write(LogLevel level, const char* fmt, ...); void Flush(); void Shutdown(); private: AsyncLogger(); ~AsyncLogger(); void WriteToBuffer(const char* line, size_t len); void FlushThread(); std::unique_ptrBufferQueue queue_; std::thread background_thread_; std::atomicbool running_{false}; LogLevel level_{LOG_INFO}; };Init()初始化配置啟動后臺線程Write()格式化日志寫入 BufferQueue返回即代表日志“已受理”Flush()強制刷新緩沖區(qū)用于關(guān)鍵節(jié)點Shutdown()停止后臺線程刷完所有遺留數(shù)據(jù)安全退出Write()為什么設(shè)計成可變參數(shù)因為我希望日志調(diào)用點在形式上盡可能接近原生的printf。業(yè)務(wù)側(cè)配合宏定義使用體驗上就像寫printf一樣自然#define LOG_DEBUG(...) AsyncLogger::Instance()-Write(LOG_DEBUG, __VA_ARGS__) #define LOG_INFO(...) AsyncLogger::Instance()-Write(LOG_INFO, __VA_ARGS__) #define LOG_ERROR(...) AsyncLogger::Instance()-Write(LOG_ERROR, __VA_ARGS__)在Write()內(nèi)部格式化日志用vsnprintf完成這是一個常見的性能熱區(qū)。vsnprintf本身不慢但如果每條日志都調(diào)用在超高并發(fā)場景下仍會占用大量 CPU。優(yōu)化的思路是把格式化拆成兩步先在生產(chǎn)線程上完成字符串拼接雙緩沖只負責(zé)搬運已經(jīng)成型的字節(jié)流。后臺線程不能再做格式化否則格式化開銷就從業(yè)務(wù)線轉(zhuǎn)移到了后臺很快會成為新的瓶頸。4. 部署與使用指南從配置到線上切換的完整流程4.1 配置項的選擇與建議初始化日志系統(tǒng)時我給LogConfig設(shè)計了四個最關(guān)鍵的配置項日志文件路徑前綴、單塊緩沖區(qū)大小、日志級別、刷新間隔。配置項推薦值說明base_filename日志目錄 文件名前綴例如/var/log/app/server_buffer_capacity4MB ~ 16MB根據(jù) QPS 估算內(nèi)存緊張可降到 1MBlog_levelLOG_INFO或LOG_WARN生產(chǎn)環(huán)境不建議開 DEBUGflush_interval100ms ~ 1000ms越小日志越實時但刷盤越頻繁這里的核心原則是緩沖容量不是越大越好刷新間隔也不是越小越好。容量太大內(nèi)存里堆積的日志變多一旦崩潰丟的就多刷新間隔太小疊加的批量寫效果被削弱。線上我常用的組合是8MB 緩沖區(qū)、200ms 刷新間隔、LOG_INFO級別。這個組合在各種服務(wù)上表現(xiàn)都比較均衡。文件切分也建議在設(shè)計時就考慮進去。日志系統(tǒng)跑久了單個日志文件無限增長是災(zāi)難。我通常會再提供兩個參數(shù)max_file_size和max_file_count。當(dāng)單文件超過max_file_size寫入切換到下一個文件當(dāng)文件數(shù)量超過max_file_count刪除最老的文件。這樣磁盤占用能被嚴(yán)格限制在可控范圍內(nèi)。4.2 初始化到寫日志的代碼示例以一個典型服務(wù)的主程序為例int main() { LogConfig cfg; cfg.base_filename /var/log/app/order_; cfg.buffer_capacity 8 * 1024 * 1024; // 8MB cfg.log_level LogLevel::LOG_INFO; cfg.flush_interval_ms 200; cfg.max_file_size 512 * 1024 * 1024; // 512MB滾動 cfg.max_file_count 10; if (!AsyncLogger::Instance()-Init(cfg)) { std::cerr init logger failed std::endl; return 1; } LOG_INFO(server started, enabled modules: %s, core,order,pay); // 業(yè)務(wù)邏輯... LOG_DEBUG(request%s, response%s, req_str, resp_str); // 程序退出前 AsyncLogger::Instance()-Shutdown(); return 0; }注意Shutdown()之間的業(yè)務(wù)邏輯如果存在長期運行的線程日志系統(tǒng)必須是線程安全的。我在Write()內(nèi)部用了BufferQueue::Append()上的鎖所以多線程寫日志不會互相干擾。對于日志順序要求很高的場景順序僅由鎖獲取的順序決定——大多數(shù)業(yè)務(wù)場景不需要關(guān)心這一點。有個體驗上的細節(jié)日志文件里的時間戳格式。建議輸出格式帶上精確到毫秒的時間戳、線程 ID 和日志級別。后臺服務(wù)排查問題特別是偶發(fā)問題缺少線程 ID 會讓上下文追蹤變得非常痛苦。格式類似2025-01-18 14:23:45.678 [12345] INFO request accepted, traceabc1234.3 進程優(yōu)雅退出時的日志處理進程退出時的日志處理是最容易被忽略的坑。如果直接調(diào)用exit()后臺線程可能才格式化完一半日志進程就沒了。正確順序是通知所有業(yè)務(wù)線程不再寫日志或至少保證寫日志操作已經(jīng)返回調(diào)用Shutdown()在Shutdown()內(nèi)部停止后臺刷新線程并把隊列里剩余的所有 Buffer 全部刷盤最后進程退出為什么必須在Shutdown()里“清空所有 Buffer”因為忙時可能有兩個非空 Buffer一個是正在寫入還沒滿的一個是交換后還沒被后臺線程取走的。如果只刷了當(dāng)前移交的那個 Buffer另一個殘留的數(shù)據(jù)就丟了。測試中就很容易出現(xiàn)一種情況平時日志正常但進程退出瞬間最后幾十條日志神秘失蹤根源就在這里。4.4 信號處理與崩潰保底線上服務(wù)被kill是常事。比如SIGTERM時一般會希望優(yōu)雅退出。我的做法是注冊了信號處理器在捕捉到SIGTERM和SIGINT后調(diào)用Shutdown()再退出。但對于SIGKILL和段錯誤SIGSEGV進程瞬間死亡任何代碼都來不及執(zhí)行此時只能依賴“日志文件最近一次 flush 之后的內(nèi)容未丟失”這一保證。有個小技巧可以降低崩潰恢復(fù)的代價日志系統(tǒng)的后臺線程每次寫完一個 Buffer就執(zhí)行一次fdatasync()或者至少是flush()而不是等到文件關(guān)閉時再刷。這樣崩潰后最多丟失的就是上一次 flush 之后的數(shù)據(jù)。代價是磁盤 IO 頻率上升但換來的是日志可靠性。5. 高頻日志場景下最容易踩的坑和調(diào)優(yōu)路徑5.1 問題一日志大量丟失而且丟得沒有規(guī)律很多第一次用異步日志的團隊上線后發(fā)現(xiàn)日志有缺口第一個懷疑是磁盤 IO 不夠但實際上經(jīng)常是Buffer 容量太小 生產(chǎn)速度大于消費速度的組合。排查思路在Append()里加一個丟棄計數(shù)當(dāng)出現(xiàn)“當(dāng)前緩沖區(qū)寫不下且next_也沒法交換”的情況時直接丟棄該條日志并累計計數(shù)。日志系統(tǒng)可以每秒打印一次這個計數(shù)到標(biāo)準(zhǔn)輸出或單獨的文件。如果丟包率持續(xù)增長說明日志量與 Buffer 容量不匹配。調(diào)優(yōu)手段有兩個方向增大單塊 Buffer 容量讓攢批的窗口更長增加后臺刷新線程數(shù)量或提高刷新頻率注意方向 2 有一個副作用線程數(shù)量增加意味著刷新更頻繁可能削弱批量寫效果。我個人的經(jīng)驗是先嘗試把刷新間隔從 200ms 調(diào)整到 100ms如果還不夠再考慮擴容 Buffer一般不推薦加第二個后臺線程除非數(shù)據(jù)量真的到了單線程刷盤上限。5.2 問題二雙緩沖交換時鎖競爭激烈日志線程本身成為瓶頸業(yè)務(wù)線程在調(diào)用Write()時最終都會進入BufferQueue::Append()。當(dāng)日志量大時這把鎖就成了高頻熱點。雖然我的設(shè)計里鎖只保護了一次 append 加一次可能的 swap但 QPS 極高的服務(wù)依然能把這把鎖的競爭壓力拉滿。應(yīng)對辦法有幾個按性價比排序用更精細的鎖替代std::mutex比如std::shared_mutex在日志量極高時寫鎖其實不多只在交換的時候大部分是讀鎖。每個業(yè)務(wù)線程獨立的小 Buffer先寫入線程本地緩沖積攢到一定閾值再合并到主雙緩沖隊列。這個方案稍微復(fù)雜但能大幅降低鎖競爭。接受現(xiàn)狀只把日志級別開關(guān)在生產(chǎn)環(huán)境關(guān)掉80% 的日志量來自 DEBUG生產(chǎn)環(huán)境把級別調(diào)到 INFO 以上絕大部分性能問題自然消失我推薦從第 3 步開始。很多團隊上線時忘了關(guān) DEBUG日志量爆炸式增長最后怪異步日志系統(tǒng)不行。實際上把 DEBUG 一關(guān)系統(tǒng)壓力立減 80%。5.3 問題三日志內(nèi)容里包含二進制、亂碼或超長行日志系統(tǒng)最常見的使用誤區(qū)是把任意二進制數(shù)據(jù)塞進日志文本。比如記錄網(wǎng)絡(luò)上報文的原始字節(jié)或者記錄一個包含\n的字符串。這些數(shù)據(jù)會導(dǎo)致日志文件結(jié)構(gòu)被破壞后續(xù)按行解析時自然錯亂。我的做法是在Write()時對非打印字符做轉(zhuǎn)義處理。尤其注意\n、\r、\0這幾個字符轉(zhuǎn)成\\n、\\r之類的可見文本。如果業(yè)務(wù)確實需要記錄完整的二進制 dump建議單獨設(shè)計一個WriteBinary()接口走十六進制編碼再寫文本日志而不是硬塞。另外設(shè)置單條日志的最大長度。通常一條日志超過 4KB 就已經(jīng)很夸張了遇到超長內(nèi)容寧可截斷也不能任它撐爆 Buffer。vsnprintf本身就支持傳入長度上限超出部分返回的長度大于實際寫入長度你可以據(jù)此判斷是否發(fā)生截斷并補一個“日志超長截斷”的標(biāo)記。5.4 問題四日志線程退出時隊列里還有數(shù)據(jù)沒來得及寫這個問題在“4.3 進程優(yōu)雅退出”里提過。但還有一種特殊情況后臺線程在刷最后一個 Buffer 時業(yè)務(wù)線程仍然在搶鎖寫日志兩者互相等待甚至死鎖。我處理的辦法是Shutdown()先把running_原子變量置為false這樣業(yè)務(wù)線程再調(diào)用Write()時直接放棄寫入并返回。接著后臺線程拿到隊列鎖把剩下的 Buffer 全部刷盤。這樣保證了退出路徑上沒有新的數(shù)據(jù)生成也不會卡住主程序。5.5 性能數(shù)據(jù)參考與容量估算在常見的高配服務(wù)器上普通 SSD 磁盤雙緩沖異步日志能實現(xiàn)百萬級日志行每秒的寫入能力。更保守地講和同步日志相比任何一條fprintf直接落盤的方案切換到雙緩沖異步方案后日志側(cè)性能都能提升一到兩個數(shù)量級。給一個我實際線上服務(wù)的配置參考業(yè)務(wù)HTTP 網(wǎng)關(guān)高峰期 QPS 1.2 萬每請求約產(chǎn)生 8 條日志日志寫入峰值約 10 萬條/秒文本量約 30~40 MB/s配置雙緩沖各 16MB刷新間隔 100ms日志等級 INFO實測結(jié)果業(yè)務(wù)接口 P99 耗時波動小于 1ms日志線程 CPU 占用約 12%這組數(shù)據(jù)可以當(dāng)作一個估算基線如果你們的日志量是這個規(guī)模的 5 到 10 倍就該考慮引入多級緩沖或者直接上專業(yè)的日志采集框架了。5.6 快速故障排查表現(xiàn)象可能原因排查手段日志文件出現(xiàn)缺口Buffer 容量不足 / 刷新線程未跟上檢查丟棄計數(shù)擴容 Buffer 或調(diào)短刷新間隔日志線程 CPU 過高格式化在后臺線程執(zhí)行 / 鎖競爭嚴(yán)重確保格式化在生產(chǎn)線程完成關(guān) DEBUG 日志日志亂碼或錯行二進制數(shù)據(jù)未轉(zhuǎn)義在 Write() 中加入轉(zhuǎn)義邏輯限制單條長度退出時最后日志丟失Shutdown 未清空剩余 Buffer檢查 Shutdown 實現(xiàn)確保刷完所有 Buffer日志按小時延遲刷新間隔過大 / 文件緩存未刷調(diào)小 flush_interval 或加入定時 flush6. 用了一段時間之后的幾點體會雙緩沖日志系統(tǒng)已經(jīng)在我們這邊服務(wù)里平穩(wěn)跑了挺長時間最大的感受是“日志”和“業(yè)務(wù)”終于不再互相牽扯。以前同步日志時代每次線上問題排查都要祈禱日志別把系統(tǒng)拖慢切到異步之后日志只是安靜地把該記的記下來業(yè)務(wù)線程完全不用關(guān)心磁盤的脾氣。如果只看設(shè)計雙緩沖方案的代碼量并不大核心邏輯可能兩三百行就能寫完。但真正值錢的不是代碼而是對邊角情況的處理。比如交換時 Buffer 的狀態(tài)判斷、Shutdown 時清理隊列的邏輯、超長日志的截斷與轉(zhuǎn)義這些細節(jié)決定了系統(tǒng)在線上是否可靠。文檔里不會告訴你這些坑只有實際踩過才知道。還有一點個人建議日志系統(tǒng)的代碼最好保持簡單、可讀、少依賴。它不像業(yè)務(wù)模塊那樣圍繞架構(gòu)演進穩(wěn)定和可靠永遠排在第一位。就算將來要升級也盡量在現(xiàn)有接口上做增量改動而不是推倒重來。下一篇文章我會把雙緩沖隊列日志系統(tǒng)的完整實現(xiàn)代碼展開講包括后臺線程的調(diào)度細節(jié)、文件滾動策略的具體寫法以及如何把日志量級擴展到更高。如果你現(xiàn)在遇到日志性能上的問題建議先按這篇文章的設(shè)計思路把手里的同步日志替換成異步雙緩沖版親身體會一下“日志不再拖后腿”的差別。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚欧国产无码精品在线| 中文字幕精品人妻丝袜| 亚洲黄色视频在线观看视频| 我爱搞逼综合网| 色五月综合网| 日本高清有码网址视频| 国产 三级自拍| 91综合熟女| 97精品国产精品免费观看| 亚洲国产精品久久久久久久久久| 色婷视频| 色综合色色| 九月激情婷婷| 天堂v无码免费视频| 中文字幕一区二区无码成人| 久久久免费视频18| 久热网| 日韩操呦呦影院在线观看| 五月婷色| 五月丁香影院| 伊人久久大香大香线蕉中文| 日本精品高清一二区一本到| 天堂中文资源在线bt| 国产高清免费不卡av| 啊啊啊啊啊啊好多水| 久久激情婷婷| 国产精品视频在线观看| 久久αⅴ| 国产真实子伦对白| 麻豆天美91| 欧美色视| 自拍偷拍国产欧美日韩韩| 翔田千里A片一区二区| 999精品女人| 欧美春色| 午夜精品久久一区二区| 91久久久亚洲| www.av在线视频| 日本视频一区二区三区| 色色五月天婷婷| 99ri精品| 天天操天天射青青草| 丰满翘臀美女影院视频| 免费成人在线熟妇网| 欧美影音在线| 男人的天堂久久| 久久91| 女人综合网| 国产福利电影| 爽极品影院| 欧美日韩国产中文精品字幕自在自线 | 欧美性综合| 天天干人妻| 国产丝袜高跟美女av免费观看| 久久久久久九九九九九九| 九一国产精品| 亚洲自拍偷拍视频在线| 日韩性爱1级片视频| 亚洲欧美在线观看2021| 天天日天天舔天天喷天天射| 日本999精品| 九九九热精品| 无码久久亚洲高清,| 天天摸夜夜添无码小视频| 日韩人成网站在线播放| 99无码| 99久热精品99re6热| 骚货操死你| 97国产超碰| 人妻天天夜夜爽一区二区| 伊人五月天青青草婷婷| 在线播放中文字幕| 肏逼福利网站| 婷婷亚洲综合| 人妻熟女一区二区| 国产福利电影| 婷婷五月色| 国产农村妇女精品一二区| 狠色婷婷久久一区二区三区_| 亚洲在线A| 97超碰久久| 国产精品视频自拍在线| 欧美大香蕉卡久久| 欧美日韩亚洲天堂| 无套内射性感少妇视频| 狠综合网| 国产成人99久久亚洲综合| 中文字幕av亚洲在线| 亚洲国产综合久久天堂| 校园激情狠狠四射| 色婷婷五月综合激情中文字幕| 日韩偷拍色图| 78m啪啪啪| 国产黄色影片在线观看| 久久99国产综合精品女同| 欧美天天在线| 在线欧美69V免费观看视频| 国产精品对白内射| 国产精品香蕉| 日韩成人电影AV| 日本高清熟女久久一区| 亚洲精品久久久久毛片A片拉屎 | 中文字幕精品丝袜| 加勒比色99999| 日韩美女啪啪一区| 色狠狠综合噜一二三区| 国产一级高清免费观看| 黄网在线播放| 超碰到97情色| blacked精品一区国产| 久久久久久夜夜夜夜夜| 91伊人久| 亚洲男人的天堂在线看| 久久精品日韩| 国产九九九九九九| 欧美99热| 欧美色综合网| 中文字幕人妻丝袜| 亚洲97超碰| 9 9精品一区二区三区| 色69大色97香蕉| 久操不卡视频| 久伊人网78| 狠狠色综合网| 啊啊啊啊啊啊好多水| 奸色色 男人天堂 天天射| 夜夜欢天天干| 久久久久久中文字幕中文字幕最新| 日韩电影中文字幕| 情色av电影| 狠狠色伊人亚洲综合网站色| 国产精品。| 丁香五月偷拍| 深夜视频| 91精品国产综合久久久蜜臀| 亚洲春色欧美激情自拍| 九九亚洲色在线观看| 亚洲精品影视老司机| 欧美伦乱爱| 国产二区视频在线观看电影| 是还免费视频1727我| 曰韩精品视频一区二区| 女人久久久| 91 丝袜在线| 在线观看亚洲专区| 人人妻人人爽一区二区三区| 久久综合久久综合人久久夜精品| www.久久制服糖| 动漫av中文| 91无码中出人妻视频| 国产精品天堂| 亚洲日本天堂| 天综合网| 亚洲一区二区精品福利| 欧美97在线欧| 91插B网站| 男人的天堂不卡一区二区 | 九九久久久九九| 色黄污美女啪啪啪免费网站| 日本欧美不卡| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 欧美一区二区三区黄色影视| 五月丁香久久| 香蕉久久AⅤ...| 欧美激情一| 大香蕉十区| 黄色网址在线免费观看| 97免费视频在线观看| 久久久久元码视频| 国产精品青青草| 免费看黄视频亚洲网站| 亚洲欧洲日本精品中文a∨| av草草在线电影| 青青草日本无码| 国产传媒操逼视频| 乱伦一二三| 91欧美少妇| 婷婷五月天久久精品视频一区二区三区 | 中日韩久久久| 综合伊人网12色| 熟妇色99| 国产精品毛片| 国产妇女精品视频青青草| 欧美色图天堂在线| 欧美日韩第一页| 日韩熟妇二区| 在线无码操| 欧美中文字幕日韩在线| 国产在线视频午夜精华在| 99精品综合久久久久五月天| 人妻少妇精品视频一区二区三区| 91插B网站| 亚洲精品国产av天美传媒| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 人妻一区二区三区视频| 国产中文字幕在线点播| 久久久久久网址| 国产色图乱伦| 亚洲欧美人妻| 色综合一区二区三区| 欧美综合1性辶| 美女让帅哥通她小鸡鸡| 久久婷婷欧美| 97视频900| 天天碰操中国年青熟妇| 大香蕉国产中文自拍| 欧美性爱一内片一区二区三区| 亚洲激情综合| 五月激情小说| 91丝袜美女| 欧美日不卡| 九九内射在线| 麻豆 欧美 日韩| 天天综合91在线| 成功精品影院| 亚洲欧美九九九| 大香蕉宅男伊人| 国产亚洲精品美女| 69丨亚洲丨精品丨入口免费播放| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 色综合天天| 六九九九| 精品久久久不卡一区二区| 欧美日韩国产电影| 色五月激情AV在线| 国产乱码久久久| 9丨久久九九九| 日本大香蕉综合网| 国产在线强奸视频| 亚洲精品日日夜夜52| 91精品综合久久久久久五月丁香| 吻戏激情性巴克| 97视频网站在线观看| 妇女视频网站| 国产精品久久久久9999小说| 久久精品人妻一区| 福利色色| 青青操97| 91操人| 午夜男人的天堂| 欧美一级AAAAAAA| a天堂视频| 99视频内射三四| 99.色网| 97超碰总站| 三级色影综合网| 久草精品国产99| 东京热男人的天堂精品| 蜜桃久久综合视频| 亚洲欧美日韩电影网站一区| 久久一区二区蜜桃| 操操逼操操逼操操逼逼| 99热精品青草在线 | 亚洲欧美国产成人综合不卡| 在线电影亚洲色图| 久久91| 91精品人妻电影| 人妻夜夜爽天天爽麻豆三区网站| 欧美亚洲韩国视频十五区| 欧美激情综合网| 国产成人久久久精品免费AV| 北条麻妃性愛视频| 国产品精品自在在线午夜免费 | 中文字幕人妻色偷偷久久皮| 日本色日夜干| 久久老子无码午夜伦不卡| 国产丝袜美腿美女麻豆| 69精品| 久热大香蕉| 亚洲综合九| 91社区伊人| 九九色色| 欧洲精品二区| 美女被艹尤物视频| 人妻熟妇久草在线| 自怕偷自怕亚洲精品| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 中国探花熟女| 亚洲综合另类色图| 日本亚洲熟女视频| 国产精品69久久久久久久| 少妇一区二区三区高速| 国产天天骚| 91亚洲人| 久久色人体| 97国产精品一区| 在线啊v一区| 女上位精品在线| 久草视频观看视频在线| 国产女主播视频在线观看| 亚洲图片色图欧美另类| 国产精品欧美激在线| 亚洲无码精品AV久久久| 亚洲蜜臀懂色| 91成人久久| 国产热av| 婷婷亚洲中文字幕在线| 大JI巴好深好爽又大又粗视频| www.久久| 国产白丝精品在线观看| 欧美日韩人人精品| 国产又粗又长的视频| 激情干在线| 99日免费视频中文字幕| 51久久夜色精品国产麻豆| 国产视频一区二区三区久久亚洲天堂| 神马久久久久| wwe 天天干.com| 久久亚州精品成人Av无| 97国产中文| 狠狠操夜夜操蜜桃视频三区| 成全动漫视频观看免费下载| 91黑丝美女| 秋霞无码av鲁丝片一区| 91痴汉| 97资源制服丝袜| 欧美18老人禁| 射丝袜大香蕉| 又大又黄国产| 懂色av色欲av蜜臀av| 精品中文一区二区| 91蜜臀在线久久久久| 99久久精品无码一区二区毛片免费| 色哟哟国产精品免费网址| 97超碰9| 久婷婷一区| 黄片直播三级黄片两女一男| 97欧美| 青青草色插素人| 婷婷丁香五月激情啪啪| 女沟厕偷窥piss小便| 伊人国产视频| 4虎在线视频| 日韩操人| 人人干黄色| 2020中文字幕在线| 一区二区国产视频在线观看| 五月丁香六月激情综合| 天天躁日日躁xxxxx| 97精品视频在线播放| 大香蕉色十月| 久久高清欧美国产| 亚洲欧美日韩免费电影| 亚洲天堂2020| 亚洲AV在线资源| 精品无码一区二区| 色婷婷激情| 秋霞久久亚洲精品成人| 一级一性爱免费视频| 天天躁狠狠躁av| 色呦呦、国产精品| 亚洲丁香花色| 在免费jIzzjIzz在线视频| 亚洲熟妇白浆无码AV| 精品91日日夜夜超清资源| 狼人久草| 国产精品爱欲| 欧洲在线性爱视频| 久久久青青草| 亚洲91射| 亚欧美综合网。| 超碰超碰欧美| 人妻激情偷乱视频一区二区三区| 亚洲AV无码国产精品久久久久| 日本性爱视频一级| 99久久亚洲精品无码毛片潘甜甜 | 久久精品一区一起草| 99999精品成人| 精品精品精品| 精品久久久无码| 亚洲欧美日韩夜夜| 操逼网站地址| 国产人妻天天干精品| 爽极品影院| A一区片| 91丨人妻丨国产丨丝袜| 天天色欧美| 久久久久久久久女黄| 国产精品久久久久久久久久久久久久久 | 亚洲天堂东京热| 久热久| 中日高清无码操逼视频| 精品久久99| 人人色人人操在线| 五月天色色网站| 国产粉嫩出水在线播放| 中文字幕精品资源在线| 国产精品久久久三级无码| 亚洲人妻中文高清| 五月天黄色激情视频| 国产欧美日韩精品中文| 欧美成va视频网站| 色色五月天婷婷| 最新欧洲欧美日本激情网站| 韩国轻伦国内自拍一区| 丝袜性亚洲| 九九自拍伦理| 久操免费电影| 成·人免费午夜在线观看| 精品国产乱码久久| 人妻一区视频| 91丝袜美女| 久久久9视频| 国产精品网站www| 99蜜月精品久久| 熟妇色99| 91香蕉视频在线观看免费| 青椒国产97在线熟女| 日本三级R| 亚洲综合另类| 91天天c| 欧美成人贴图| 日韩无码操逼片| 可以免费观看的日韩av毛片| 色色五月婷婷| 青青草在线视频欧美| 任我爽在线视频免费观看| 久夜操| 欧美精品精品一区二区| 在线国产一区二区av| 999在线电影香蕉| 美女黑人91神马| 人妻少妇精品视频一区二区三区| 亚洲国产精品99久久久| 思思热在线观看| 欧美性爱一区| 熟妇熟女一区二区三区| 国产色呦呦| 久久久久久久 九九九九九九九| 欧美青青视频| 欧美激情久操网| 黄片aaaaa一区| 午夜天堂精品久久久久91| av麻豆啪啪| 精品999一区二区| www.91理论| 天天影视网综合少妇| 大香蕉伊然在亚洲91| 天天肏天天干| 天天色综合天天操| 日韩噜噜69| 91久久青青草原精品| 综合欧美日韩在线观看| 久久伊人青青草| 日日骚中文字幕| 精品一区二区成人动漫| 91久久久老司机| 白丝被操91| 日韩AV电影网站| 美女上床网站| 特级毛片特黄久久免费看| 超碰激情808| 96麻豆精品一区二区三区| 玖玖爱免费观看视频| 欧美 传媒 麻豆 日韩 偷拍| 久久色网| 97操97色| 国产高清自拍| 亚洲天堂人妻一区二区| 哈哈操电影| 国产农村一一级特黄毛片| 99re6国产精品99re| 免费啪啪av| 少妇人妻精品| 国产美女销魂在线观看不卡| 久久视网78| 香港澳门日本三级网站| 亚州成人a∨| 人人爱人人乐人人操| 好吊色在线观看| 91精片| 嗯嗯,啊啊,国产精品| 色噜噜国产精品视频一区二区| 亚洲午夜av| 综合网亚洲在线| 五月天激情小说| 国产成人一级av88| 熟女AV一区| 丝袜剧情| 78操B| 麻豆 欧美 日韩| 久久国产AⅤ| 青青青青草av在线观看| 波多野42部无码喷潮在线观看 | 中文字幕中文字幕一区二区| 蜜桃精品视频一区二区三区| 久久99精品视频| 校园春色亚洲色图| 丝袜喷水在线| av无码av无码专区| 久操免费视频| 亚洲AV资源| 91在线视频免费播放| 九九免费影片| 亚洲日韩AV视色| 国产亚洲深夜激情| 天天日天天干天天摸天天操| 久久精品人体| 老熟妇一区二区三区…| 欧美热图99| 射丝袜高跟鞋99| 国产三区免费在线观看| 中文久久久| 偷拍在线观看视频| 99激情| 日韩美女啪啪一区| 99re这里只有| 精品九九九九九九九| 色牛牛AV| 久久草草亚洲蜜桃臀| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 免费成人自拍视频在线| 男人的天堂久久狠| 香一区二区三区| 久草网站免费在线观看| 男人天堂网站| 性欧美999| 日韩中文字幕av在线播放| 青青草天天亲夜夜操网| 小日子操bb在线看| 97久久超碰| 夜夜爽夜夜摸夜夜操免费视频| 欧美午夜精品久久久久久超碰| 操逼片国产| 999久久久| 蜜臀99久久精品久久久久久| 后入式视频国产自| 美女大乳久久久久久久女人18| 国产小u女在线观看| 综合激情二| 蜜臀久久久99久久久久 | 91综合色噜噜| 少妇的嫩逼图片| 欧美玖玖爱免费玖玖| 日韩一级二级在线| 亚洲欧洲小说图片视频 | 大乔未久88一区| 人妻在线臀日韩| 午夜人妻精品综合在线| 97 国产一区| 伊人久久婷婷| 国产欧美日韩在线不卡第一页| 亚洲激情在线观看一区| 熟女乱3伦999| 1769成人国产精品视频| 囯产精品久久久久久久久久二区三区| 日韩无码服务区| 屁股久久久久久久久| 啊啊啊不要啊啊受不了了视频在线 | 日韩影片中文字幕一区二区三区| 天天日夜夜爽| 日韩久久三区| 大香蕉婷婷| 久久九九99| 六月婷婷综合| 亚洲午夜AV| 337p大胆噜噜噜噜噜91Av| 在线观看综合精品亚洲| 欧美一级做a爰片免费视频| 亚洲黄色网址视频| 欧美亚洲日本激情在线| 操美女高潮抽搐白浆| 图片区小说区| www九九热| 开心婷婷五月| 国产高清1234区| 精品无码一区二区| 加勒比综合九九99视频在线播放| 97天天弄| 大白逼三四级| 好属操| 国产毛片毛片4p懂色| 亚洲码在线中文在线观看| 18禁止看精品中文字幕| 黄色片,com| 黑人精品成人一区二区三区| 亚洲色五月| 久久色激情一区二区三区| 9999伦理视频| 香蕉色网| 97免费在线观看| 999久久久免费精品国产牛牛| 波多野结衣AV无码一区| 操逼逼中文字幕| 九九色婷婷| 日韩熟女精品无码专区一区二区| 色九九九九| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 国产精品日日摸夜夜添骚逼| 大香蕉免费3| 久久透逼视频| 大香蕉久操| 天天影视网综合少妇| 久久久精久久久| 色踪合AV| 清纯唯美第一页| 熟妇乱伦一区二区| 欧美自拍偷拍免费观看| 久久理论字幕视频| 加勒比无码毛片| 成人精品久久| 欧美特大AA级黄片| 五月婷色| 欧美与日韩97| 国产成久久综合片| 妺妺跟我一起洗澡没忍住| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 一区二区首页| 男人天堂毛片| www.91理论| 欧美色九九九| 欧美宗合网| 极品尤物自安慰| 婷婷三区| 成人性交免费视频| 国产精品熟女丝袜一区二区| 国产a级精品| 黄色工厂这里只有精品| 无码精品蜜桃一区二区三区ww| 黄页18禁| 麻豆成人影音在线| 亚洲欧洲综合视频在线| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 91free福利| 亚洲综合性网址| 日韩欧美大片免费高清啪啪| 嗯啊不要在线| 天天干人人乐| 亚洲精品亚洲人成人网| 狠狠操狠狠燥| 日本欧美一区二区三区免费| 久久久久久久78| 日本阿v天堂在线观看| 九九热精品| 日本三级精品| 日本污ww视频网站| 美女爽爽爽刺痛洞洞| 亚洲蜜乳av| 亚洲少妇激情视频| 亚洲无线码欧洲精品区别| 丁香五月天婷婷姐| 欧美999| 97超碰69| 熟女探花啪啪| 高树玛利亚无码流出| 久久精品国产亚洲AV清纯| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 口爆欧美91| 欧美黄色手机在线观看| 和协无码影院| 被男人添B超爽视频| 国产美女91视频| 天天弄天天操| 日本精品九九九| 亚洲天堂无码| 久九九九九九九九热| 操逼日韩无码| 亚洲91色| 午夜天堂网| 久久中文字幕一区不卡| 欧亚成人在线视频| 8050午夜少妇无码| 天天日天天看| 中文字幕丝袜人妻| 国产精品一区午夜福利| 亚洲影视第一页| 99色综合| 超碰精品国产无码| 色悠久久久av| 九九热精品| 乱伦一二三| 99精品久久久久久| 色噜噜婷婷| 亚洲av性爱电影| 综合91网| 国产这里只有精品| gogogo免费高清看中国国语| 国产欧美日产一区二区三区 - 国产欧美日| 亚洲中文一区二区三区视频| 97免费在线观看| 欧洲亚洲人妻无码中字久久三区四区 | 3028国产精品| 9Ⅰ超碰| 亚洲高清综合网| 天美国产三级传媒| 欧美极品性爱天天射| 精品女同一区二区三区| 欧洲Au麻豆| 自拍大香蕉乱插| 欧美裸体美女日麻屄| 97精品久久久久中文字幕| 大香网伊人久久综合| 久久精品人人做人人看| 2019亚洲男人天堂| 久久这里精品国产99丫e6| 久久久久久久久成人av解说| 91中出| avav青青草久久夜| 1234区中文字幕在线观看_青青草国产在线_日韩一区二区 | 亚洲色 国产 欧美 日韩| 熟女人妻精品一区二区视频| 97天天在线| 日韩99999色| 91干熟女| 操操操日本的逼| 欧美一级在线观看成人| 精品国产乱码久久久久久久久久毛片| 日本精品国产视频| 久久精品国产精品亚洲艾通辽熟妇| 久久无码成人| 日韩性爱啪啪视频| 亚洲色图A| 人人操人人射人人干| 国产视频一区二区三区久久亚洲天堂| 日本久久天堂| 另类一区| 强奸乱伦日韩AV| 日本成人A片免费看| 亚洲阿v天堂在线| 欧美色另类| wuyechaopeng| 中文字幕第23区| 色噜噜人妻丝袜AV资源| 人人手机欧洲亚洲国产人妻| 中文字幕 码 自拍 视频 区| 人妻-91porn| 美国aaaaa一级黄片| 亚洲色图尤物视频| 欧亚无码视频| 亚洲影院成人| 黄片视频观看| 欧美色女人| 东京热天堂网| 97在线视频免费| 校园春色五月天| 婷婷五月天激情四射| 色综合天天爱去电影网| 国产精品乱码久久久| JuliaAnnXXX888| 91 偷| 91亚洲影视| 青青草中文字幕| 97超碰超碰| 亚洲一区二区三区春色| 亚洲日韩精品久久久久一区壹牛 | 天天色播亚洲综合网站| 综合久久欧美| 国产超碰在线| 青青欧美在线| 国产精品欧美激在线| 伊人精品视频| 操淫穴亚洲五月丁香| 亚洲人综合| 丝袜美腿操av| 69麻豆天美| 伊人一级免费黄片| 亚欧成人综合影院| 日韩不卡av一二三| 99re9在线| 中文字幕制服欧美久久一区| 国产熟妇一区二区| 国产亚热在线久久| 免费视频97| 高清无码久操视频| 青青伊人这里只有精品| 日韩精品一区的| 91 手机在线播放 绯色| 啊啊啊啊好疼视频| 欧成人精品一区二区三区| 97视频免费在线观看| 亚欧免费| 丁香五月婷婷色| 桃色六月天| 蜜桃狠狠色伊人亚洲综合| 久久9精品| 亚洲男人的天堂亚洲| 特污免视频| 欧色性第一页| 91精品国产综合久久久蜜臀酒店| 美女操逼A A| 一区二区三区激情在线观看| 女人的久久久| 夜夜免费视频| 绯色一区二区三区不卡少妇| 无码WWW免费视频网站| 欧美日韩91| 黄色十八禁网站| 校园春色亚洲色图| 中国国产精品一区视频| 日韩人体偷拍| 91热色| 成人日韩3| 蜜臀久久99精品久久久久久久久| 青青伊人久久| 久久久亚洲熟妇熟女| 人人操人人叉人人插人人| 久久久com| 精品国产乱码久久久影院| A一区片| 大胆91| 久久精品国产97欧美精品亚洲| 欧美性爱第一页久久| 大香蕉九九| 60秒免费视频| 国产家庭乱伦性爱视频| 91 手机在线播放 绯色| 91老妇女| 无码精品蜜桃一区二区三区ww| 精品99999久久久久久| 天天日天天干天天摸天天操| 很黄很色的视频在线观看| 日本天天吊| 99精品九九九九九九| 强歼乱伦资源网| 亚洲免费97免费| 天天草天天日| 欧美色偷拍| 超碰99在线| 久久久久9999| 国产三级中文字幕粉嫩| 亚洲五码一区二区三区| 最新精品久久蜜桃 | 久久久蜜桃臀无码视频| 色色色色综合网| 欧美综合狠| 三级网色| 97干综合网| 一级特级aaaa毛片免费观看| 加勒比海成人视频网| 秋霞网—男女啪啪亚洲免费体验区 | 不卡码视频| 国产视频人人网| 麻豆亚洲Av成人无码一区精品| 综合色区偷拍| 大奶啊啊好爽 | 91色鬼| 99久久亚洲精品无码毛片潘甜甜 | 国产无码精品高清| 大香蕉在线视频重口味毛片在线| 美国日韩黄片| 久久夜嗨| 干干干天天| 4虎在线视频| 亚洲熟女av日韩熟女| 后入综合久久| 婷婷月色| 男女性无套 免费九一| 日韩av三四区| 久久久久亚洲AV无码专区少妇| 色综合20p| 中文字幕性感少妇av| 日天天九九天堂666| 无码免费一区二区三区啪啪| www.av家庭乱伦| 四季AV一区二区凹凸精品小说| av天堂天堂av日韩| 久久久草草精品| 五月婷婷综合激情| 中日韩免费看男女操逼大全| 麻豆性爱视频在线播放| 操逼操逼逼操操逼91| 亚洲 欧美 日韩另类 麻豆| 五月天激情四射| 永久免费观看的毛片的网站| 亚洲精品国产av天美传媒| 黄片无码在线制服| 91成人无码| 欧美日韩少妇色情| 牛黄色久午久| 丝袜内射| 久久久久久久久久久久久久久久9| 日日摸日日碰| 国产三级电影免费观看| 91精品国产一区三一| 第四色色综合91| 成人亚欧免费视频| sewuyueav| 97色爱| 九月丁香综合网| 亚洲熟女av中文字幕| 97干天天| 激情综合五月丁香| 亚洲成aⅴ人片不卡无码| 我爱操| 亚州乱码中文字幕综合久久久| 久久久久久中文字幕中文字幕最新| 亚洲色欲天天天堂色欲网女| 大鸡巴久久| 欧美日韩婷婷中文| 六六久久日韩不卡| 亚洲精品官网在线观看| 国产久久久久久| 亚洲十八禁止| 高清不卡视频| 色婷婷综合网站| 久久免费99精品久久久久久| 久久久精品,3| 国产欧美后入| 日韩熟女精品无码专区一区二区| 免费A V在线| 亚洲精品性爱片| 日韩一级二级三级在线不卡观看完整| 欧洲亚洲天堂精品| 日本丝袜美腿人妻九九| 欧美日韩国产在线| 牛牛aV| 二男一女成人A片| 张柏芝国产一区在线观看| 欧美,日韩,中文,另类| 啊啊啊在线观看免费视频| 黑操B| 91久久久久久| 人妻激情偷乱视三区频一区二区| 免费一级黄色录像影片| 国产二区三区免费视频| 97在线视频网站| 啊啊啊操死我了| 97天天插| 久久机热| 日本好吊色视频| 动漫区日韩区欧美区| 婷婷激情一区二区三区俺也去| 亚洲综合色网| 超碰av在线| 99热99色| 无套内射性感少妇视频| 日韩视频啪啪| 伊人五月天激情| 家庭乱伦性爱av| 99国产在线 精品 视频| 草草影院最新网址| 午夜亚洲国产理论秋霞| 热无码中文亚洲H一道本一区二区| 亚洲情色综合| 国产午夜精品理论片a大结局| 亚洲日韩电影| 91啪啪| 日本孕妇一区二区视频操逼免费看 | 日本欧美成人片AAAA| 亚洲精品久久久久久久蜜桃臀| 国产三级日产三级韩国三级| 亚洲av影院在线观看| 日韩激情中文字幕有码| 婷婷中文网| 操逼日韩无码 | 91综合网站| 激情综合网亚洲| 在线人成亚洲视频免费观看| 伊人一区二区在线播放| 欧美日日操| 久久一区二区三区入口| 精品婷婷| 久99久视频精选| 四季AV综合网址| 久草精品视频| 青青草在线视频美女| 亚州性色| 国产高清视频无码在线| 久久国产AⅤ| 人人人摸人人| 欧美亚洲第一页| 一区操逼日比视频| 天天肏夜夜肏| 国产suv精品一区二区四| 色天堂综合| 蜜桃传媒视频第一区入口在线看| 色欲久久99精品久久| 欧洲亚洲人妻无码高清久久三区四区| 亚洲全色网| 宅男影院久久久,99| 日韩一级片在线看| 翘臀vidoes| 曰韩少妇无码| 九九九九九精品| 三级激情网站| 91精品综合久久久久久五月丁香| 好吊色一区| 久久精品无码不卡| 久久久久久久人妻丝袜| 操逼不卡中文字幕| 日本特黄f c2| 亚洲日韩久久精品一区| 99热这里只有精品18| 一级片在线观看高清无码| 综合久久婷婷| 日韩啪啪啪视频| 东京热毛片调教| 性爱网站一区二区| 狠狠爱综合网| 日本高清加勒比| 久久久999| 日韩一级片在线看| 99 国产丝袜在线| 精品视频久久| 中文字幕aⅴ在线视频| 国内精品999| 欧美色图99| 欧美精品日韩久久久九| 黑操B| 国产精品大屁股999| 爱妃国产亚洲视频中文字幕| 国产成人综合网| 欧美天堂亚洲电影院一区在线播放| 蜜臀久久99精品久久久久久酒店 | 91丝袜美腿网站| 伊人欧美大香蕉视频| 波多野结衣被操50分钟免费视频 | 亚洲巨爆乳一区二区三区四季网| 国产精品久久伊人| 日韩啪啪啪视频| 天天看天天日天天操| 国产精品久久久久av| 91丨精品丨国产丨丝袜| 欧美性爽xyxOOOO| 一区二区三区精品黑丝白丝酒店对鸡 | 久草加勒比一区在线| 中文字幕一区二区三区视频播放| 蜜桃色院一区久久| 精品日韩人妻精品一二三区| 青青网三级视频| 久久久性爱| 激情五月天色色| 精品国产乱码久久久久久免费| 岛国黄色短视频| 亚热日本熟女| 免费一级性爱久久| 中文字幕亚洲欧美在线不卡| 色噜噜精品一区二区三| 抽查国产福利主播| 中英熟女操女| 蜜桃传媒一区二区亚洲| 乱欲视频| 91美女在线精品视频| 少妇久久久久久久久| 一区二区激情国产熟女| 美女性91| 日韩乱码Av| 思思热一热婷婷热一热| 91丝袜| 蜜桃久久综合视频| 天天综合-91入口| 中文高清一区二区的| 中文字幕一二三| 日韩三四五区| 日本国产欧美一区三区二区| 久久色一区| 国产精品视频自拍在线| 美女AV一区二区| 中文字幕丝袜国产第一页不卡| 加勒比海成人视频网 | 97人妻人人躁人人玩人人| 人妻99p| 2017天天插| 麻豆2区1区天美| 欧美18 在线观看| 97精品综合久久网| 美女操逼福利视频| 新怡红院| 啊啊啊啊啊在线观看网址 | 丁香九月激情| 爱爱啊啊啊| 蜜桃视频一区二区三区在线观看| 国产强奸91| 91在线丝袜| 920日本午夜免费| 欧美人人操人人插| 久久久久久久六六| 九九Av| 国产精品不卡一区二区三区av| 老司机免费视频在线91| 丁香九月激情啪| 又大又大又大又粗爽高潮观看| 午夜啊啊啊| 婷婷天堂站| 偷拍偷窥与盗摄视频专区| 久久精品国产久精国产| www.五月天| 亚洲色图尤物视频| 欧美综合综合| 东北女人的毛片| 97碰在线视频| 伦激情人妻另类人妻| 精品人妻久久久久一区二区三区| 97国产精品国| 中文字幕成人理论在线| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 欧美一区二区三区日韩| 亚洲伊人成综合成人网| 呦女网站| 一道本东京热加勒比一区二区三区 | 亚洲91av| 强奸乱伦av电影| 蜜臀一区二区三区在线 | 天天综合精品| 国产精品点击进入在线影院| 易易A毛视频| 亚洲天堂日本| 欧美专区第一页| 国产一级αv免费看片| 国模无码人体一区二区三| 久久97视频| 夜夜嗷嗷一区二区| 欧美性猛交美女自慰91| 成年人性爱日韩| 久久精品人人做人人看| 熟女熟妇一区二区三四区| 欧美亚洲高清不卡| 精品国产一区二区久久| 97天堂| 婷婷亚洲五月***久久| 在线有码中文字幕| 久久久久国产精品久久久| 男人的天堂三级| 精品人妻一区二区三区视频| 91亚洲精品青草| 丁香五月激情综合| 欧美黄色大香蕉一区二区| 999久久久精品国产| 乱老熟女一区二区三区| 亚洲第一综合| 91呆哥人妻| 亚洲少妇综合在线播放| 人人操我人人干| 亚洲阿v天堂在线| 美女网站91| 日韩内| 啊啊啊啊,啊啊好多水| 国产视频小说| 九九热精彩视频| 粉嫩AV一区夜夜嗨| 欧美 亚洲 大香| 人妻啊啊人妻啊啊| 亚洲天堂电影精品一区| 国产激情综合五月久久| 日韩性爱网址| 成人日本视频人妻在线| 国产剧情AV不卡在线观看| 亚洲成a人片在线观看中文!!!| 三级AV入口| 一级日本牲交大片好爽在线看| 免费无码婬片AAAA片直播色戒| 九九九九精品九九九九| 97综合国产| 看全色黄大色大片免费视频| 国产精品96久久久久久| 91青青草| 凹凸视频在线一区二区| 激情黄色片在线观看| 欧美性爱18观看| 伊人精品久久网站| 国产精品嫩草影院免费| 东北丰满熟女国产一区| 国产精品成人福利在线| 日韩激情中文字幕有码| 欧亚在线视频| 99色在线| 啊啊啊好湿国产一二| 激情终合网| 日韩色女精品| 我要色综合网站|