国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

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

Termux 熱節(jié)流自救:用 SQLite 搭建 10 層 Agent Mesh 實(shí)戰(zhàn)

Termux 熱節(jié)流自救:用 SQLite 搭建 10 層 Agent Mesh 實(shí)戰(zhàn) 之前在 Termux 里跑并發(fā)任務(wù)時(shí)經(jīng)常遇到一個(gè)奇怪現(xiàn)象任務(wù)一多手機(jī)背面就開(kāi)始發(fā)燙緊接著 CPU 頻率像被一只手按住所有進(jìn)程一起變慢。這個(gè)現(xiàn)象就是 thermal throttling熱節(jié)流。它不會(huì)直接報(bào)錯(cuò)但會(huì)讓你的多進(jìn)程系統(tǒng)從“流暢”變成“寸步難行”。本文將圍繞這個(gè)問(wèn)題記錄一套在 Termux 中通過(guò) SQLite 搭建 10 層 agent mesh 的完整方案包含可運(yùn)行的 Python 代碼、數(shù)據(jù)庫(kù)表設(shè)計(jì)、溫度監(jiān)控方法和進(jìn)程調(diào)度策略。無(wú)論你是想在舊手機(jī)上搭建一個(gè)實(shí)驗(yàn)性的多 Agent 任務(wù)系統(tǒng)還是準(zhǔn)備把 Termux 當(dāng)作低功耗開(kāi)發(fā)環(huán)境這篇文章都值得收藏。1. 背景為什么要在手機(jī)上跑 10 層 Agent Mesh1.1 這個(gè)實(shí)驗(yàn)解決什么問(wèn)題日常開(kāi)發(fā)中當(dāng)我們提到“多 Agent 協(xié)作”第一反應(yīng)往往是 K8s、Docker Compose、Redis 消息隊(duì)列這些重型基礎(chǔ)設(shè)施。但如果你手里的設(shè)備只是一臺(tái)安卓手機(jī)沒(méi)有 root 權(quán)限也沒(méi)有完整的 Linux 內(nèi)核管理能力這些方案基本都跑不起來(lái)。Termux 提供了一個(gè)輕量級(jí)的 Linux 環(huán)境但它對(duì)進(jìn)程管理、系統(tǒng)服務(wù)、網(wǎng)絡(luò)端口綁定都有一定的限制。本文要探討的是如何不依賴復(fù)雜基礎(chǔ)設(shè)施僅用 Termux SQLite Python 就搭建出一個(gè) 10 層任務(wù)處理網(wǎng)格并且保證長(zhǎng)時(shí)間運(yùn)行不觸發(fā)熱節(jié)流。一個(gè)典型的 agent mesh 場(chǎng)景是這樣的系統(tǒng)里有多個(gè) worker 節(jié)點(diǎn)每個(gè)節(jié)點(diǎn)處理特定類型的任務(wù)。任務(wù)從第一層進(jìn)入經(jīng)過(guò)抽取、清洗、轉(zhuǎn)換、計(jì)算、聚合等多個(gè)階段最終輸出結(jié)果。每一層都可能有多個(gè) agent 并發(fā)處理任務(wù)層與層之間通過(guò)共享的存儲(chǔ)介質(zhì)傳遞數(shù)據(jù)。在傳統(tǒng)架構(gòu)中這個(gè)存儲(chǔ)介質(zhì)可能是 Redis、RabbitMQ 或 Kafka但在 Termux 這種輕量環(huán)境里SQLite 反而成了最合適的選擇。1.2 SQLite 為什么適合做 Agent 總線很多人對(duì) SQLite 的印象還停留在“單機(jī)小數(shù)據(jù)庫(kù)”覺(jué)得它撐不起并發(fā)場(chǎng)景。實(shí)際上SQLite 在 WALWrite-Ahead Logging模式下多進(jìn)程并發(fā)讀、單進(jìn)程寫的能力足以支撐中小規(guī)模的 Agent 任務(wù)調(diào)度。關(guān)鍵在于你怎么設(shè)計(jì)表結(jié)構(gòu)和事務(wù)粒度。SQLite 相比消息隊(duì)列有幾個(gè)不可替代的優(yōu)勢(shì)零配置Termux 里直接安裝就能用。數(shù)據(jù)庫(kù)即文件備份、遷移、查看都非常方便。支持事務(wù)、索引、唯一約束可以避免任務(wù)被重復(fù)消費(fèi)。一個(gè)文件就能保存全部任務(wù)狀態(tài)排查問(wèn)題時(shí)用 db browser 打開(kāi)就能看。缺點(diǎn)當(dāng)然也有寫入并發(fā)能力有限單條記錄大小不宜過(guò)大。但對(duì)于 agent mesh 這種以任務(wù)狀態(tài)流轉(zhuǎn)為主、消息體通常只有幾 KB 的場(chǎng)景SQLite 的瓶頸完全夠用。1.3 熱節(jié)流是最大的敵人在手機(jī)上跑任務(wù)最怕的不是 CPU 不夠快而是“發(fā)揮不出來(lái)”。手機(jī) SoC 有嚴(yán)格的溫度控制策略當(dāng)芯片溫度超過(guò)閾值時(shí)系統(tǒng)會(huì)主動(dòng)降低 CPU 頻率、限制核心調(diào)度甚至關(guān)閉高性能核心。這個(gè)機(jī)制在 x86 設(shè)備上通常叫 PROCHOTProcessor Hot信號(hào)在 ARM 設(shè)備上則是通過(guò) thermal_zone 溫度節(jié)點(diǎn)與 governor 策略共同實(shí)現(xiàn)。熱節(jié)流帶來(lái)的問(wèn)題非常隱蔽你的進(jìn)程并沒(méi)有崩潰但運(yùn)行速度可能會(huì)降到原來(lái)的十分之一。如果 agent 之間有超時(shí)機(jī)制還會(huì)引發(fā)連鎖的任務(wù)堆積和重復(fù)處理。所以在 Termux 中搭建多 Agent 系統(tǒng)第一優(yōu)先級(jí)不是“跑滿 CPU”而是“控制溫度”。2. 環(huán)境準(zhǔn)備Termux 里的最小開(kāi)發(fā)棧2.1 安裝 Termux 并更新軟件源Termux 的安裝渠道比較特殊Google Play 上的版本已經(jīng)停止維護(hù)推薦從 F-Droid 或 GitHub Releases 下載最新 APK。安裝完成后首先執(zhí)行pkg update pkg upgrade -y這一步會(huì)更新軟件源和已安裝包。需要注意如果你的 Termux 是剛安裝的pkg命令可能需要先初始化存儲(chǔ)目錄執(zhí)行termux-setup-storage授權(quán)存儲(chǔ)權(quán)限。2.2 安裝 SQLite、Python 與監(jiān)控工具本文的實(shí)戰(zhàn)部分以 Python 為例需要安裝以下包pkg install python sqlite clang -y pkg install termux-api -y這里說(shuō)明一下每個(gè)包的用途python用來(lái)編寫 Agent 工作循環(huán)。sqlite提供 SQLite 命令行工具方便調(diào)試和查詢。clangPython 的某些依賴需要編譯提前安裝可以避免報(bào)錯(cuò)。termux-api用來(lái)讀取電池溫度、充電狀態(tài)等系統(tǒng)信息是熱節(jié)流保護(hù)模塊的基礎(chǔ)。如果你希望 Agent 輸出更規(guī)范的日志還可以安裝pandas、pydantic這類包但本文為了保持依賴最小化只用 Python 標(biāo)準(zhǔn)庫(kù)。pip install --upgrade pip國(guó)內(nèi)網(wǎng)絡(luò)環(huán)境下pip 源如果不穩(wěn)定可以臨時(shí)使用清華鏡像pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple版本方面需要提醒一下Termux 的軟件源是滾動(dòng)更新的不同時(shí)間安裝的 Python 和 SQLite 版本可能不同。本文的代碼只使用 SQLite 的基礎(chǔ)語(yǔ)法和 Python 標(biāo)準(zhǔn)庫(kù)只要你的 SQLite 版本在 3.8 以上支持 WAL 模式基本不存在兼容性問(wèn)題。2.3 規(guī)劃項(xiàng)目目錄建議按下面的結(jié)構(gòu)組織項(xiàng)目agent-mesh/ ├── db/ │ └── mesh.db ├── logs/ │ └── agent.log ├── scripts/ │ ├── init_db.py │ ├── agent_worker.py │ ├── thermal_guard.py │ └── dispatch.py └── README.md在 Termux 中執(zhí)行mkdir -p agent-mesh/db agent-mesh/logs agent-mesh/scripts cd agent-mesh這樣目錄結(jié)構(gòu)就準(zhǔn)備好了。3. 理解熱節(jié)流手機(jī) SoC 的自我保護(hù)和監(jiān)控方法3.1 Thermal Throttling 的硬件邏輯熱節(jié)流不是一個(gè)單純的操作系統(tǒng)概念它本質(zhì)上是硬件層面的保護(hù)機(jī)制。手機(jī) SoC 內(nèi)集成了多個(gè)溫度傳感器分布在 CPU 集群、GPU、充電管理芯片等位置。當(dāng)某個(gè)傳感器的溫度超過(guò)設(shè)定閾值時(shí)SoC 的電源管理單元會(huì)通過(guò) DVFS動(dòng)態(tài)電壓頻率調(diào)整降低核心電壓和頻率。所以你在top里看到的 CPU 占用率 100%實(shí)際運(yùn)行速度可能已經(jīng)低到不可用。更麻煩的是熱節(jié)流的觸發(fā)條件不止 CPU 負(fù)載還包括環(huán)境溫度、屏幕亮度、充電狀態(tài)。如果你的手機(jī)一邊充電一邊跑任務(wù)溫度會(huì)迅速上升。3.2 在 Termux 中監(jiān)控溫度與頻率在 Termux 中最直接的監(jiān)控方式是讀取系統(tǒng)溫度節(jié)點(diǎn)。Android 系統(tǒng)通常會(huì)把溫度傳感器信息暴露在/sys/class/thermal/目錄下。執(zhí)行for zone in /sys/class/thermal/thermal_zone*/; do echo -n $zone: cat $zone/temp done溫度值的單位通常是毫攝氏度也就是 65000 表示 65 攝氏度。為了方便我們可以用 Python 封裝一個(gè)溫度采集函數(shù) 文件路徑: agent-mesh/scripts/thermal_guard.py 作用: 采集電池溫度和 CPU 溫度作為熱節(jié)流保護(hù)模塊的基礎(chǔ)。 import os import subprocess import time def read_cpu_temp(): 讀取第一個(gè)可用的 thermal_zone 溫度單位轉(zhuǎn)換為攝氏度。 for zone_idx in range(10): base f/sys/class/thermal/thermal_zone{zone_idx} temp_path os.path.join(base, temp) if os.path.exists(temp_path): try: with open(temp_path, r) as f: raw f.read().strip() return int(raw) / 1000.0 except (ValueError, IOError): continue return None def read_battery_temp(): 通過(guò) termux-battery-status 讀取電池溫度。 try: result subprocess.run( [termux-battery-status], capture_outputTrue, textTrue, timeout5, ) output result.stdout # 簡(jiǎn)化解析這里只取 temperature 字段 import json data json.loads(output) return data.get(temperature) except Exception: return None if __name__ __main__: if os.environ.get(TERMUX_VERSION): print(fCPU 溫度: {read_cpu_temp()}°C) print(f電池溫度: {read_battery_temp()}°C) else: print(fCPU 溫度: {read_cpu_temp()}°C)注意/sys/class/thermal/中的傳感器節(jié)點(diǎn)在不同手機(jī)上有差異有的設(shè)備是thermal_zone0對(duì)應(yīng) CPU有的設(shè)備是thermal_zone1對(duì)應(yīng)電池。這個(gè)腳本會(huì)遍歷前 10 個(gè) zone取第一個(gè)有效值實(shí)際使用時(shí)建議你先手動(dòng)執(zhí)行上面的 shell 命令確定哪個(gè)節(jié)點(diǎn)對(duì)應(yīng) CPU。3.3 目標(biāo)把溫度壓在閾值以下經(jīng)驗(yàn)數(shù)據(jù)表明手機(jī) CPU 在 80°C 以下時(shí)通??梢员3州^高的運(yùn)行頻率超過(guò) 85°C 后熱節(jié)流會(huì)明顯加強(qiáng)。為了保證 agent mesh 的吞吐穩(wěn)定我們?cè)O(shè)定的目標(biāo)溫度建議不高于 75°C。具體的控制策略后文會(huì)詳細(xì)展開(kāi)。4. 10-Tier Agent Mesh 架構(gòu)設(shè)計(jì)4.1 什么是 Agent MeshAgent mesh 指的是一種多節(jié)點(diǎn)協(xié)作模式每個(gè)節(jié)點(diǎn)是一個(gè)輕量級(jí) Agent負(fù)責(zé)從隊(duì)列中取出任務(wù)執(zhí)行特定操作然后把結(jié)果寫入下一個(gè)隊(duì)列。這些 Agent 之間不直接通信而是通過(guò)共享數(shù)據(jù)庫(kù)協(xié)調(diào)。這樣做的好處是解耦每個(gè) Agent 只知道自己的輸入和輸出不需要了解其他 Agent 的內(nèi)部狀態(tài)?!?0-tier”并不是說(shuō)必須有 10 臺(tái)設(shè)備而是把任務(wù)處理流程縱向切分為 10 層每一層代表一種不同的處理階段。本文的例子中各層職責(zé)如下層級(jí)職責(zé)示例操作tier_1原始任務(wù)接收寫入原始數(shù)據(jù)tier_2數(shù)據(jù)清洗去空格、去重tier_3字段標(biāo)準(zhǔn)化格式化時(shí)間、枚舉值tier_4關(guān)鍵字提取簡(jiǎn)單文本掃描tier_5規(guī)則過(guò)濾按規(guī)則丟棄任務(wù)tier_6計(jì)算處理數(shù)值計(jì)算或聚合tier_7結(jié)果分組按目錄字段歸組tier_8匯總統(tǒng)計(jì)生成統(tǒng)計(jì)摘要tier_9格式轉(zhuǎn)換轉(zhuǎn) JSON、CSV 等tier_10輸出歸檔寫入結(jié)果表每一層可以運(yùn)行一個(gè)或多個(gè) Agent層數(shù)越多每個(gè) Agent 的職責(zé)越單一代碼越容易維護(hù)。4.2 數(shù)據(jù)模型10 層隊(duì)列表怎么設(shè)計(jì)在 SQLite 中設(shè)計(jì) 10 層任務(wù)表時(shí)有兩種思路一種是物理建 10 張表另一種是只建一張任務(wù)表通過(guò)tier字段區(qū)分。本文推薦第二種因?yàn)槿蝿?wù)在各層之間流轉(zhuǎn)時(shí)本質(zhì)上只是修改tier字段的值不需要跨表復(fù)制性能更好代碼也更簡(jiǎn)潔。核心表結(jié)構(gòu)如下-- 文件路徑: agent-mesh/db/schema.sql PRAGMA journal_mode WAL; CREATE TABLE IF NOT EXISTS tasks ( id INTEGER PRIMARY KEY AUTOINCREMENT, tier INTEGER NOT NULL DEFAULT 1, status TEXT NOT NULL DEFAULT pending, payload TEXT, current_agent TEXT, created_at TEXT NOT NULL DEFAULT (datetime(now)), updated_at TEXT NOT NULL DEFAULT (datetime(now)), attempts INTEGER NOT NULL DEFAULT 0 ); CREATE INDEX IF NOT EXISTS idx_tier_status ON tasks(tier, status); CREATE TABLE IF NOT EXISTS agent_heartbeats ( agent_id TEXT PRIMARY KEY, last_seen TEXT NOT NULL DEFAULT (datetime(now)), current_tier INTEGER, pid INTEGER );tasks表中tier當(dāng)前任務(wù)所在層級(jí)1 到 10。status狀態(tài)pending表示等待處理processing表示正在被某個(gè) Agent 處理done表示完成failed表示失敗。payload任務(wù)數(shù)據(jù)建議存儲(chǔ) JSON 字符串。attempts嘗試次數(shù)用于防止任務(wù)無(wú)限重試。updated_at記錄任務(wù)最近一次狀態(tài)變更時(shí)間是任務(wù)超時(shí)回收的重要依據(jù)。agent_heartbeats表用于記錄每個(gè) Agent 的心跳監(jiān)控 Agent 是否存活。生產(chǎn)環(huán)境中你可以進(jìn)一步細(xì)化表結(jié)構(gòu)比如增加task_type字段支持不同類型的任務(wù)流但本文的簡(jiǎn)化設(shè)計(jì)足夠跑通整個(gè)流程。4.3 為什么選擇“數(shù)據(jù)庫(kù)輪詢”而不是消息隊(duì)列在電腦上搭 agent mesh你大概率會(huì)用 Celery、RQ 或 RabbitMQ。但在 Termux 環(huán)境里這些方案都有各自的痛點(diǎn)Celery 的 Broker 依賴 Redis 或 RabbitMQTermux 里編譯安裝較麻煩。RQ 相對(duì)輕量但同樣需要 Redis。直接使用消息隊(duì)列還需要額外的端口監(jiān)聽(tīng)、持久化保障對(duì)手機(jī)來(lái)說(shuō)負(fù)載偏高。數(shù)據(jù)庫(kù)輪詢的優(yōu)點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單、無(wú)額外依賴、進(jìn)程重啟后任務(wù)狀態(tài)不丟。缺點(diǎn)是需要自己控制輪詢間隔避免空轉(zhuǎn)消耗 CPU。本文的 Agent 會(huì)采用“IDLE 退避”策略沒(méi)有任務(wù)時(shí)逐步拉長(zhǎng)輪詢間隔從 1 秒逐步增加到 10 秒。5. 完整實(shí)戰(zhàn)用 SQLite Python 搭建 Agent Mesh5.1 初始化數(shù)據(jù)庫(kù)與 10 層任務(wù)表編寫初始化腳本確保數(shù)據(jù)庫(kù)和表結(jié)構(gòu)正確創(chuàng)建 文件路徑: agent-mesh/scripts/init_db.py 作用: 初始化數(shù)據(jù)庫(kù)表結(jié)構(gòu)并寫入幾條演示任務(wù)。 import sqlite3 import os import json import time DB_DIR os.path.join(os.path.dirname(__file__), .., db) DB_PATH os.path.join(DB_DIR, mesh.db) SCHEMA PRAGMA journal_mode WAL; CREATE TABLE IF NOT EXISTS tasks ( id INTEGER PRIMARY KEY AUTOINCREMENT, tier INTEGER NOT NULL DEFAULT 1, status TEXT NOT NULL DEFAULT pending, payload TEXT, current_agent TEXT, created_at TEXT NOT NULL DEFAULT (datetime(now)), updated_at TEXT NOT NULL DEFAULT (datetime(now)), attempts INTEGER NOT NULL DEFAULT 0 ); CREATE INDEX IF NOT EXISTS idx_tier_status ON tasks(tier, status); CREATE TABLE IF NOT EXISTS agent_heartbeats ( agent_id TEXT PRIMARY KEY, last_seen TEXT NOT NULL DEFAULT (datetime(now)), current_tier INTEGER, pid INTEGER ); def init_db(): os.makedirs(DB_DIR, exist_okTrue) conn sqlite3.connect(DB_PATH) conn.executescript(SCHEMA) conn.commit() conn.close() print(f[init_db] 數(shù)據(jù)庫(kù)初始化完成: {DB_PATH}) def seed_tasks(count20): 寫入 count 條演示任務(wù)全部從 tier_1 開(kāi)始。 conn sqlite3.connect(DB_PATH) tasks [ ( 1, pending, json.dumps({content: f任務(wù) {i}, value: i}), ) for i in range(count) ] conn.executemany( INSERT INTO tasks (tier, status, payload) VALUES (?, ?, ?), tasks, ) conn.commit() conn.close() print(f[init_db] 已寫入 {count} 條演示任務(wù)) if __name__ __main__: init_db() seed_tasks(20)執(zhí)行python scripts/init_db.py如果你本機(jī)沒(méi)有安裝sqlite3命令行工具也可以用 Python 的sqlite3模塊直接查看數(shù)據(jù)python -c import sqlite3; print(sqlite3.connect(db/mesh.db).execute(select count(*) from tasks).fetchone())預(yù)期輸出為(20,)表示有 20 條任務(wù)進(jìn)入隊(duì)列。5.2 Agent 工作循環(huán)每個(gè) Agent 都是一個(gè)獨(dú)立的 Python 進(jìn)程它周期性地執(zhí)行以下操作從指定 tier 取出一條 pending 任務(wù)并把狀態(tài)改為 processing。處理任務(wù)更新 payload。把任務(wù)寫入下一層tier 1狀態(tài)改為 pending。如果已經(jīng)是第 10 層則把狀態(tài)改為 done。更新心跳。為了避免多個(gè) Agent 同時(shí)取到同一條任務(wù)這里使用 SQLite 的事務(wù)和條件更新來(lái)完成“原子領(lǐng)取”。代碼如下 文件路徑: agent-mesh/scripts/agent_worker.py 作用: 單個(gè) Agent 工作循環(huán)從指定 tier 領(lǐng)取任務(wù)并處理后進(jìn)入下一層。 用法: python agent_worker.py --tier 1 --agent agent-a import argparse import json import os import sqlite3 import time DB_DIR os.path.join(os.path.dirname(__file__), .., db) DB_PATH os.path.join(DB_DIR, mesh.db) def db_connect(): conn sqlite3.connect(DB_PATH, timeout10) conn.row_factory sqlite3.Row return conn def claim_task(conn, tier, agent_id): 原子地領(lǐng)取一條 pending 任務(wù)返回任務(wù)行或 None。 cursor conn.execute( UPDATE tasks SET status processing, current_agent ?, updated_at datetime(now), attempts attempts 1 WHERE id ( SELECT id FROM tasks WHERE tier ? AND status pending ORDER BY created_at ASC LIMIT 1 ) RETURNING id, tier, status, payload, attempts , (agent_id, tier), ) row cursor.fetchone() conn.commit() return row def process_payload(payload, tier): 核心處理函數(shù)這里用簡(jiǎn)單的時(shí)間戳和字段追加來(lái)模擬真實(shí)計(jì)算。 data json.loads(payload) # 模擬計(jì)算耗時(shí)避免 CPU 空轉(zhuǎn) time.sleep(0.2) data[processed_tier] tier data[processed_at] time.strftime(%Y-%m-%d %H:%M:%S) data[value] (data.get(value, 0) or 0) * 2 return json.dumps(data, ensure_asciiFalse) def write_next_tier(conn, row, next_tier, agent_id): 把任務(wù)寫入下一層或者標(biāo)記為完成。 if next_tier 10: conn.execute( UPDATE tasks SET status done, current_agent ?, updated_at datetime(now) WHERE id ? , (agent_id, row[id]), ) else: conn.execute( UPDATE tasks SET tier ?, status pending, current_agent NULL, payload ?, updated_at datetime(now) WHERE id ? , (next_tier, row[payload], row[id]), ) conn.commit() def heartbeat(conn, agent_id, tier): 更新 Agent 心跳讓運(yùn)維方知道進(jìn)程還活著。 pid os.getpid() conn.execute( INSERT INTO agent_heartbeats (agent_id, last_seen, current_tier, pid) VALUES (?, datetime(now), ?, ?) ON CONFLICT(agent_id) DO UPDATE SET last_seen datetime(now), current_tier excluded.current_tier, pid excluded.pid , (agent_id, tier, pid), ) conn.commit() def run_agent(tier, agent_id): 主循環(huán)持續(xù)領(lǐng)取任務(wù)并處理。 idle_sleep 1.0 while True: conn db_connect() try: row claim_task(conn, tier, agent_id) if row is None: # 沒(méi)有任務(wù)時(shí)退避降低 CPU 空轉(zhuǎn) idle_sleep min(idle_sleep 1.0, 10.0) time.sleep(idle_sleep) continue idle_sleep max(idle_sleep - 1.0, 1.0) row[payload] process_payload(row[payload], tier) write_next_tier(conn, row, tier 1, agent_id) heartbeat(conn, agent_id, tier) print(f[{agent_id}] 任務(wù) {row[id]} - tier {tier 1}) finally: conn.close() if __name__ __main__: parser argparse.ArgumentParser(descriptionRun an agent worker) parser.add_argument(--tier, typeint, requiredTrue, helpAgent 監(jiān)聽(tīng)的任務(wù)層級(jí)1-10) parser.add_argument(--agent, typestr, requiredTrue, helpAgent 唯一標(biāo)識(shí)) args parser.parse_args() run_agent(args.tier, args.agent)代碼中有幾個(gè)關(guān)鍵點(diǎn)需要展開(kāi)解釋。claim_task函數(shù)使用了UPDATE ... WHERE id (SELECT ... LIMIT 1)的原子更新模式。在 SQLite 中這個(gè)子查詢加更新的組合在同一事務(wù)里是原子性的可以有效避免兩個(gè) Agent 同時(shí)領(lǐng)取同一條任務(wù)。如果你的 SQLite 版本較老不支持RETURNING子句SQLite 3.35 以上才支持可以先用SELECT查出任務(wù) id再通過(guò)帶條件的UPDATE把狀態(tài)從pending改為processing然后檢查影響行數(shù)是否為 1# 兼容舊版本 SQLite 的領(lǐng)取方式 cursor conn.execute( SELECT id, payload FROM tasks WHERE tier ? AND status pending ORDER BY created_at ASC LIMIT 1 , (tier,), ) row cursor.fetchone() if row: cur2 conn.execute( UPDATE tasks SET status processing, current_agent ?, updated_at datetime(now) WHERE id ? AND status pending , (agent_id, row[id]), ) if cur2.rowcount 1: conn.commit() # 返回任務(wù)行process_payload函數(shù)是 Agent 的真正業(yè)務(wù)邏輯所在。本文用一個(gè) 0.2 秒的 sleep 和數(shù)值乘 2 來(lái)模擬真實(shí)計(jì)算你在實(shí)際項(xiàng)目中可以替換成文本解析、網(wǎng)絡(luò)請(qǐng)求、圖像壓縮等操作。write_next_tier函數(shù)把當(dāng)前層處理完的任務(wù)送入下一層。當(dāng)層級(jí)增加到第 11 層時(shí)說(shuō)明整個(gè)流水線已經(jīng)執(zhí)行完畢任務(wù)狀態(tài)被置為done。heartbeat函數(shù)每隔一段時(shí)間把 Agent 的信息寫入心跳表。主循環(huán)中的idle_sleep實(shí)現(xiàn)了退避策略任務(wù)持續(xù)到達(dá)時(shí)保持 1 秒輪詢一次沒(méi)有任務(wù)時(shí)逐步拉長(zhǎng)到 10 秒。這個(gè)設(shè)計(jì)對(duì)控溫非常重要。5.3 啟動(dòng)多節(jié)點(diǎn)并驗(yàn)證分層流轉(zhuǎn)啟動(dòng) 10 個(gè) Agent分別監(jiān)聽(tīng) 1 到 10 層cd agent-mesh for i in $(seq 1 10); do python scripts/agent_worker.py --tier $i --agent agent-$i logs/agent-$i.log 21 done執(zhí)行后用ps查看進(jìn)程ps aux | grep agent_worker每個(gè) tier 都有一個(gè)對(duì)應(yīng)的 Agent 進(jìn)程。然后查看任務(wù)流轉(zhuǎn)情況sqlite3 db/mesh.db select tier, status, count(*) from tasks group by tier, status;預(yù)期輸出大致如下1|pending|0 2|pending|4 3|pending|6 ... 10|pending|2由于各層處理速度不同任務(wù)會(huì)逐漸從 tier_1 流向 tier_10。最終所有任務(wù)都應(yīng)該變成10|done|20也就是說(shuō)20 條任務(wù)全部走完了 10 層流水線。5.4 熱節(jié)流保護(hù)模塊在 5.2 節(jié)的 Agent 循環(huán)里我們其實(shí)還沒(méi)有加入真正的溫度控制邏輯。為了長(zhǎng)時(shí)間運(yùn)行不觸發(fā)熱節(jié)流需要引入一個(gè)保護(hù)模塊在每次循環(huán)開(kāi)始前檢查溫度如果超過(guò)閾值就主動(dòng)“躺平”一段時(shí)間讓 SoC 降溫。下面是在agent_worker.py中加入溫度控制的改造思路# 在 agent_worker.py 中 import thermal_guard from thermal_guard import read_cpu_temp, read_battery_temp def get_current_temperature(): 返回當(dāng)前系統(tǒng)溫度優(yōu)先使用電池溫度因?yàn)樽钯N近真實(shí)手感。 battery_temp read_battery_temp() if battery_temp is not None: return battery_temp return read_cpu_temp() or 0.0 TEMPERATURE_LIMIT 72.0 SLEEP_BACKOFF 30.0 def wait_if_hot(agent_id): 如果溫度過(guò)高Agent 進(jìn)入冷卻休眠。 temp get_current_temperature() if temp TEMPERATURE_LIMIT: print(f[{agent_id}] 溫度過(guò)高: {temp:.1f}°C, 冷卻休眠 {SLEEP_BACKOFF}s) time.sleep(SLEEP_BACKOFF) return True return False然后在主循環(huán)開(kāi)頭調(diào)用def run_agent_with_thermal_guard(tier, agent_id): idle_sleep 1.0 while True: conn db_connect() try: # 熱節(jié)流保護(hù)溫度過(guò)高時(shí)暫停處理 if wait_if_hot(agent_id): continue row claim_task(conn, tier, agent_id) ... finally: conn.close()這個(gè)模塊的工作邏輯是溫度超過(guò) 72°C 時(shí)所有 Agent 會(huì)進(jìn)入 30 秒的冷卻休眠不領(lǐng)取新任務(wù)讓系統(tǒng)負(fù)載降下來(lái)。這個(gè)策略雖然簡(jiǎn)單但在手機(jī)這種被動(dòng)散熱設(shè)備上非常有效。更精細(xì)的做法是動(dòng)態(tài)調(diào)整休眠時(shí)長(zhǎng)比如溫度越高休眠越長(zhǎng)def wait_if_hot_dynamic(agent_id): temp get_current_temperature() if temp TEMPERATURE_LIMIT: extra int((temp - TEMPERATURE_LIMIT) * 2) sleep_time 15 extra print(f[{agent_id}] 溫度 {temp:.1f}°C, 冷卻休眠 {sleep_time}s) time.sleep(sleep_time) return True return False這里(temp - TEMPERATURE_LIMIT) * 2的意思是溫度每超過(guò)閾值 1°C休眠時(shí)間增加 2 秒。假設(shè)溫度 76°C休眠時(shí)間就是 15 8 23 秒溫度 80°C休眠時(shí)間就是 31 秒。這種梯度休眠策略能讓溫度回落更平緩?fù)瑫r(shí)不至于完全停止所有 Agent。需要注意的是wait_if_hot只是軟件層面的自我保護(hù)。如果你的手機(jī)本身散熱能力很差或者你正在邊充電邊跑任務(wù)軟件的降載效果會(huì)很有限。更穩(wěn)妥的做法是結(jié)合硬件策略比如關(guān)閉充電、降低屏幕亮度這些內(nèi)容在最佳實(shí)踐部分會(huì)繼續(xù)展開(kāi)。運(yùn)行熱保護(hù)版 Agentcd agent-mesh python scripts/agent_worker.py --tier 1 --agent agent-hot-1觀察日志當(dāng)溫度接近閾值時(shí)你會(huì)看到類似輸出[agent-hot-1] 溫度 73.2°C, 冷卻休眠 20s5.5 驗(yàn)證熱節(jié)流是否被有效避免啟動(dòng)帶熱保護(hù)的 Agent 集群后持續(xù)運(yùn)行一段時(shí)間然后用下面的命令記錄溫度曲線while true; do temp$(cat /sys/class/thermal/thermal_zone0/temp) echo $(date %H:%M:%S) $((temp / 1000))°C echo $(date %H:%M:%S) $((temp / 1000))°C logs/temperature.log sleep 5 done運(yùn)行 10 分鐘后打開(kāi)logs/temperature.log如果溫度始終在 72°C 附近波動(dòng)而不是持續(xù)攀升說(shuō)明熱保護(hù)模塊生效了。如果溫度仍然一路走高到 85°C 以上說(shuō)明你的業(yè)務(wù)邏輯計(jì)算量太大或者 Agent 數(shù)量過(guò)多需要減少并發(fā) Agent 數(shù)量或者降低每層 Agent 的輪詢頻率。6. 常見(jiàn)問(wèn)題與排查思路在 Termux 中搭建和運(yùn)行 SQLite agent mesh最常遇到的問(wèn)題有下面這些。問(wèn)題現(xiàn)象常見(jiàn)原因解決思路數(shù)據(jù)庫(kù)顯示database is locked多個(gè)進(jìn)程同時(shí)嘗試寫入事務(wù)沖突設(shè)置timeout10并確保每個(gè)連接及時(shí)關(guān)閉改用 WAL 模式Agent 領(lǐng)取任務(wù)后任務(wù)丟失進(jìn)程被系統(tǒng)殺掉事務(wù)未提交確保領(lǐng)取任務(wù)和更新?tīng)顟B(tài)在同一個(gè)事務(wù)內(nèi)使用attemps字段做超時(shí)回收溫度迅速飆升到 85°C 以上Agent 數(shù)量太多或輪詢間隔太短減少并發(fā) Agent調(diào)大idle_sleep在溫度過(guò)高時(shí)休眠任務(wù)卡在processing不繼續(xù)流轉(zhuǎn)Agent 進(jìn)程崩潰或手機(jī)息屏后進(jìn)程被凍結(jié)添加超時(shí)回收機(jī)制定期把updated_at超過(guò) 5 分鐘的處理中任務(wù)重置為pendingtermux-api命令返回空未安裝 Termux:API 應(yīng)用或未授權(quán)需要在 F-Droid 額外安裝 Termux:API APK并在系統(tǒng)設(shè)置中授權(quán)Python 進(jìn)程在后臺(tái)運(yùn)行幾分鐘后被殺死Android 后臺(tái)進(jìn)程管理策略使用termux-wake-lock保持 CPU 喚醒狀態(tài)針對(duì)“任務(wù)卡在 processing”的問(wèn)題這里給出一個(gè)回收腳本的思路 文件路徑: agent-mesh/scripts/recover_stale.py 作用: 定時(shí)重置超時(shí)未完成的任務(wù)防止任務(wù)永遠(yuǎn)卡在 processing 狀態(tài)。 import sqlite3 import os import time DB_PATH os.path.join(os.path.dirname(__file__), .., db, mesh.db) STALE_MINUTES 5 while True: conn sqlite3.connect(DB_PATH, timeout10) try: cursor conn.execute( UPDATE tasks SET status pending, current_agent NULL, updated_at datetime(now) WHERE status processing AND updated_at datetime(now, ?) , (f-{STALE_MINUTES} minutes,), ) conn.commit() if cursor.rowcount 0: print(f[recover] 重置了 {cursor.rowcount} 條超時(shí)任務(wù)) finally: conn.close() time.sleep(60)這個(gè)腳本每 60 秒執(zhí)行一次把updated_at超過(guò) 5 分鐘還處于processing狀態(tài)的任務(wù)重新放回待處理隊(duì)列。配合attempts字段你還可以限制每個(gè)任務(wù)的最大重試次數(shù)超過(guò)次數(shù)直接標(biāo)記為failed。針對(duì)“進(jìn)程被系統(tǒng)殺掉”的問(wèn)題Termux 提供了喚醒鎖# 在 Termux 中保持 CPU 喚醒狀態(tài) termux-wake-lock # 取消喚醒鎖 termux-wake-unlock運(yùn)行 agent 之前先執(zhí)行termux-wake-lock可以降低息屏后進(jìn)程被凍結(jié)的概率。另外在部分安卓系統(tǒng)上你還需要在系統(tǒng)設(shè)置中把 Termux 的“后臺(tái)運(yùn)行”權(quán)限設(shè)為允許否則即使有 wake lock系統(tǒng)仍然可能干預(yù)進(jìn)程。還有一點(diǎn)需要特別注意Termux 是一個(gè)用戶態(tài)環(huán)境/sys/class/thermal/中的溫度節(jié)點(diǎn)在部分設(shè)備上可能沒(méi)有讀取權(quán)限。如果你遇到Permission denied不要嘗試 root 或繞過(guò)權(quán)限換個(gè)思路改用termux-battery-status的電池溫度作為熱保護(hù)依據(jù)也能達(dá)到差不多的效果。7. 性能優(yōu)化與最佳實(shí)踐7.1 SQLite 寫入性能優(yōu)化SQLite 在默認(rèn)的 delete 模式刷新方式下每次事務(wù)提交都要等待數(shù)據(jù)寫入磁盤性能較差。啟用 WAL 模式后讀操作和寫操作可以并發(fā)執(zhí)行寫入性能提升明顯。初始化腳本已經(jīng)設(shè)置了PRAGMA journal_mode WAL但如果你的庫(kù)已經(jīng)創(chuàng)建可以單獨(dú)執(zhí)行sqlite3 db/mesh.db PRAGMA journal_modeWAL;此外建議把synchronous設(shè)置為NORMALsqlite3 db/mesh.db PRAGMA synchronousNORMAL;在 WAL 模式下NORMAL依然可以保證數(shù)據(jù)庫(kù)不會(huì)損壞只是極端掉電場(chǎng)景下可能丟失最近的事務(wù)。對(duì) agent mesh 這種允許任務(wù)重放的場(chǎng)景來(lái)說(shuō)這個(gè)權(quán)衡是值得的。7.2 Agent 數(shù)量與輪詢間隔的平衡在手機(jī)上跑 10 層 mesh不一定每層都要啟動(dòng)一個(gè)獨(dú)立進(jìn)程。如果你的手機(jī)只有 4 個(gè)性能核心同時(shí)跑 10 個(gè) Python 進(jìn)程會(huì)造成頻繁的線程切換溫度很容易失控。比較合理的做法是先啟動(dòng) 6 到 8 個(gè) Agent讓每個(gè) Agent 監(jiān)聽(tīng)一個(gè) tier跑通流程后再根據(jù)溫度數(shù)據(jù)逐步增加。輪詢間隔的設(shè)置也很關(guān)鍵。對(duì)于tier_1這種入口層如果任務(wù)到達(dá)頻率很高可以保持 1 秒輪詢。對(duì)于tier_5、tier_6這種中間層如果任務(wù)量不大把輪詢間隔調(diào)到 3 到 5 秒完全夠用。這樣可以顯著降低 CPU 空轉(zhuǎn)率。7.3 手機(jī)硬件層面的控溫建議軟件層面的降載只能解決一部分問(wèn)題下面幾條硬件層面的建議對(duì)實(shí)際控溫非常有效不要邊充電邊跑任務(wù)。充電過(guò)程本身會(huì)產(chǎn)生大量熱量疊加 CPU 負(fù)載后溫度很容易失控。取下手機(jī)殼或者把手機(jī)放在金屬支架上有利于被動(dòng)散熱。關(guān)閉后臺(tái)不相關(guān)的 App特別是短視頻、社交類應(yīng)用它們會(huì)周期性喚醒 CPU。如果條件允許使用小風(fēng)扇對(duì)著手機(jī)背面吹效果立竿見(jiàn)影。在系統(tǒng)設(shè)置中開(kāi)啟飛行模式關(guān)閉蜂窩網(wǎng)絡(luò)和 Wi-Fi 熱點(diǎn)避免網(wǎng)絡(luò)模塊持續(xù)工作發(fā)熱。7.4 日志與可觀測(cè)性多 Agent 系統(tǒng)排錯(cuò)時(shí)最怕“黑盒”。建議在項(xiàng)目中加入統(tǒng)一的日志格式至少包含以下信息時(shí)間戳。Agent ID。任務(wù) ID。當(dāng)前層級(jí)。耗時(shí)。溫度。在agent_worker.py中可以把print替換為 logging 模塊import logging logging.basicConfig( levellogging.INFO, format%(asctime)s [%(levelname)s] %(message)s, handlers[ logging.FileHandler(logs/agent.log), logging.StreamHandler(), ], ) logger logging.getLogger(agent)這樣每個(gè) Agent 的日志都會(huì)寫入logs/agent.log。排查問(wèn)題時(shí)用grep過(guò)濾關(guān)鍵字grep 任務(wù) 5 logs/agent.log可以快速定位某個(gè)任務(wù)經(jīng)過(guò)了哪些 Agent。7.5 數(shù)據(jù)備份與遷移SQLite 單文件備份非常簡(jiǎn)單。如果 Agent 處理的是重要數(shù)據(jù)建議用定時(shí)任務(wù)把db/mesh.db復(fù)制到外部存儲(chǔ)或使用termux-api上傳到自己的服務(wù)器。cp db/mesh.db db/mesh-$(date %Y%m%d-%H%M%S).db如果要在另一臺(tái)手機(jī)上恢復(fù)只需把備份文件復(fù)制到對(duì)應(yīng)的db/目錄即可。注意備份時(shí)最好先執(zhí)行一次PRAGMA wal_checkpoint;把 WAL 文件中的內(nèi)容合并到主庫(kù)文件中。7.6 長(zhǎng)跑前的壓測(cè)思路正式讓 10 層 mesh 在后臺(tái)長(zhǎng)時(shí)間運(yùn)行之前建議先做一個(gè)小規(guī)模壓測(cè)。具體做法是用init_db.py的seed_tasks函數(shù)寫入 100 條任務(wù)然后在logs/temperature.log中觀察任務(wù)完成時(shí)間和溫度變化。如果 100 條任務(wù)在 10 分鐘內(nèi)完成且溫度控制在 75°C 以下再擴(kuò)展到 500 條、1000 條任務(wù)。要批量寫入更多演示數(shù)據(jù)可以修改seed_tasks(count500)python -c from scripts.init_db import seed_tasks; seed_tasks(500)壓測(cè)過(guò)程中要重點(diǎn)關(guān)注兩個(gè)指標(biāo)任務(wù)平均流轉(zhuǎn)時(shí)間和系統(tǒng)溫度峰值。如果任務(wù)流轉(zhuǎn)時(shí)間隨著運(yùn)行時(shí)間推移越來(lái)越長(zhǎng)說(shuō)明系統(tǒng)已經(jīng)進(jìn)入熱節(jié)流狀態(tài)需要減少 Agent 數(shù)量或調(diào)大休眠閾值。8. 總結(jié)與下一步方向這篇文章完整記錄了一套在 Termux 中搭建 10 層 SQLite agent mesh 的方案。核心思路是用 SQLite 作為多 Agent 之間共享的任務(wù)狀態(tài)存儲(chǔ)用帶退避策略的數(shù)據(jù)庫(kù)輪詢替代傳統(tǒng)消息隊(duì)列用溫度感知模塊在熱節(jié)流觸發(fā)前主動(dòng)降載。需要明確的是這個(gè)方案并不是要取代完整的分布式任務(wù)隊(duì)列它更適合的實(shí)驗(yàn)場(chǎng)景是手頭只有一臺(tái)舊手機(jī)想驗(yàn)證多層 Agent 協(xié)作的流程設(shè)計(jì)或者想把手上的安卓設(shè)備變成一臺(tái)低功耗開(kāi)發(fā)機(jī)。在 10 層流水線全部跑通之后你可以繼續(xù)嘗試的方向包括在 Agent 中接入實(shí)際的 HTTP API讓不同層的 Agent 調(diào)用不同的遠(yuǎn)程服務(wù)把 payload 中的任務(wù)類型擴(kuò)展為多個(gè)讓同一層的不同 Agent 處理不同任務(wù)使用asyncio重寫 Agent 主循環(huán)在保持單進(jìn)程的前提下處理更多任務(wù)。如果你在實(shí)操中遇到溫度控制效果不明顯的情況先不要急著加更復(fù)雜的算法回到最基礎(chǔ)的三件事減少 Agent 數(shù)量、拉長(zhǎng)輪詢間隔、讓手機(jī)物理散熱更好。這個(gè)項(xiàng)目本身就是一場(chǎng)實(shí)驗(yàn)不斷調(diào)整參數(shù)、觀察溫度曲線、記錄任務(wù)流轉(zhuǎn)時(shí)間你會(huì)慢慢找到適合自己手機(jī)的最佳配置。如果這篇文章對(duì)你有幫助可以把 init 腳本和 agent 工作循環(huán)代碼保存下來(lái)直接在 Termux 里跑一遍然后打開(kāi)溫度日志看看你的手機(jī)能承受多大的并發(fā)量。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
春色综合免费| 美女97超碰| 91精品人妻一品二品三品| 亚洲丝袜色图| 日韩人妻少妇中文字幕| 日韩丰满熟妇| 亚洲成人精品在线一区| 91美女片在线| 一区超碰一区| 伊色久人大在线| www.AV有限公司一区| 狠狠干综合| 亚洲AV操| 性爱视频无打码在线观看| 亚洲图片激情小说| 亚洲中文sv| 亚洲综合情色| 国产精品久久久久久久久久久久久久久久久久 | 熟女91网站| 人妻丝袜肏逼| 日本精品久久久久久久| 一个国产在线综合网站| 96精品久久久久久久久| 老熟女综合网| 男人天堂导航| 97伦综合| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 日本网色| Julia在线播放亚洲久久| 一区二区娱乐网站| 曰韩无码777| www国产天美久久久| 精品日韩人妻精品一二三区| 日日操免费视频| 男人的天堂久久久| 国产精品不卡av免费在线观看| 午夜毛片亚洲精品片国产久久久| 女人综合网| 探花视频免费观看国产专区| 欧美一级AAAAAAA| 少妇精品久久| 午夜啪| 久久在肏| 久久夜夜| 7777欧美成是人在线观看| 97国产精品久久久久| 日韩人妻精品中文字幕| 欧美97网| 思思久热在线精品66| 久久久精品网站| 超碰成人人人爽人人爽| 最新国内自拍av免费| 白丝被操91| 亚洲字幕一区二区| 激情五月丁香五月| 玖玖97综合| 天天做天天爱天天爽AV| 青青操视频在线| 国内一区二区三区| 欧美18 在线观看| 八戒午夜福利理论片| 国产高清无码一区三区二区| 亚洲精品中文字幕一区在线视频| 99热这里是精品| 色哟哟的毛片| 91综合天天看| 精品免费视频国产一区| 亚洲国产一级精品毛一级精品看免费视频 | 9久久精品| 婷婷丁香六月天| 久久久久久久久久久999| 天堂综合| 欧洲在线性爱视频| www.91色| 国产免费久久精品99re韩国| 91福利网在线观看| 人人操人人摸人| 美女啊啊啊啊啊啊啊| 超碰97首页| 97亚洲综合在线| 日本黄大片在线观看视频| 韩国黄片aaaa| 殴美日韩m| 2026国产精品视频| 亚洲97成人在线观看| 夜嗨影院| 91人妻视频| 免费超碰97久久| 中文字幕熟女人妻丝袜| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 国产久久日韩网站导航| 日韩av免费一级电影| 亚洲最大网站av| 亚州情色j区| 九九九九97| 黄片免费日韩| 丁香激情五月| 亚洲中字慕不卡| 北约熟女超碰| 神马午夜久久久| 懂色aV一区二区天美传媒| 久久精品国产亚洲AV成人直播| 久久蜜桃综合网| 久久久九| 一区二区三区视频在线观看免费| 久插不卡| 国产家庭乱伦表演| 91丝袜在线观看视频在线观看| 天天欧美| 偷窥自拍亚洲色图| 无码人妻一区二区三区免费九色| 小草精彩毛片| 欧美黑人熟妇精品91| 欧美人妻一区| 久久精品无码专区| 伊人91| 欧美黑人168页欧美黑人167| 精品国产久热在线观看| 国产风韵犹存熟妇三区| 婷婷深爱五月| 强乱老妇中文字幕| 涩五月婷婷| 91情色在线| jk白丝没脱就开始啪啪| 国产SV一线| 84YTCOM性无码| 色色色色色色色色色色色色色色综合| 精品视频一区二区| 亚洲色性情三级| 午夜性刺激视频免费观看| 欧美日韩性感| 三级精品三级在线观看| 日夜干射色啊| 人人爱人人操人人性| 欧美在线中M| 欧美黑人精品在线播放| 人人澡人人澡人人| 91 刺激在线| 日韩精品在线视频,日韩精品……| 日韩AV一区二区三区三州三州| 国产v亚洲v日韩v欧美v片另类| 中文字幕视频2区| 伊人丁香五月婷婷| 亚洲高清色综合| 人妻天堂综合网| 日韩成人无码| 丰满人妻一区二区中文| 91精品综合久久久久久五月丁香| 国产日韩手机视频在线| 无码人妻精品酒店| 干B| 入口操逼网站| 中文字幕后石码四区五区| 中文字幕在在线观看网站| 秋霞成人一级在线观看| 9久9久| 日韩二三区| 欧美强奸乱能| 丁香九月 婷婷| 免费亚洲国产精品久久一区| www.狠狠干.coom| 国产真乱mangent| 久久精品无码不卡| 91AV老熟女视频| 日本东京热加勒比久久| 91性高朝久久久久久久久| 欧洲色综合| 国产白领连续中出在线观看| 超碰成人国产| 丁香六月激情| 欧美精品庄| 人妻无码一区二区三区久久99| 欧美一级三级| 亚洲天堂无码| 精品欧美А∨无码黑人大荫蒂| 大香久久| 另类欧美| 在线观看午夜婷婷久久久久清性观看| 亚洲免费精品一区| 国产成人网址| 日本理论在线| 多毛小伙内射老太婆 | 色欧美天天| 又摸又舔在线观看网站| 久久久久久午夜男人的天堂| 中国东北熟女老太婆内谢| 草草草视频在线免费看| 欧美亚洲中文| 超碰97综合| 久久精品99久久久久久| 老熟妇综合| 有码人妻系列| 91爽啪| 高清国产av无码| 亚洲人妻在线一区| 在线无码视频| 亚洲日本激情| 黄片aaaaa一区| 操逼无码操逼| 久久久新亚洲AV| 久久久夜夜夜| 麻豆精品一区二区三区四区免费观看| 欧美综色欧| 96精品一区| 久久妇| 色五月AV在线| 性九九九九九九| www.男人天堂| 九九九九九九九九九九九九九九九女| 中文字幕超碰CAO| 91精品成人| 午夜情侣自拍网站| 秋霞男人网| 伊人青青一区成人视频在线观看区| 亚洲天堂中文字幕无码男同| 97网址www| 黄色AV影视| 麻豆av一区二区三区| 欧美色涩| 亚洲欧美另类激情小说| 国产精品网址| 国产伦乱91| 99久久99久久综合| 亚洲国产精品乱码在线观看| 中文字幕-区二区三区四区视频中国| 久久AV无码1区2区3区| 日韩国产十八禁| 国产日韩人人| 久久是精品| 欧美最婬乱婬爆婬牲视频| 台湾佬大香蕉| 少妇一级无码精品| 国产精品无套内谢| 丁香久久| 久久久久久久久久久久黄色| 亚洲欧美综合图片| 国产操逼网站亚洲一级黄色| 日逼视频日本| 日本三级韩三级99久久| 色偷偷男人的天堂麻豆| 久久粉色| 国产一区二区a毛片| 人人操人人狠狠操| 九热大香蕉| 亚洲国产精品久久久久婷婷老年| 婷婷爽人人婷婷爽视频| 性在久久久久久| 婷婷久久久| 久久天天躁日日躁狠狠躁| 秋霞鲁丝午夜无码一区二区三| 九九九九久久久久| 夜夜影视四色| 99综合自拍| 91操熟妇| 狠狠色婷婷7777久| 翔田千里无码中出中文字幕| 日韩性爱网址| 免费啊啊啊| 后入式免费视频| 成人免费看吃奶视频网站| 亚洲国产欧美中文永久| 青青草伊人久久| 国产熟女无套内射| 日韩精品 视频一区二区| 天天综合色电影| 欧美影音在线| 久久免费99精品久久久久久| 美女人妻色网站| 日韩欧美蜜桃精品久久中文字幕久久| se吧提供国产乱老熟视频胖女人| 99热最新网址| 天天干1区2区在线| 18禁的网站在线| 欧美亚洲丝袜美女电影| 久久尹人大香焦视| 日韩人妻一区二区精品| 色综合20p| 国产91av在线播放| 91久久18禁| 97免费在线| 99久久网站| 欧美大色交| 日韩美女啪啪一区| 亚洲精品骚逼| 国产精品福利资源在线尤物| 厕所偷拍在线| 日韩亚洲欧美中文字幕| 成人精品电影| 精品蜜乳AV免费观看| 99综合视频一体| 婷婷10月天青娱乐| 99综合视频一体| 久久精品无码熟妇一区二区三区视频导航 | 99草精| 精品v日韩欧美国产| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 91网站在线播放| 911av网站免费观看| 亚射在线| 国内偷自视频区视频综合| 国产精品久久久蜜臀| 精品蜜乳AV免费观看| 久久久久无码| 日本高清免费一本视频在线观看| 久久久久ab| 操死我了嗯嗯嗯| 啪啪啪东京| 麻豆精品A片免费观看| 欧美gv在线观看| 国产传媒1234区| 国产一区二区免费福利片| 精品亚洲俞拍视频一区| 国产熟女乱论| 超碰九7免费| 99国产人成精品| 欧洲在线性爱视频| 91网站在线播放| 久久香蕉影院| 夜夜操美女| 天天摸天天舔天天操| 人人摸人人叼| 亚洲天堂2020| 五十路熟女工口| av网页一区二区三区| 青青草久久| 亚洲色综合| 五十路熟女人妻一区二区在线观看| 久热伊人99re| 亚洲成熟国产精品美女| 老司机福利青青草| 制服诱惑亚洲一区二区三区在线观看| 国产综合操逼高清| 国产成年精品高清在线观看91| 中文字幕av片| 中文字幕在线观看第二页| 欧美黑人精品在线播放| 国产精品乱码久久久| 日韩AV中文字幕电影| 黄片aaaaa一区| 天天综合青苹果| 一区二区三区 丝袜高跟| 亚洲精品成人激情在线| 久久超碰国产一区二区三区| 欧美激情内射| 97精品在线| 日本有码影片下载| 中文字幕 码精品视频网站| 欧美一级美片在线观看免费| 台湾佬大香蕉| 欧美亚洲韩国视频十五区 | 97爱综合| 9精品久久久久| 天天影视射综合网| 高凊专区人人操| 粉嫩av在线一区二区| www熟女乱伦com| 揉揉日日日日| 大屁股熟女一区二区三区| 骚乳在线| 人人喜人人妻| 猛猛干| 亚洲人人夜夜澡人人爽| 欧美日韩亚洲五月天婷婷| 国产精品青青草| 亚洲中文字幕网| 亚洲国产成人精品无码专区| 98人妻精品一区二区色欲 | 男人天堂一区二区| 婷婷亚洲综合| 黄色视频特级毛片| 插日本熟女视频| 国产人妖的免费的视频| 亚洲图片色图欧美另类| A级片日韩欧美国产欧美视频精选观看| 精品美女少妇一区二区| 精品二区三四区五电影| 国产精品电| 亚洲网污污污污| 久久夜色一区二区| 性色国产东北露脸精品视频| 欧美亚洲影视| 91天天c| 国产成自自拍在线观看| 操逼精品视频| 人妻五十路在线| 欧美综合 站| 超碰97在线色男人??| 97日视频| 亚洲风情综合网| 淫荡网址| 久久久久久久久久va| 亚州熟女乱伦| 无码精品人妻一区二区三区妖精| 日本一区二区三区四区免费观看| 性在久久久久久| 亚洲五码一区二区三区| 99热在线播放| 熟妇人妻一区二区三区| 欧美 日韩 另类 亚洲| 亚洲青色欧美| 91高清日| 国产福利电影| 亚洲欧美在线观看免费| 亚洲少妇中文字幕网址| 久久久蜜桃一区二区三区| 久久久久久夜夜夜夜夜| 99re6国产精品99re| 9九九国产| julia国产在线 | 国产精品情侣啪啪| 人人搡人人肉久久精品| 97 色综合| 亚欧毛片基地国产毛片基地| 中文字幕在线免费观看视频| 亭亭丁香激情| 精品少妇人妻一区二区三区| 欧美一级在线观看成人| 91在线视频观看国产| 欧美在线大香999| 亚州综合色| 日韩在线性爱免费视频| 日日狠狠久久偷偷色综合免费| 亚洲精品色| 欧美青青草视频| 亚洲 欧美 色图| 国产黄色在线播放观看| 在线播放成人网站| 小骚逼被操的爽不爽| 青青草综合在线| 日韩精品资源专区二区| 五月丁香六月婷综合成人综合 | 性色av大全| 欧美精品日韩一区二区| 嗯……啊…嗯嗯…啊…好舒服| 欧美在线中M| 国产精品免费久久久久久久久久| 日韩不卡a级视频专区| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 国产自偷| 韩国成人精品久久久免费看| 亚洲欧洲视频小说在线观看| 加勒比99999| 久久久久免费看少妇A片特黄| 日韩三级一区| julia国产在线| 日韩乱伦影音先锋| 北京美女一区二区| 日韩无码一级黄色av片| 天美国产精品| 97视频免费播放| 色综合尤物| 九九九九免费高| 国语av狠狠色丁香婷婷综合激情| 99re在线观看| 欧美丝袜中文字幕07在线| 亚洲黄色a级片| 久久国产对白激情浪潮 | 一区二区三区国产精产| 青青草好吊色| 色色五月天婷婷| 色哟哟av| 骚逼高潮久久精品| 精品人妻久久久久一区二区三区| 激情综合婷婷| 老鸭窝在线视频播放| 欧亚乱色熟女一区二区| 60秒免费视频| 欧美性爱三区二区| 欧美一品道| 久久精品店| 人乳av| 久久鲁干| 亚洲欧美综合图片| 久久人人看| 加勒比综合88| 麻豆天美久久91| 久久大黄片| 超碰95| 欧美日韩夜夜| 国内毛片国产欧美拍| 久久久久久9999| 手机在线中文字幕国产| 九久久精品| 3p国产色噜噜一区| 2017天天拍大香蕉| 欧美熟妇乱码在线一区| 高潮的A片激情扒开一区| 精品久久九| 免费一级毛片在线视频观看| 午夜精品久久久久久久第一页按摩| 亚洲婷婷五月天| 性夜影院爽黄A爽免费动漫| 97激情97激情| 四虎影视永久在线免费| 上床啊啊啊| 国产欧美一区二区| 日韩一区二区高清在线观看的| 91N综合网在线| 久久婷五月| 亚洲一区二区在线观看91| 婷婷精品国产一区二区三区日韩| 国产超碰| 日本孕妇一区二区视频操逼免费看 | 色香蕉影院| 秋霞色色影院| 久久久999国产| 天美av在线观看| 在线色导航| 九九九999久久久网站| 在线天堂999| 乱伦熟女区| 99久久无码| 物业黑人 AV一区| 丝袜美腿欧美| 久久精品中文字幕无码l| 黄页av| 久久久国产精品亚洲精品| 国内外色色色色色成人视频| 国内毛片婷婷六月色| 午夜男人的天堂| 青青草玖玖爱| 国产精品经典一卡久久久| 色欲日韩欧美在线一区| 欧美日韩*字幕一区| 蜜屁av| 超碰日韩美妻| 欧美五区| 白嫩嫩一区| 久久久国产成人一区二区三区在线| 日韩三级在线观看网站| 97亚洲综合在线| 神马久久69| 久久久久久久久久久人妻| 91啪啪视频| jizzjizz欧美| 久久91视频| 97免费在线视频| 精品无av| 亚州精品人妻一二三区| 九九国产热| 亚洲天堂自拍| 亚洲综合另类欧美久久久| A V少妇特黄三级| 久久九九99| 日韩免费看黄片| 欧美一级国产一级| 日本操逼视频不卡直接放| 91无码西班牙视频在线| 亚洲少妇在线观看| 欧在线一二区| 麻豆久久一区二区三区| 中文久久| 极品国产内射| 深夜福利黄片| 在线视频亚洲无码| 日本国产欧美一区三区二区| 亚洲熟妇一,二,三期| 久操97| 精品亚洲| 亚洲麻豆av一区二区| 中文久久| 成人97人人超碰人人| gogogo免费高清看中国国语| 1人人看人人摸人人操| 日韩性爱视频在线免费观看| www.久久制服糖| 国产日韩欧美中文在线播放| 殴美在线AⅤ| 爆操无码| 92福利社视频| 白丝AV网站| 丝袜亚洲91| 无码九九九九| 97亚洲精品超碰| 男人亚洲天堂| 飘花国产午夜精品不卡| 日本人人操人人操| 青青草操逼逼视频| 91jk色拍| 锕锕好爽 死我在线观看| 日天天九九天堂666| 九九九免费视频| 久久成人国产精品| 国语对白在线播放视频| 日韩AV一区二区三区四四| 亚洲欧美综合色| 超碰无码五月97| 超碰99在线| 久久精品久久久久久久久| 在线观看色视频| 亚洲欧美大香蕉| 性色国产东北露脸精品视频| 无码九九九九| 黄色大片视频在线免费看| 国产精品网址| 五月天婷婷综合网| 麻豆精品天美| 91精品老女人| 在线欧美69V免费观看视频| 丁香五月天社区| 神马午夜久久久| 东北女人性交| 特级特黄一级毛片免费| 婷婷激情五月| 欧美激情色婷婷花野真衣一区二区| 韩日欧亚a级| 啪啪啪东京| 久久ww| 青青伊人久久| 加勒比伊人| 欧美 亚洲 偷拍自拍| 国产农村妇女精品一二区| 97欧美久久久久久久| 久久草草亚洲蜜桃臀| 亚洲色综合| 精品视频久久区| 综合伊人网12色| 制服乱伦| 欧美91色| 欧美强奸乱| 日韩精品99久久久久久中文字幕 | 人人透人人操| 色老牛| 亚洲男人久久综合天堂| 亚洲。日韩。欧美| 成人性交午夜免费片| 国产真实野战在线视频| 超碰夫妻97| 日本国产欧美一区三区二区| 97视频在线观看播放与子乱对白在线……| 男人的天堂三级| 午夜爽爽爽在线观看永久入口姬片| 亚洲一二三四区机械| 欧美天天弄| 五月天婷婷色| 亚洲 欧美综合| 亚洲欧美日韩综合在线尤物| 91女优在线观看 | 久久久精品国产亚洲伊人| 久久中文字幕人妻熟av女蜜柚| 日本不卡高清视频| 青青草字幕AV| 日本免费人成视频播放120秒| 久久久久久性爱视频| 91在线欧美| 爆乳免费黄网站| 凹凸视频在线一区二区| 亭亭丁香激情| A级片日韩欧美国产欧美视频精选观看| 国产最新AV| 国产肏逼网站| 伊人操操| 美女操逼福利视频| 人妻喷水| 香蕉在线一区二区三区| 家庭乱伦麻豆| 五十路熟女工口 | 最新9久久久9免费视频| 爆操无码| 欧美天天干| 四虎影库国产精品免费| 啪啪性爱免费视频| 国产精品久久久999| 国产精品无套内谢| 97久久超碰日韩精品| 桃色五月天| 国产精品午夜AV完会免费 | 日本国产欧美一区三区二区| 最新av在线| 久久久精品视频免费观看| 亚洲丝袜二区在线| 亭亭丁香激情| 黄页视频网站野外| 午夜啊啊| 久久久穴999| 日韩中文字幕视频在线观看| 91美女小视频| 97 国产一区| 日韩AV一起草| 亚洲欧美综合| 成人精品水蜜桃久久久久久久| 五月丁香啪| 乱伦熟女专区| 97国产中文| 嗯~啊~快点 死我视频| www..com操老师| 国产熟女无套内射| 中 文字幕一区二区三四 五 区日 日 骚| 太久视频| 女性喷水高潮在线观看| 亚洲欧美日韩中文久久自慰| 中文字幕大片三级狠狠干| 强奸乱伦AV网站| 91 丝袜在线播放| 福利大香蕉| 91人妻视频在线| 殴美在线AⅤ| 富女玩鸭子一级毛片| 99蜜月精品久久| 国产一区麻豆免费观看| 五月丁香激情综合网| 国产精品亚洲一级av第二区| 久久精品久久久久久久| 四虎在线观看网站| 天天碰操中国年青熟妇| Julia在线播放亚洲久久| 激情网色| 免费福利视频中文字幕| 亚洲精品97| 一二区在线观看视频| 亚洲91网站| 一个人在线看的黄色电影网站| 久99热| 天天干天天操天天干天天操| 亚洲无线码欧洲精品区别| 超碰欧美97| 欲色综合| 久热精品在线| 欧洲一区二区三区四区在线观看| 美女大乳久久久久久久女人18| 人妻激情另类| 欧美操人| 日韩999| 一区二区娱乐网站| 国产浮力影院第1页| 国产人伦a片信息免费片| av麻豆啪啪| 久久超碰大香蕉| 久久国产对白激情浪潮| 91综合在线| 日韩免费看黄片| 国产Aα| 成人午夜高潮av猛片| 欧中美三级一区二区三区| 欧美体内射精| 四虎在线播放| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊 | 欧美日韩性爱无码| 国产一区二区a毛片| 日韩欧美大力操| 岛国片在线播放| 家庭乱伦国产| 青娱乐欧美激情一区二区| 97无码视频在线播放| 精品国产Av无码久久久伦古装| 亚洲天堂男人天堂网| 91bbb| 日产操逼| 无码区蜜乳| 波多野42部无码喷潮在线观看 | 久久这里精品国产99丫e6| 91丝袜美女| 欧美激情超碰777| 福利天堂| 亚洲欧美天| 久操国产在线| 色欲天天综合久久久无码网中文| a片在线播放| 久操com| 抽插无码高清一区| www.激情| 色婷婷综合久久中文字幕雪峰| 日本五十路在线| 久久久内射良家| 欧美激情高清性猛交| 亚洲美女AV无码| 日小BB小视频| 欧美成人一区二区三区在线播放| 91美女丝袜诱惑视频| 九九九综合精品| 亚州高清色综合| 后入人妻无码| 在线免费观看高清无码视频| 青青久久手机线视频| 五月丁香六月婷| 日韩欧美麻豆大片| 欧美色交| 国产91影院| 国模不卡| 久久国产99精品72福利 | 校园激情狠狠四射| av一区二区三区不卡| 激情综合网五月婷婷五月天| 蜜臀少妇一区二区| 60秒免费小视频| 少妇激情一区二区三区视频| 天天摸夜夜操视频| 97射欧美| 一起草三级AV电影在线观看| 在线A日本| 香蕉久久国产AV一区二区| 午夜呻吟欧美| 99热99re6国产在线播放| 九九无码| 国产欧美日韩在线不卡第一页| 91国产精品熟女| 亚洲熟妇白浆无码AV| 绯色一区二区三区不卡少妇| 抽插无码高清一区| 久久久av爱| 91丝袜| 一级黄色牲爱A级片| 粉嫩国产精品久久久| 国产一区二区在线看| 香蕉久久AⅤ...| 91狠婷| 国际精品久久久| 中文字幕一区二区三区高清| 十八禁网站在线| 蜜臀Av一区二区三区| 精品九九国产无码| 日本一区二区电影网站| 欧美亚州综合网图片| 天天干夜夜一操| 色天堂综合| 伊人一级免费黄片| 翘臀vidoes| 久久精品国产亚洲av水密被窝| 思思热久久成人| 亚洲AV无码久久精品蜜桃小说| 亚洲综合影院| 久久这里都是精品| 密臀视频三区免费网站| 国产又色又爽又舒服的三级视频 | 中国女人内射6XXXXX| 免费9 1久久| 欧美国产精品久久九九| 日韩另类色图| 欧美色乱| 91狠| 中文字幕三四五区| 夜夜操狠狠操| 欧美 亚洲精品首页| 成片免费观看视频大全| 91蜜臀人妻中文字幕在线| 黄aaaaaaaaaaaaaaaaaa色网站| 日本免费一区二区不卡| 日本一区二区做爱的视频| 操逼无毒无码免费视频| 777奇米影视777四色| 亚洲中文sv| 99在线精品观看99| 亚洲熟妇A V黑人| 人妻AV 中文字幕的| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 人妻天天操天天爽视频免费| 视频不卡中文字幕| 日韩影片中文字幕一区二区三区| 亚洲学生妹高清av| 久久偷拍人| 国模不卡| 欧美色九九| 男人的天堂2010| 国产肏逼网站| 骚女高跟AV在线| 久久久 国产精品| 撸无码不卡免费视频| 亚洲有薄码区日本系列中文字幕| 国产精品久久久久久亚洲色欲| 久久久久久波多野吉衣高潮| 欧美国产伊人久久久久| 高精欧美色| 免费视频在线观看啊啊啊啊啊| 日韩操逼性鲍| 中文字幕视频免费| 色墦五月丁香| 少妇熟女1区2区3区| 国产偷人妻精品一区二区在线| 成人三级片无码| 亚洲欧美洲综合| 男人的天堂色偷偷青青草视频婷婷网| 国产精品久久久久亚洲av| 天堂av最新电影网| 69AV女优男人的天堂| 日韩色| 亚洲人综合19| 亚洲少妇色图自慰直播| 天天插天天操| 日本国产亚洲一区在线观看| 9997se| 玖玖爱综合| 成人免费在线网站| 人人搞人人插人人操| 99精品高潮| 狼人综合婷婷激情四射 | 欧美另类自拍 | 欧美劲爆第一页| 欧美日韩精品久久| 天天干一干| 18禁美女裸体无遮挡啪啪| 久久99国产精品| 欧美 亚洲 另类 综合| 欧美亚州手机在线| 91久久精品中文字幕| 好色综合| 久久成人东京热人妻| 10000部十八禁看电影| 99色色网| 国产精品岛国片在线观看| 人人性爱视频免费| 欧美写真视频一区| 加勒比综合a∨| 久久夜夜夜夜| 99少妇精品视频| 久操热| 一级啊性爱在线视频| 小日子操bb在线看| 亚洲精品九九九| 老熟女阿 国产91| 任你干在线视频| 欧美成人色| 男人的天堂成人的社区| 六六久久日韩不卡| 久久激情综合| 国产九九九九九九九九| 操逼不卡中文字幕| 五月天社区| 国产女性无套 免费观看| 秋霞 色色| 婷婷国产精品一区二区| 欧美丝袜美女电影一二三四区| 亚州色站 日韩电影| 婷婷日韩一区二区三区中文字幕在线| 欧美视频中文字幕区| 黄色AAAAA欧美| 国产强奸乱伦xd| 亚洲码在线中文在线观看| 99热这里是精品| 久久久精品视频免费观看| 日韩人妻一二三区视频| 91天堂网| 好爽免费视频| 欧美亚洲首页| 日韩性色| 97这里只有精品| 麻豆精品一区二区三区四区免费观看| 99re视频在线播放青草| 欧洲亚洲人妻无码久久三区四区| 国产91丝袜 在线播放| 久久中文字幕女同性恋一区| 欧美日韩精品青青| 亚洲交换| 91丰满| 亚洲风情在线观看| 97综合在线| 97色碰| 欧美乱伦专区| 无码人妻精品一区二区三区99不卡 | 色欲久久99国产精品久久久久久| 東南亚性呦成人伦理资源在线视频| 欧美日韩妖精91com| 综合网少妇| 天堂成人网| 亚洲欧美综合| 亚洲一区操| 色色香蕉| 国产欧美日韩在线不卡第一页| 丁香六月婷婷久久综合| 男人的天堂2018东京热啪啪啪| 欧美九九99久久精品| 99RE在线视频精品,这里只有精品| 久久爽爽精品| 淫纸中9区| 日韩欧美加勒比| 成人免费毛片| 成人免费在线网站| 男人的天堂不卡一区二区| 久操99| 97网址97| 女优大全 - 91n| 在线有码中文字幕| 人妻精品一区二区在线| 日韩人体偷拍| 东京热熟女亚洲视频网站| 97爱爱官网| a片自拍直播视频| 99久久久er直播网址| 一级黄色影片| 成人热久久精品| 天天色综合影视网| 亚洲欧美一区二区网址| 欧亚性爱视频免费看| 欧美不卡在线美女| 久久精品视| 不卡在线观看视频| av无码av无码专区| 玖玖97综合 | 超碰在线成人| 中文97国产| 78精品在线| 国产av强奸美女| 欧洲天天在线| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 久久国产逼| 99色综合| 婷婷伊人一区| 五月综合色| 亚洲AV不卡在线观看尤物| 2017,超碰| 日韩无码黄色片| 欧美亚洲国内自拍| 亚洲日韩97| 日本日逼高清| 亚洲AV免费在线观看| 亚洲精品 欧美97色色| 国产一级特黄大片处女| 精品国产网站| 亚洲欲色| 久久久精品成人国产| 久草男人天堂| WWW操逼| 97综合在线观看| 99re这里只有| 欧美顶级黄片AAAAA在线免费看 | 精品一级| 午夜高清成人在线视频| 性交一区二区在线播放| 韩三级a视频在线观看| 99re这里只有精品3| 日韩色| 激情丁香五月| 欧美热图99| 午夜男人一级A片7777| 另类欧美| 日韩成人性爱电影在线播放| 91欧美性| 囯产操逼片| 精吧天堂| 精品国产乱码久久久久久口爆网站| 玖玖资源中文字幕制服丝袜| 国产在线能看的你懂的| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 日本欧美成人片AAAA| 蜜臀在线网站| 色99视频| 粉嫩AV一区二区夜夜| 五月天激情小说| 四虎影视精品| 欧美另类色图片| 啊啊啊好想要| 校园春色欧美色图| 在线有码中文字幕| 一区,二区,三区视频| 操操逼操操逼操操逼逼| 国产后入清纯| 亚洲日韩精品在线播放| 久久久偷拍| 久热69九色熟妇97| 一本色道综合久久欧美| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 日本性感人妻91| 亚洲不卡不卡中文字幕不卡| 精品人妻一区二区三区四区石在线| 国产传媒美日韩av| 内射小黄片| 亚洲日韩东京热一区| 激情五月天丁香社区| 亚洲一本色码中文字幕| 国产精品一区二区三区,亚洲综合| 精品9999| 久久久久久亚洲精品不卡人乳| 好吊色综合| 91成人国产综合久久精品蜜月| 色呦呦呦在线观看视频| 久草在| 亚洲免费看片| 精品人成视频在线观看| 亚洲综合射| 国产精品三级视频网站| 国产成人在线观看网址| 极品后入免费视频| 十八禁成人网站在线观看| 精品一级| 欧美少妇性乱| 国产超碰人人操| 亚洲欧美情色| 青青草男人天堂| 中文字幕在线日亚州9| 亚州综合色| 啊啊啊啊好大好硬啊啊啊啊啊 | 97超碰护士| 91视频成人福利网站在线一区| 久久精品国产亚洲AV高级北京| 久久久一区二区三区四区五区| AV九九| 欧美日韩大香蕉| 亚洲97网站| 中文字幕少妇色 | 97久久超碰亚洲| 色情亚洲日本成人| 麻豆这里只有精品| 久久专区| 亚洲性综合11| 中文字幕97色| 青娱乐淫乱1314| 国产少妇内射| 国产天天看| 无码9区| 嗯啊抽插大香蕉网页| 亚洲日韩国产精品| chaopen97久久| 欧美91在线+|+欧美| 五月丁香激情综合网| 欧美操逼熟女| 日本一区二区三区免费观看| 美女91网| 天天日天天操VV| 久草视频制服诱惑| www.色婷婷.com| 99999精品| 夜夜夜夜久久久久| 亚洲男人天堂2| 91高跟美女在线播放| 丁香五月天堂网| 亚洲砖码砖专无区2023| 91人妻最真实刺激绿帽| 黑人免费福利视频| 欧美另类丝袜熟女| 熟女91网| 日韩中文9| 91/欧美| 久久嫩草国产成人一区| 午夜男人天堂| 99热这里| 六月色婷婷| 亚洲一卡2卡3卡4卡乱码网站| 一级@啪啪视频| 免费a级毛片av无码久久精品中文字幕| 91狠狠综| 欧美激情视频一区二区| 日本 情色 1区| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 在线观看中文av字幕| 欧美性爱1080p| 国产AV毛片| 99色热国产视频精品| 免费一级精品啪啪视频| 国产高清自拍视频| 久久亚洲AV无码白度| 国产久久久久久| 综合夜夜| 亚洲激情视频| 欧美懂色综合网| 欧美少妇色图| 国产 日韩 欧美一区| 91天堂网| 成人羞羞视频国产| 国产精品国产亚洲区艳妇糸列| AⅤ片水多多| 肏逼视频日本| 免费日韩黄片| 一级@啪啪视频| 精品亚洲国产成人精品| 中文字幕五月婷婷免费| 免费一级特黄特色大片在线观看看 | 日本韩国国产精品一区| 中文字幕一区二区三区字幕| 岛国黄片网站| 久草免费福利在线播放| 亚洲AV无码乱码在线观看性色|