精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

部署基于內(nèi)存存儲的 Elasticsearch - 一億+條數(shù)據(jù),全文檢索 100ms 響應

人工智能
AI 的算力節(jié)點有大量空閑的 CPU 和 Memory 資源,使用這些大內(nèi)存的主機節(jié)點,部署一些短生命周期的基于內(nèi)存存儲的高性能應用,有利于提高資源的使用效率。

1. 在主機上掛載內(nèi)存存儲目錄

  • 創(chuàng)建目錄用于掛載
mkdir /mnt/memory_storage
  • 掛載 tmpfs 文件系統(tǒng)
mount -t tmpfs -o size=800G tmpfs /mnt/memory_storage

存儲空間會按需使用,也就是使用 100G 存儲時才會占用 100G 內(nèi)存。主機節(jié)點上有 2T 內(nèi)存,這里分配 800G 內(nèi)存用于存儲 Elasticsearch 數(shù)據(jù)。

  • 提前創(chuàng)建好目錄
mkdir /mnt/memory_storage/elasticsearch-data-es-jfs-prod-es-default-0
mkdir /mnt/memory_storage/elasticsearch-data-es-jfs-prod-es-default-1
mkdir /mnt/memory_storage/elasticsearch-data-es-jfs-prod-es-default-2

如果沒有提前創(chuàng)建好目錄,并賦予讀寫權限,會導致 Elasticsearch 組件起不來,提示多個節(jié)點使用了相同的數(shù)據(jù)目錄。

  • 配置目錄權限
chmod -R 777 /mnt/memory_storage
  • DD 測試 IO 帶寬
dd if=/dev/zero of=/mnt/memory_storage/dd.txt bs=4M count=2500

2500+0 records in
2500+0 records out
10485760000 bytes (10 GB, 9.8 GiB) copied, 3.53769 s, 3.0 GB/s
  • 清理文件
rm -rf /mnt/memory_storage/dd.txt
  • FIO 測試 IO 帶寬
fio --name=test --filename=/mnt/memory_storage/fio_test_file --size=10G --rw=write --bs=4M --numjobs=1 --runtime=60 --time_based

Run status group 0 (all jobs):
  WRITE: bw=2942MiB/s (3085MB/s), 2942MiB/s-2942MiB/s (3085MB/s-3085MB/s), io=172GiB (185GB), run=60001-60001msec
  • 清理文件
rm -rf /mnt/memory_storage/fio_test_file
  • 測試內(nèi)存 IO 帶寬
mbw 10000

Long uses 8 bytes. Allocating 2*1310720000 elements = 20971520000 bytes of memory.
Using 262144 bytes as blocks for memcpy block copy test.
Getting down to business... Doing 10 runs per test.
0 Method: MEMCPY Elapsed: 1.62143 MiB: 10000.00000 Copy: 6167.380 MiB/s
1 Method: MEMCPY Elapsed: 1.63542 MiB: 10000.00000 Copy: 6114.656 MiB/s
2 Method: MEMCPY Elapsed: 1.63345 MiB: 10000.00000 Copy: 6121.997 MiB/s
3 Method: MEMCPY Elapsed: 1.63715 MiB: 10000.00000 Copy: 6108.161 MiB/s
4 Method: MEMCPY Elapsed: 1.64429 MiB: 10000.00000 Copy: 6081.667 MiB/s
5 Method: MEMCPY Elapsed: 1.62772 MiB: 10000.00000 Copy: 6143.574 MiB/s
6 Method: MEMCPY Elapsed: 1.60684 MiB: 10000.00000 Copy: 6223.379 MiB/s
7 Method: MEMCPY Elapsed: 1.62499 MiB: 10000.00000 Copy: 6153.876 MiB/s
8 Method: MEMCPY Elapsed: 1.63967 MiB: 10000.00000 Copy: 6098.770 MiB/s
9 Method: MEMCPY Elapsed: 2.97213 MiB: 10000.00000 Copy: 3364.588 MiB/s
AVG Method: MEMCPY Elapsed: 1.76431 MiB: 10000.00000 Copy: 5667.937 MiB/s
0 Method: DUMB Elapsed: 1.01521 MiB: 10000.00000 Copy: 9850.140 MiB/s
1 Method: DUMB Elapsed: 0.85378 MiB: 10000.00000 Copy: 11712.605 MiB/s
2 Method: DUMB Elapsed: 0.82487 MiB: 10000.00000 Copy: 12123.167 MiB/s
3 Method: DUMB Elapsed: 0.84520 MiB: 10000.00000 Copy: 11831.463 MiB/s
4 Method: DUMB Elapsed: 0.83050 MiB: 10000.00000 Copy: 12040.968 MiB/s
5 Method: DUMB Elapsed: 0.84932 MiB: 10000.00000 Copy: 11774.194 MiB/s
6 Method: DUMB Elapsed: 0.82491 MiB: 10000.00000 Copy: 12122.505 MiB/s
7 Method: DUMB Elapsed: 1.44235 MiB: 10000.00000 Copy: 6933.144 MiB/s
8 Method: DUMB Elapsed: 2.68656 MiB: 10000.00000 Copy: 3722.225 MiB/s
9 Method: DUMB Elapsed: 8.44667 MiB: 10000.00000 Copy: 1183.898 MiB/s
AVG Method: DUMB Elapsed: 1.86194 MiB: 10000.00000 Copy: 5370.750 MiB/s
0 Method: MCBLOCK Elapsed: 4.52486 MiB: 10000.00000 Copy: 2210.013 MiB/s
1 Method: MCBLOCK Elapsed: 4.82467 MiB: 10000.00000 Copy: 2072.683 MiB/s
2 Method: MCBLOCK Elapsed: 0.84797 MiB: 10000.00000 Copy: 11792.870 MiB/s
3 Method: MCBLOCK Elapsed: 0.84980 MiB: 10000.00000 Copy: 11767.516 MiB/s
4 Method: MCBLOCK Elapsed: 0.87665 MiB: 10000.00000 Copy: 11407.113 MiB/s
5 Method: MCBLOCK Elapsed: 0.85952 MiB: 10000.00000 Copy: 11634.468 MiB/s
6 Method: MCBLOCK Elapsed: 0.84132 MiB: 10000.00000 Copy: 11886.154 MiB/s
7 Method: MCBLOCK Elapsed: 0.84970 MiB: 10000.00000 Copy: 11768.915 MiB/s
8 Method: MCBLOCK Elapsed: 0.86918 MiB: 10000.00000 Copy: 11505.150 MiB/s
9 Method: MCBLOCK Elapsed: 0.85996 MiB: 10000.00000 Copy: 11628.434 MiB/s
AVG Method: MCBLOCK Elapsed: 1.62036 MiB: 10000.00000 Copy: 6171.467 MiB/s

看起來將內(nèi)存掛載為文件系統(tǒng)的 IO 帶寬只能達到內(nèi)存的 IO 帶寬的一半。

2. 在 Kubernetes 集群上創(chuàng)建 PVC

  • 配置環(huán)境變量
export NAMESPACE=data-center
export PVC_NAME=elasticsearch-data-es-jfs-prod-es-default-0
  • 創(chuàng)建 PV 及 PVC
kubectl create -f - <<EOF
apiVersion: v1
kind: PersistentVolume
metadata:
  name: ${PVC_NAME}
  namespace: ${NAMESPACE}
spec:
  accessModes:
    - ReadWriteMany
  capacity:
    storage: 800Gi
  hostPath:
    path: /mnt/memory_storage/${PVC_NAME}
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: ${PVC_NAME}
  namespace: ${NAMESPACE}
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 800Gi
EOF

通過修改 PVC_NAME 變量創(chuàng)建至少 3 個 PVC 應用,最終我創(chuàng)建了 20 個 PVC,總共提供了 15+ TB 的存儲。

3. 部署 Elasticsearch 相關組件

此處省略了部分內(nèi)容,詳情參考 使用 JuiceFS 存儲 Elasticsearch 數(shù)據(jù)[1]。

  • 部署 Elasticsearch
cat <<EOF | kubectl apply -f -
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
  namespace: $NAMESPACE
  name: es-jfs-prod
spec:
  version: 8.3.2
  image: hubimage/elasticsearch:8.3.2
  http:
    tls:
      selfSignedCertificate:
        disabled: true
  nodeSets:
  - name: default
    count: 3
    config:
      node.store.allow_mmap: false
      index.store.type: niofs
    podTemplate:
      spec:
        nodeSelector:
          servertype: Ascend910B-24
        initContainers:
        - name: sysctl
          securityContext:
            privileged: true
            runAsUser: 0
          command: ['sh', '-c', 'sysctl -w vm.max_map_count=262144']
        - name: install-plugins
          command:
            - sh
            - -c
            - |
              bin/elasticsearch-plugin install --batch https://get.infini.cloud/elasticsearch/analysis-ik/8.3.2
          securityContext:
            runAsUser: 0
            runAsGroup: 0
        containers:
        - name: elasticsearch
          readinessProbe:
            exec:
              command:
              - bash
              - -c
              - /mnt/elastic-internal/scripts/readiness-probe-script.sh
            failureThreshold: 10
            initialDelaySeconds: 30
            periodSeconds: 30
            successThreshold: 1
            timeoutSeconds: 30
          env:
            - name: "ES_JAVA_OPTS"
              value: "-Xms31g -Xmx31g"
            - name: "NSS_SDB_USE_CACHE"
              value: "no"
          resources:
            requests:
              cpu: 8
              memory: 64Gi
EOF
  • 查看 Elasticsearch 密碼
kubectl -n $NAMESPACE get secret es-jfs-prod-es-elastic-user -o go-template='{{.data.elastic | base64decode}}'

xxx

默認用戶名是 elastic

  • 部署 Metricbeat
kubectl apply -f - <<EOF
apiVersion: beat.k8s.elastic.co/v1beta1
kind: Beat
metadata:
  name: es-jfs-prod
  namespace: $NAMESPACE
spec:
  type: metricbeat
  version: 8.3.2
  elasticsearchRef:
    name: es-jfs-prod
  config:
    metricbeat:
      autodiscover:
        providers:
          - type: kubernetes
            scope: cluster
            hints.enabled: true
            templates:
              - config:
                  - module: kubernetes
                    metricsets:
                      - event
                    period: 10s
    processors:
    - add_cloud_metadata: {}
    logging.json: true
  deployment:
    podTemplate:
      spec:
        serviceAccountName: metricbeat
        automountServiceAccountToken: true
        # required to read /etc/beat.yml
        securityContext:
          runAsUser: 0
EOF
  • 部署 Kibana
cat <<EOF | kubectl apply -f -
apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
  namespace: $NAMESPACE
  name: es-jfs-prod
spec:
  version: 8.3.2
  count: 1
  image: hubimage/kibana:8.3.2
  elasticsearchRef:
    name: es-jfs-prod
  http:
    tls:
      selfSignedCertificate:
        disabled: true
EOF
  • 查看 Elasticsearch 集群信息

圖片圖片

4. 導入數(shù)據(jù)

  • 創(chuàng)建索引

在 Elasticsearch Management 的 Dev Tools 頁面中執(zhí)行:

PUT /bayou_tt_articles
{
  "settings": {
    "index": {
      "number_of_shards": 30,
      "number_of_replicas": 1,
      "refresh_interval": "120s",
      "translog.durability": "async",
      "translog.sync_interval": "120s",
      "translog.flush_threshold_size": "2048M"
    }
  },
  "mappings": {
  "properties": {
      "text": {
        "type": "text",
        "analyzer": "ik_smart"
      }
    }
  }
}

有兩個注意事項:

  1. 保持每個分片大小在 10-50G 之間,這里 number_of_shards 設置為 30,因為一共有幾百 GB 的數(shù)據(jù)需要導入。
  2. 副本數(shù)至少為 1,是為了保障 Pod 在滾動更新時不會丟失數(shù)據(jù)。當 Pod 的 IP 發(fā)生變化時,Elasticsearch 會認為是一個新的節(jié)點,不能復用之前的數(shù)據(jù),此時如果沒有副本重建分片,會導致數(shù)據(jù)丟失。
  • 安裝導入工具

也可以采用 elasticdump 容器導入,下面也會有示例。這里采用 npm 安裝。

apt-get install npm -y
npm install elasticdump -g
  • 導入數(shù)據(jù)
export DATAPATH=./bayou_tt_articles_0.jsonl
nohup elasticdump --limit 20000 --input=${DATAPATH} --output=http://elastic:xxx@x.x.x.x:31391/ --output-index=bayou_tt_articles --type=data --transform="doc._source=Object.assign({},doc)" > elasticdump-${DATAPATH}.log 2>&1 &

limit 表示每次導入的數(shù)據(jù)條數(shù),默認值是 100 太小,建議在保障導入成功的前提下盡可能大一點。

  • 查看索引速率

圖片圖片

索引速率達到 1w+/s,但上限遠不止于此。因為,根據(jù)社區(qū)文檔的壓力測試結果顯示,單個節(jié)點至少能提供 2W/s 的索引速率。

5. 測試與驗證

  • 全文檢索性能顯著提升

圖片圖片

上圖是使用 JuiceFS 存儲的全文檢索速度為 18s,使用 SSD 節(jié)點的 Elasticsearch 的全文檢索速度為 5s。下圖是使用內(nèi)存存儲的 Elasticsearch 的全文檢索速度為 100ms 左右。

圖片圖片

  • 更新 Elasticsearch 不會丟數(shù)據(jù)

之前給 Elasticsearch Pod 分配的 CPU 和 Memory 太多,調(diào)整為 CPU 32C,Memory 64 GB。在滾動更新過程中,Elasticsearch 始終可用,并且數(shù)據(jù)沒有丟失。

但務必注意設置 replicas > 1,盡量不要自行重啟 Pod,雖然 Pod 是原節(jié)點更新。

  • 能平穩(wěn)實現(xiàn)節(jié)點的擴容

圖片圖片

由于業(yè)務總的 Elasticsearch 存儲需求是 10T 左右,我繼續(xù)增加節(jié)點到 10 個,Elasticsearch 的索引分片會自動遷移,均勻分布在這些節(jié)點上。

  • 導出索引速度達 1w 條每秒
docker run --rm -ti elasticdump/elasticsearch-dump --limit 10000 --input=http://elastic:xxx@x.x.x.x:31391/bayou_tt_articles --output=/data/es-bayou_tt_articles-output.json --type=data
Wed, 29 May 2024 01:41:23 GMT | got 10000 objects from source elasticsearch (offset: 0)
Wed, 29 May 2024 01:41:23 GMT | sent 10000 objects to destination file, wrote 10000
Wed, 29 May 2024 01:41:24 GMT | got 10000 objects from source elasticsearch (offset: 10000)
Wed, 29 May 2024 01:41:24 GMT | sent 10000 objects to destination file, wrote 10000
Wed, 29 May 2024 01:41:25 GMT | got 10000 objects from source elasticsearch (offset: 20000)
Wed, 29 May 2024 01:41:25 GMT | sent 10000 objects to destination file, wrote 10000
Wed, 29 May 2024 01:41:25 GMT | got 10000 objects from source elasticsearch (offset: 30000)

導出速度能達到 1w 條每秒,一億條數(shù)據(jù)大約需要 3h,基本也能滿足索引的備份、遷移需求。

  • Elasticsearch 節(jié)點 Pod 更新時,不會發(fā)生漂移

更新之前的 Pod 分布節(jié)點如下:

NAME                                           READY   STATUS    RESTARTS      AGE   IP               NODE                         NOMINATED NODE   READINESS GATES
es-jfs-prod-beat-metricbeat-7fbdd657c4-djgg6   1/1     Running   6 (32m ago)   18h   10.244.54.5      ascend-01   <none>           <none>
es-jfs-prod-es-default-0                       1/1     Running   0             28m   10.244.46.82     ascend-07   <none>           <none>
es-jfs-prod-es-default-1                       1/1     Running   0             29m   10.244.23.77     ascend-53   <none>           <none>
es-jfs-prod-es-default-2                       1/1     Running   0             31m   10.244.49.65     ascend-20   <none>           <none>
es-jfs-prod-es-default-3                       1/1     Running   0             32m   10.244.54.14     ascend-01   <none>           <none>
es-jfs-prod-es-default-4                       1/1     Running   0             34m   10.244.100.239   ascend-40   <none>           <none>
es-jfs-prod-es-default-5                       1/1     Running   0             35m   10.244.97.201    ascend-39   <none>           <none>
es-jfs-prod-es-default-6                       1/1     Running   0             37m   10.244.101.156   ascend-38   <none>           <none>
es-jfs-prod-es-default-7                       1/1     Running   0             39m   10.244.19.101    ascend-49   <none>           <none>
es-jfs-prod-es-default-8                       1/1     Running   0             40m   10.244.16.109    ascend-46   <none>           <none>
es-jfs-prod-es-default-9                       1/1     Running   0             41m   10.244.39.119    ascend-15   <none>           <none>
es-jfs-prod-kb-75f7bbd96-6tcrn                 1/1     Running   0             18h   10.244.1.164     ascend-22   <none>           <none>

更新之后的 Pod 分布節(jié)點如下:

NAME                                           READY   STATUS    RESTARTS      AGE     IP               NODE                         NOMINATED NODE   READINESS GATES
es-jfs-prod-beat-metricbeat-7fbdd657c4-djgg6   1/1     Running   6 (50m ago)   18h     10.244.54.5      ascend-01   <none>           <none>
es-jfs-prod-es-default-0                       1/1     Running   0             72s     10.244.46.83     ascend-07   <none>           <none>
es-jfs-prod-es-default-1                       1/1     Running   0             2m35s   10.244.23.78     ascend-53   <none>           <none>
es-jfs-prod-es-default-2                       1/1     Running   0             3m59s   10.244.49.66     ascend-20   <none>           <none>
es-jfs-prod-es-default-3                       1/1     Running   0             5m34s   10.244.54.15     ascend-01   <none>           <none>
es-jfs-prod-es-default-4                       1/1     Running   0             7m21s   10.244.100.240   ascend-40   <none>           <none>
es-jfs-prod-es-default-5                       1/1     Running   0             8m44s   10.244.97.202    ascend-39   <none>           <none>
es-jfs-prod-es-default-6                       1/1     Running   0             10m     10.244.101.157   ascend-38   <none>           <none>
es-jfs-prod-es-default-7                       1/1     Running   0             11m     10.244.19.102    ascend-49   <none>           <none>
es-jfs-prod-es-default-8                       1/1     Running   0             13m     10.244.16.110    ascend-46   <none>           <none>
es-jfs-prod-es-default-9                       1/1     Running   0             14m     10.244.39.120    ascend-15   <none>           <none>
es-jfs-prod-kb-75f7bbd96-6tcrn                 1/1     Running   0             18h     10.244.1.164     ascend-22   <none>           <none>

這點打消了我的一個顧慮, Elasticsearch 的 Pod 重啟時,發(fā)生了漂移,那么節(jié)點上是否會殘留分片的數(shù)據(jù),導致內(nèi)存使用不斷膨脹?答案是,不會。ECK Operator 似乎能讓 Pod 在原節(jié)點進行重啟,掛載的 Hostpath 數(shù)據(jù)依然對新的 Pod 有效,僅當主機節(jié)點發(fā)生重啟時,才會丟失數(shù)據(jù)。

6. 總結

AI 的算力節(jié)點有大量空閑的 CPU 和 Memory 資源,使用這些大內(nèi)存的主機節(jié)點,部署一些短生命周期的基于內(nèi)存存儲的高性能應用,有利于提高資源的使用效率。

本篇主要介紹了借助于 Hostpath 的內(nèi)存存儲部署 Elasticsearch 提供高性能查詢能力的方案,具體內(nèi)容如下:

  1. 將內(nèi)存 mount 目錄到主機上
  2. 創(chuàng)建基于 Hostpath 的 PVC,將數(shù)據(jù)掛載到上述目錄
  3. 使用 ECK Operator 部署 Elasticsearch
  4. Elasticsearch 更新時,數(shù)據(jù)并不會丟失,但不能同時重啟多個主機節(jié)點
  5. 300+GB、一億+條數(shù)據(jù),全文檢索響應場景中,基于 JuiceFS 存儲的速度為 18s, SSD 節(jié)點的速度為 5s,內(nèi)存節(jié)點的速度為 100ms

參考資料

[1]使用 JuiceFS 存儲 Elasticsearch 數(shù)據(jù): https://www.chenshaowen.com/blog/store-elasticsearch-data-in-juicefs.html

責任編輯:武曉燕 來源: 陳少文
相關推薦

2020-08-06 11:25:29

數(shù)據(jù)庫鏈接池線程

2020-09-01 11:10:39

數(shù)據(jù)庫鏈接池HikariCP

2024-07-30 14:26:52

2012-03-14 11:38:16

ibmdw

2024-11-29 07:42:47

2024-06-04 10:37:06

2024-06-13 09:17:41

2022-09-20 10:41:32

接口優(yōu)化網(wǎng)絡

2010-11-10 14:18:15

SQL SERVER全

2009-03-19 10:24:27

全文檢索文本定位Oracle

2020-09-03 20:10:23

Elasticsear存儲數(shù)據(jù)

2025-08-06 08:03:23

2012-07-31 10:37:31

Lucene.net

2009-07-06 18:18:41

SQL Server全

2010-10-20 10:55:54

SQL Server全

2009-08-14 11:24:10

MySQL全文檢索MySQL Like索

2010-07-21 09:58:21

SQL Server全

2020-03-17 23:08:32

數(shù)據(jù)Elasticsear存儲

2025-01-15 00:00:10

2025-10-17 02:11:00

OllamaBGE-M3檢索
點贊
收藏

51CTO技術棧公眾號

伊人久久综合一区二区| 性欧美videos另类hd| 精品视频免费| 91精品国产色综合久久不卡电影| 日韩专区第三页| 天堂成人在线| 国产美女视频91| 日本久久中文字幕| 久久网一区二区| 成人影视亚洲图片在线| 精品国产青草久久久久福利| www欧美激情| 国产高潮在线| 亚洲蜜臀av乱码久久精品| 久久久久久亚洲精品不卡4k岛国 | 欧美电影一区| 精品福利av导航| 日本国产一级片| 欧美色网一区| 亚洲r级在线视频| www亚洲国产| 国产视频二区在线观看| 99久久免费视频.com| 亚洲最大福利网| 日本妇乱大交xxxxx| 国产视频一区在线观看一区免费| 欧美精品午夜视频| 美女网站视频色| 精品久久久久中文字幕小说| 日韩电影大全免费观看2023年上| 久久久久亚洲av无码麻豆| 国产成+人+综合+亚洲欧美| 日韩欧美国产成人| 国产视频一视频二| 久久大胆人体| 亚洲精品水蜜桃| 亚洲精品中字| www.av在线播放| 久久久亚洲精品石原莉奈| 国产91免费视频| www.亚洲黄色| 丁香天五香天堂综合| 亚洲影院高清在线| jlzzjlzz亚洲女人18| 看电视剧不卡顿的网站| 成人福利视频网| 亚洲综合视频在线播放| 久久精品国产亚洲一区二区三区| 国产美女搞久久| 亚洲影院一区二区三区| 捆绑调教一区二区三区| 91精品视频在线看| 99国产精品欲| 国产福利一区二区三区视频在线| 亚洲一区二区日本| www.五月婷| 99久久久久久| 欧美亚洲爱爱另类综合| 高清国产福利在线观看| 国产精品丝袜久久久久久app| 亚洲成人网上| а√天堂官网中文在线| 一区二区久久久| www.中文字幕在线| 韩国精品主播一区二区在线观看 | 综合在线视频| 欧美大片免费观看| 激情五月色婷婷| 免费一区视频| 国产精品专区第二| www.五月婷婷| 久久久久久久久久久电影| 亚洲高清在线播放| 在线heyzo| 亚洲va天堂va国产va久| 日本一极黄色片| 日韩免费大片| 亚洲成在人线av| 亚洲精品色午夜无码专区日韩| 久久中文字幕av| 欧美激情欧美激情| av黄色在线看| 精品在线观看视频| 好看的日韩精品视频在线| 二区三区在线播放| 亚洲一区在线电影| 狠狠操精品视频| 国产精品一区二区三区www| 欧美精品一区二区在线播放| 欧美 日韩 国产 成人 在线观看| 婷婷综合网站| 91成人精品网站| 国产日韩精品suv| 91色综合久久久久婷婷| 国产成人精品免费看在线播放 | 国产精品高清在线观看| 国产偷人妻精品一区二区在线| 91年精品国产| 无码人妻精品一区二区蜜桃百度| 欧美aa视频| 欧美tk—视频vk| 黄色免费一级视频| 国产一区二区你懂的| 91社区国产高清| 国产一二在线观看| 亚洲国产欧美一区二区三区丁香婷 | 日本三级视频在线播放| 懂色av中文一区二区三区天美| 依人在线免费视频| 在线观看欧美理论a影院| 久久久视频精品| 国产原创中文av| 久久精品一区四区| 免费av观看网址| 日韩中文一区二区| 久久九九热免费视频| 特级毛片www| 成人久久18免费网站麻豆 | а√天堂8资源在线| 欧美精品久久一区| 欧美激情视频二区| 香蕉久久国产| 国产主播一区二区三区四区| 日本无删减在线| 欧美一区二区日韩一区二区| 久久精品在线观看视频| 日韩二区三区在线观看| 欧美激情国产日韩| 超碰超碰人人人人精品| 亚洲国产三级网| 福利一区二区三区四区| 国产高清在线精品| 日韩精品一区二区在线视频| 日本精品在线观看| 九九热这里只有精品免费看| 国产高中女学生第一次| 亚洲免费成人av| 乳色吐息在线观看| 欧美精品入口| 成人黄动漫网站免费| 亚洲性图自拍| 精品欧美一区二区在线观看| 欧美色图一区二区| 国产成人精品三级麻豆| www.激情网| 超碰97久久国产精品牛牛| 久久久久久久久久久久av| 国产成人自拍一区| 午夜伦欧美伦电影理论片| 中文字幕乱码一区| 亚洲一区日韩| 日韩欧美三级一区二区| h1515四虎成人| 久久av中文字幕| 亚洲av无码乱码国产精品| 亚洲伦在线观看| 中文字幕人妻一区| 国产精品毛片在线看| 欧美精品一区二区三区在线看午夜 | 在线三级电影| 精品国产乱码久久久久久免费| 日韩成人免费观看| 国产丝袜欧美中文另类| 日本不卡一区在线| 伊人色**天天综合婷婷| 精品国产_亚洲人成在线| 成人小电影网站| 在线视频日本亚洲性| 国产乱码精品一区二三区蜜臂 | 美日韩黄色大片| 国产福利精品av综合导导航| 欧美尤物美女在线| 精品国产髙清在线看国产毛片| www.国产高清| 国产精品无码永久免费888| 色姑娘综合天天| 销魂美女一区二区三区视频在线| 亚洲欧洲精品在线观看| 99re6热只有精品免费观看| 欧美一区二区三区图| 日韩在线资源| 亚洲护士老师的毛茸茸最新章节| www.久久久久久久| 亚洲精品免费一二三区| 中文字幕狠狠干| 国产成人免费xxxxxxxx| av免费在线播放网站| 伊人久久大香线| 欧美一区2区三区4区公司二百| 高清不卡一区| 国产成人一区二区三区| 亚洲妇熟xxxx妇色黄| 亚洲色图欧美制服丝袜另类第一页| 91午夜交换视频| 色综合夜色一区| 黄色一级片在线免费观看| 国产欧美精品在线观看| 丰满人妻一区二区三区免费视频棣| 视频一区欧美精品| 国产妇女馒头高清泬20p多| 欧美成人激情| 欧美美乳视频网站在线观看| 欧美三级一区| 国产在线久久久| 激情开心成人网| 97人人做人人爱| 自由的xxxx在线视频| 一区二区在线视频| 亚洲 欧美 激情 另类| 欧美一区二区三区婷婷月色| 久久久久久亚洲av无码专区| 午夜精品免费在线| 欧美日韩亚洲国产另类| 中文字幕一区二区5566日韩| 男人操女人动态图| 91麻豆6部合集magnet| 中文字幕在线观看91| 国产在线播放一区三区四| 男人女人黄一级| 久久三级视频| 国产97在线 | 亚洲| 亚洲激情另类| www.夜夜爱| 欧美激情1区2区| www国产无套内射com| 一级毛片免费高清中文字幕久久网| 亚洲综合五月天| 成人在线免费观看91| 日韩欧美亚洲日产国产| 国产成人影院| 欧洲一区二区在线| 国产中文精品久高清在线不| 免费观看成人在线| 亚洲伊人春色| 日本精品视频一区| 欧洲grand老妇人| 涩涩日韩在线| 久久免费av| 中文字幕中文字幕99| 天天久久综合| 日韩人妻精品一区二区三区| 亚洲第一偷拍| 日韩精品手机在线观看| 极品尤物久久久av免费看| 国产欧美久久久久| 亚洲精品1区2区| 大j8黑人w巨大888a片| 亚洲深夜影院| 男人插女人下面免费视频| 久久精品国产99国产| 久热精品在线播放| 国产一区二区剧情av在线| 欧美一区二区三区影院| 成人美女视频在线看| 免费观看av网站| 国产精品你懂的| 精品人妻伦九区久久aaa片| 一区二区三区日本| 国产污视频在线看| 色婷婷综合久久久| 在线观看中文字幕网站| 欧美一区二区久久| 天天干在线观看| 一区二区国产精品视频| 理论片午午伦夜理片在线播放| 欧美丰满少妇xxxxx| 神马久久午夜| 国产欧美一区二区三区久久| 秋霞影院一区| 欧美1o一11sex性hdhd| 日本久久一二三四| 日本a级片在线播放| 麻豆9191精品国产| 三级黄色片免费看| 99视频在线精品| 亚洲欧美日韩第一页| 亚洲午夜精品在线| jizz国产在线| 日韩欧美资源站| 黄色国产在线| 欧美黑人xxxⅹ高潮交| 中文字幕在线直播| 91视频8mav| 精品国产视频| 日本aa在线观看| 日本vs亚洲vs韩国一区三区二区 | 久久久久久久久久av| 日本欧美一区| 国产精品综合久久久久久| 日韩精品一区二区三区免费观看| 欧美图片激情小说| 蜜桃一区二区三区在线| 欧美xxxxx精品| 1024成人网| 国产美女www| 亚洲国产精品久久91精品| 一级毛片视频在线观看| 欧美一区亚洲一区| 视频一区在线| 在线视频不卡国产| 日韩电影免费一区| 伊人网综合视频| 亚洲麻豆国产自偷在线| 国产精品无码一区| 国产偷亚洲偷欧美偷精品| 最新黄网在线观看| 国产在线观看一区二区三区 | av一本久道久久综合久久鬼色| 亚洲色图欧美色| 欧美性猛交xxxx乱大交蜜桃| 亚洲欧美强伦一区二区| 日韩视频在线一区| 日本综合视频| 欧美专区一二三| 国产女优一区| 日韩精品视频一区二区| 亚洲资源在线观看| 国产精品久久综合青草亚洲AV| 在线午夜精品自拍| 天天综合网站| 免费在线观看一区二区| 国产日韩1区| 偷偷色噜狠狠狠狠的777米奇| 亚洲黄色av一区| 丰满熟女人妻一区二区三| 国产亚洲成av人片在线观看桃| 免费在线小视频| 精品国产免费一区二区三区| 精品69视频一区二区三区Q| 精品人妻一区二区三| 亚洲欧美激情插| 99久久精品国产成人一区二区| 日韩视频第一页| 精品国产一区二区三区性色av| 中文字幕在线观看一区二区三区| 久草在线在线精品观看| 成人高潮免费视频| 欧美一区二区精品久久911| 午夜激情在线| 国产精品久久久久av福利动漫| 国内精品福利| 玖草视频在线观看| 精品电影在线观看| 国产一级在线| 国产精品一区久久| 亚洲91久久| 国产xxx在线观看 | 一本一道人人妻人人妻αv| 日韩一区二区av| 国产精久久久| 日韩精品一区二区免费| 99精品国产热久久91蜜凸| 国产又黄又粗又爽| 一本色道久久综合亚洲精品小说 | 欧美zozo另类异族| 草草影院在线| 欧美日韩精品不卡| 美女网站色91| 欧美黄色免费看| 日韩精品福利网站| 不卡亚洲精品| 精品无码av无码免费专区| 97久久精品人人澡人人爽| 男人天堂视频网| xxx一区二区| 好吊妞视频这里有精品| 日本老熟妇毛茸茸| 亚洲欧美另类久久久精品2019| 神马午夜电影一区二区三区在线观看 | 日韩av在线导航| 日韩制服一区| av在线com| 国产性色一区二区| 午夜精品在线播放| 日本高清+成人网在线观看| 久久人体视频| 五月开心播播网| 在线播放视频一区| 麻豆免费在线| 麻豆中文字幕在线观看| aaa国产一区| 国产一区二区在线视频观看| 91精品国产成人www| 日本一区二区在线看| 91精品又粗又猛又爽| 欧美色男人天堂| av中文字幕电影在线看| 亚洲国产精品一区在线观看不卡| 丁香婷婷综合网| 亚洲一区二区天堂| 欧日韩不卡在线视频| 欧美a级片网站| 欧美激情久久久久久久| 精品国精品国产| 2020国产精品小视频| 欧美aⅴ在线观看| 一区二区三区精品在线| av在线1区2区| 快播日韩欧美| 成人免费视频播放|