精华内容
下载资源
问答
  • 百度云存储测试

    2018-01-07 18:45:41
    // 云存储 测试 public class BaiduLBSStorageTest {  @Test  // 建立表 geotable  public void demo1() throws ClientProtocolException, IOException {  // 1、 创建httpClient对象  ...
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;

    import org.apache.commons.codec.Charsets;
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.ClientProtocolException;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.util.EntityUtils;
    import org.junit.Test;

    // 云存储 测试
    public class BaiduLBSStorageTest {

        @Test
        // 建立表 geotable
        public void demo1() throws ClientProtocolException, IOException {
            // 1、 创建httpClient对象
            HttpClient client = HttpClients.createDefault();

            // 2、 请求对象
            HttpPost httpPost = new HttpPost(
                    "http://api.map.baidu.com/geodata/v3/geotable/create");

            // 3、 绑定参数
            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
            nameValuePairs.add(new BasicNameValuePair("name", "mytable2"));
            nameValuePairs.add(new BasicNameValuePair("geotype", "1"));
            nameValuePairs.add(new BasicNameValuePair("is_published", "1"));
            nameValuePairs.add(new BasicNameValuePair("ak",
                    "zbLsuDDL4CS2U0M4KezOZZbGUY9iWtVf"));

            httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs,
                    Charsets.UTF_8));

            // 4、 发送请求
            HttpResponse httpResponse = client.execute(httpPost);

            // 5、 打印结果数据
            HttpEntity httpEntity = httpResponse.getEntity();
            System.out.println(EntityUtils.toString(httpEntity));
        }

        @Test
        // 查询表
        public void demo2() throws ClientProtocolException, IOException {
            // 1、 创建httpClient对象
            HttpClient client = HttpClients.createDefault();

            // 2、 请求对象
            HttpGet httpGet = new HttpGet(
                    "http://api.map.baidu.com/geodata/v3/geotable/list?ak=zbLsuDDL4CS2U0M4KezOZZbGUY9iWtVf");

            // 3、发送请求
            HttpResponse httpResponse = client.execute(httpGet);

            // 4、 打印结果数据
            HttpEntity httpEntity = httpResponse.getEntity();
            System.out.println(EntityUtils.toString(httpEntity));
        }

    }

    展开全文
  • 在开发DEMO之前首先要确定 你开发OSS服务并获取了 accessKeyId和accessKeySecret final String key = MD5.Md5(DateFormat.format("yyyyMMdd_hhmmss",Calendar.getInstance(Locale.CHINA)).toString()....

    在开发DEMO之前首先要确定 你开发OSS服务并获取了 accessKeyId和accessKeySecret

    final String key = MD5.Md5(DateFormat.format("yyyyMMdd_hhmmss",Calendar.getInstance(Locale.CHINA)).toString().toLowerCase(Locale.CHINA))+".jpg";
    new Thread(new Runnable() {
    @Override
    public void run() {
    new PutObjectSamples(oss,Config.bucketName, Config.ObjectKey+"/"+key, photoPath).asyncPutObjectFromLocalFile();
    }
    }).start();

     

    这个地方要 注意的是objectKey 是指你上传路径加及要保存文件名路径 比如 我现在要上传阿里去路径是uploads/files 加上文件名(上面生成的key)那么objectKey就是uploads/files/key

    photoPath是手机上的路径这个不用说了

     

    下载DEMO

    展开全文
  • COSBench安装 Cosbench是Intel的开源云存储性能测试软件,COSBench目前已经广泛使用与云存储测试,并作为云存储的基准测试工具使用 1 环境 1.1 操作系统 COSBench可在windows和linux两种系统中运行,而为了更好的...

    COSBench安装

    Cosbench是Intel的开源云存储性能测试软件,COSBench目前已经广泛使用与云存储测试,并作为云存储的基准测试工具使用

    1 环境

    1.1 操作系统

    COSBench可在windows和linux两种系统中运行,而为了更好的发挥硬件和系统的能力,建议在使用COSBench进行测试时,选择linux系统,目前我使用的环境是:ubuntu 12.04系统版本;

    1.2 运行环境

    JRE 1.7+

    CURL

    2 安装

    2.1 支持环境安装

    2.1.1 JRE

    JRE安装,请参考JDK安装相关教程,这里省略。

    2.1.2 CURL安装

    在ubuntu系统中,使用apt-get install 直接进行安装

    1. 使用 apt-get update对源进行更新

    clip_image001

    2. 更新之后,使用apt-get install curl进行安装

    clip_image002

    3 COSBench安装

    3.1 下载

    COSBench开源软件地址:https://github.com/intel-cloud/cosbench 需要的软件和说明这里都有记录;目前最新的版本是v0.4.2.c4 进入tag下载地址,下载ZIP包即可:

    网址 https://github.com/intel-cloud/cosbench/releases/tag/v0.4.2.c4

    clip_image004

    在ubuntu系统中,直接使用wget下载即可:

    wget https://github.com/intel-cloud/cosbench/releases/download/v0.4.2.c4/0.4.2.c4.zip

    clip_image006

    3.2 安装

    待软件下载完毕后,使用unzip进行文件解压。unzip 0.4.2.c4.zip

    clip_image007

    解压完毕后,如下

    clip_image008

    进入到COSBench目录,将脚本添加可执行权限:

    clip_image009

    目录中,主要脚本的功能如下:

    clip_image010

    3.3 启动

    在启动COSBench之前,运行 unset htt_proxy

    clip_image011

    启动COSBench只需要直接运行启动脚本即可:./start-all.sh

    clip_image012

    当出现如下的信息时,表示启动成功

    clip_image013

    在浏览器里面,输入当前的地址,即可浏览COSBench工作界面

    http://IP:端口/controller/

    如:

    http://192.168.59.20:19088/controller/

    clip_image015

    COSBench是一款性能测试工具,主要在如何使用方面,这块后面见。

    转载于:https://www.cnblogs.com/ksguai/p/5768369.html

    展开全文
  • 上篇我们讲到k8s集群挂载云存储(文件和块)的测试方法,今天就来看看云对象存储(IBM Cloud Object Storage) ,COS在I/O效能上低于文件和块,但COS的应用场景较为丰富,其数据持久、可靠、安全、灵活分层,接口...

    上篇我们讲到IKS(IBM Cloud Kubernetes Service)集群挂载云存储(文件和块)的测试方法,今天就来看看云对象存储(IBM Cloud Object Storage) ,COS在I/O效能上低于文件和块,但COS的应用场景较为丰富,其数据持久、可靠、安全、灵活分层,接口兼容性等比传统的文件和块要好很多,“最最最”重要的是成本经济,从微服务应用架构和设计考量,k8s和cos两者结合,可成为为Stateful工作负载安全可靠的持久化存储方案。

    这里需要先安装云对象存储的IKS插件,它其实就是一个k8s volume插件,使集群下容器Pod能够访问IBM COS存储桶。该插件有两个组件:一个动态预配器和一个 FlexVolume 驱动程序,用于在工作节点上通过 s3fs-fuse挂载存储桶。

    需要了解细节可以参考下面开源项目:

    cos helm chart (注:这里的cos chart和上篇block略有不同)

    danws-MacBook-Pro:k8s-playground danw$ helm repo add ibm-charts https://icr.io/helm/ibm-charts
    
    danws-MacBook-Pro:k8s-playground danw$ helm repo update
    
    danws-MacBook-Pro:k8s-playground danw$ helm pull --untar ibm-charts/ibm-object-storage-plugin
    
    danws-MacBook-Pro:k8s-playground danw$ helm plugin install ./ibm-object-storage-plugin/helm-ibmc
    
    danws-MacBook-Pro:k8s-playground danw$ helm ibmc --help
    Helm version: v3.2.4+g0ad800e
    Install or upgrade Helm charts in IBM K8S Service(IKS) and IBM Cloud Private(ICP)
    ...
    
    danws-MacBook-Pro:k8s-playground danw$ helm ibmc install ibm-object-storage-plugin ./ibm-object-storage-plugin
    
    danws-MacBook-Pro:k8s-playground danw$ kubectl get storageclass | grep s3
    ibmc-s3fs-cold-cross-region            ibm.io/ibmc-s3fs    Delete          Immediate           false                  3m28s
    ibmc-s3fs-cold-regional                ibm.io/ibmc-s3fs    Delete          Immediate           false                  3m28s
    ibmc-s3fs-flex-cross-region            ibm.io/ibmc-s3fs    Delete          Immediate           false                  3m28s
    ibmc-s3fs-flex-perf-cross-region       ibm.io/ibmc-s3fs    Delete          Immediate           false                  3m27s
    ibmc-s3fs-flex-perf-regional           ibm.io/ibmc-s3fs    Delete          Immediate           false                  3m28s
    ibmc-s3fs-flex-regional                ibm.io/ibmc-s3fs    Delete          Immediate           false                  3m28s
    ibmc-s3fs-standard-cross-region        ibm.io/ibmc-s3fs    Delete          Immediate           false                  3m27s
    ibmc-s3fs-standard-perf-cross-region   ibm.io/ibmc-s3fs    Delete          Immediate           false                  3m27s
    ibmc-s3fs-standard-perf-regional       ibm.io/ibmc-s3fs    Delete          Immediate           false                  3m27s
    ibmc-s3fs-standard-regional            ibm.io/ibmc-s3fs    Delete          Immediate           false                  3m28s
    ibmc-s3fs-vault-cross-region           ibm.io/ibmc-s3fs    Delete          Immediate           false                  3m28s
    ibmc-s3fs-vault-regional               ibm.io/ibmc-s3fs    Delete          Immediate           false                  3m28s
    
    danws-MacBook-Pro:k8s-playground danw$ kubectl get pod --all-namespaces -o wide | grep object
    kube-system   ibmcloud-object-storage-driver-4nzrf                   1/1     Running   0          2m2s    10.193.33.33    10.193.33.33   <none>           <none>
    kube-system   ibmcloud-object-storage-driver-78478                   1/1     Running   0          2m2s    10.193.33.31    10.193.33.31   <none>           <none>
    kube-system   ibmcloud-object-storage-driver-zpxg8                   1/1     Running   0          2m2s    10.193.33.44    10.193.33.44   <none>           <none>
    kube-system   ibmcloud-object-storage-plugin-7db84f9cb5-ps7lf        1/1     Running   0          2m2s    172.30.251.76   10.193.33.44   <none>           <none>
    

    挂载存储桶需要有COS服务,基本逻辑就是k8s集群连接cos内网服务端点,基于S3协议通过证书访问Bucket,可以参考在线文档:

    https://cloud.ibm.com/docs/containers?topic=containers-object_storage

    以tok-bucket为例(标准分层)
    在这里插入图片描述
    获取cos服务的hmac keys
    在这里插入图片描述用上述HMAC key创建k8s访问密钥

    danws-MacBook-Pro:k8s-playground danw$ k create secret generic cos-write-access --type=ibm/ibmc-s3fs --from-literal=access-key=da69b6212be14571ab7c807d781d92b7 --from-literal=secret-key=443d46fd3f20cbcbcecebd29ac3c48bd1ec31207a0cb8462
    
    danws-MacBook-Pro:k8s-playground danw$ k get secrets |grep cos
    cos-write-access                                       ibm/ibmc-s3fs                         2      11s
    

    cos-dbench.yaml
    在dbench image中执行的fio测试内容,请参考,https://github.com/leeliu/dbench/blob/master/docker-entrypoint.sh

    这里我们选择libaio engine,默认4KiB block-size和 1G file-size,打开Direct I/O,进行如下测试:

    • Read/Write IOPS
    • Read/Write Bandwidth
    • Read/Write Latency
    • Read/Write Sequential
    • Read/Write Mixed
    apiVersion: batch/v1
    kind: Job
    metadata:
      name: cos-dbench
    spec:
      template:
        spec:
          containers:
          - name: cos-dbench
            image: ndrpnt/dbench:1.0.0
            imagePullPolicy: Always
            # command: ['sh', '-c', 'fio -v']
            env:
              - name: DBENCH_MOUNTPOINT
                value: /data
              - name: DBENCH_QUICK
                value: "no"
              - name: FIO_SIZE
                value: 1G
              #- name: FIO_OFFSET_INCREMENT
              #  value: 256M
              - name: FIO_DIRECT
                value: "1"
            volumeMounts:
            - name: cos-vol
              mountPath: /data
          restartPolicy: Never
          volumes:
          - name: cos-vol
            persistentVolumeClaim:
              claimName: cos-pvc
      backoffLimit: 4
    ---
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: cos-pvc
      namespace: default
      annotations:
        ibm.io/auto-create-bucket: "false"
        ibm.io/auto-delete-bucket: "false"
        ibm.io/bucket: "tok-bucket"
        ibm.io/secret-name: "cos-write-access"
        ibm.io/endpoint: "https://s3.private.jp-tok.cloud-object-storage.appdomain.cloud"
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 20Gi
      storageClassName: ibmc-s3fs-standard-regional
    

    在验证k8s在cos上读写效能之前,有个问题大家都会很困惑,容器、虚拟机和传统裸机在对象存储I/O效能有什么不同?COS基于标准HTTP协议,说白了还是TCP/IP,落脚点依然在网络。

    一篇IBM Research的早期报告仅供参考, 尽管k8s当下CNI方案有很多比如Flannel、Calico、Canal、Weave Net 等,但容器访问网卡的路径基本还是桥接,NAT,内核转发,在效能上与裸机接近,比虚拟机稍好, 毕竟没有依靠辅助驱动访问网卡所带来的额外开销。

    个人看法,如果同时满足访问距离相同以及计算资源匹配,裸机 >= 容器 > 虚拟机 ,如果k8s和云主机访问cos性能发现明显的偏差,首先要排除的是业务工作节点到COS服务端点的网络质量。

    https://dominoweb.draco.res.ibm.com/reports/rc25482.pdf
    在这里插入图片描述
    在这里插入图片描述
    最后来跑下上面的dbench看看结果

    danws-MacBook-Pro:dbench danw$ k apply -f cos-dbench.yaml
    job.batch/cos-dbench created
    persistentvolumeclaim/cos-pvc created
    
    danws-MacBook-Pro:dbench danw$ k get pvc,job,pod
    NAME                            STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS                  AGE
    persistentvolumeclaim/cos-pvc   Bound    pvc-c231a239-b364-44fc-9499-d397ce3aa0f0   20Gi       RWX            ibmc-s3fs-standard-regional   17m
    
    NAME                   COMPLETIONS   DURATION   AGE
    job.batch/cos-dbench   1/1           17m        17m
    
    NAME                   READY   STATUS      RESTARTS   AGE
    pod/cos-dbench-kslqp   0/1     Completed   0          17m
    

    此处省略测试步骤的执行log

    danws-MacBook-Pro:dbench danw$ k logs -f job/cos-dbench
    Working dir: /data
    
    Testing Read IOPS...
    fio: posix_fallocate fails: Not supported
    read_iops: (g=0): rw=randread, bs=4096B-4096B,4096B-4096B,4096B-4096B, ioengine=libaio, iodepth=64
    fio-2.17-45-g06cb
    Starting 1 process
    read_iops: Laying out IO file(s) (1 file(s) / 1024MiB)
    
    read_iops: (groupid=0, jobs=1): err= 0: pid=12: Thu Jul 16 10:23:42 2020
       read: IOPS=6766, BW=26.5MiB/s (27.8MB/s)(397MiB/15001msec)
      cpu          : usr=1.92%, sys=8.50%, ctx=102054, majf=0, minf=1
      IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
         submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
         complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
         issued rwt: total=101502,0,0, short=0,0,0, dropped=0,0,0
         latency   : target=0, window=0, percentile=100.00%, depth=64
    
    Run status group 0 (all jobs):
       READ: bw=26.5MiB/s (27.8MB/s), 26.5MiB/s-26.5MiB/s (27.8MB/s-27.8MB/s), io=397MiB (416MB), run=15001-15001msec
    ...
    ...
    
    All tests complete.
    
    ==================
    = Dbench Summary =
    ==================
    Random Read/Write IOPS: 6766/615. BW: 377MiB/s / 516MiB/s
    Average Latency (usec) Read/Write: 171846.66/
    Sequential Read/Write: 77.2MiB/s / 105MiB/s
    Mixed Random Read/Write IOPS: 872/290
    

    基于本次场景,同区域(日本东京数据中心)运行的k8s通过内网访问日本ICOS端点,I/O流量无出站,可以看到读写带宽可以到370+MiB/S和500+MiB/S,说明ICOS在标准bucket访问上几乎无带宽限制,读写IOPS也基本满足常规工作负载要求,这里Read IOPS明显高于Write,排除网络进站和出站干扰,不排除COS服务端对GET和PUT请求所做的限制,如数据实时性要求不高,这个缺省的访问速度和吞吐是完全可以应对的, 不用理解太复杂, 跟传统文件系统设计期望一致,

    1. 小文件,大IOPS
    2. 大文件,高吞吐

    当然IKS里的cos-s3fs插件绝大部分参数,也可通过PVC annotation进行自定义,并覆盖storageClass的缺省配置,可针对不同业务用例,进行深度调优,非常方便客户的自定义。

    查看storageClass缺省配置:

    danws-MacBook-Pro:dbench danw$ k get sc ibmc-s3fs-standard-regional -o yaml
    
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      annotations:
        meta.helm.sh/release-name: ibm-object-storage-plugin
        meta.helm.sh/release-namespace: default
      creationTimestamp: "2020-07-14T18:31:00Z"
      labels:
        app: ibmcloud-object-storage-plugin
        app.kubernetes.io/managed-by: Helm
        chart: ibm-object-storage-plugin-2.0.1
        heritage: Helm
        release: ibm-object-storage-plugin
      name: ibmc-s3fs-standard-regional
      resourceVersion: "5044787"
      selfLink: /apis/storage.k8s.io/v1/storageclasses/ibmc-s3fs-standard-regional
      uid: b0964ef1-0959-4c0c-b0b6-eb6da5e6640f
    parameters:
      ibm.io/chunk-size-mb: "16"
      ibm.io/curl-debug: "false"
      ibm.io/debug-level: warn
      ibm.io/iam-endpoint: https://iam.bluemix.net
      ibm.io/kernel-cache: "true"
      ibm.io/multireq-max: "20"
      ibm.io/object-store-endpoint: https://s3.private.jp-tok.cloud-object-storage.appdomain.cloud
      ibm.io/object-store-storage-class: jp-tok-standard
      ibm.io/parallel-count: "2"
      ibm.io/s3fs-fuse-retry-count: "5"
      ibm.io/stat-cache-size: "100000"
      ibm.io/tls-cipher-suite: AESGCM
    provisioner: ibm.io/ibmc-s3fs
    reclaimPolicy: Delete
    volumeBindingMode: Immediate
    

    更改以下参数重新创建pvc进行测试(保留上述fio workload),

    • 可发送到 IBM 云对象存储服务实例以在单个目录中列出文件的最大并行请求数。所有存储类都设置最多 20 个并行请求。
      ibm.io/multireq-max: “20” -> “40”

    • 可发送到 IBM Cloud 对象存储服务实例以执行单读或写操作的最大并行请求数。
      ibm.io/parallel-count: “2” -> “8”
      在这里插入图片描述

    前后做个对比,调整参数后,IOPS和网络吞吐量明显升高 !

    ==================
    = Dbench Summary =
    ==================
    Random Read/Write IOPS: 18.2k/611. BW: 798MiB/s / 515MiB/s
    Average Latency (usec) Read/Write: 397.40/
    Sequential Read/Write: 235MiB/s / 193MiB/s
    Mixed Random Read/Write IOPS: 2092/687
    

    总结: IBM Cloud Kubernetes服务和COS的集成比期望要好很多,性能,插件支持,自定义,数据持久化等都有所保障。把COS存储桶作为容器的文件系统来使用并测试,只是一个思路作为参考,很多应用都是走s3api直接从容器访问cos bucket,OPS的性能比较也略有差异,这里就不做深究。 有兴趣可以上来试试 :)

    Happy Learning ♥️ !

    展开全文
  • 数据工程团队(CDE)负责管理数据存储系统,他们通过运行基准测试来验证这些系统的更新、进行容量规划,还会在不同的失败场景下和多种工作负载下测试我们的实例。我们希望有这样一个工具,它可以评估和比较在...
  • 并应用这两种测试工具对比测试了基于API接口的开放云存储系统金山快盘和基于RESTFul接口的本地私有云存储系统OpenStack Swift的性能,分析了影响云存储系统性能的因素,为云存储厂商改进云存储服务提供了参考依据,...
  • 一、COSBench安装 ...COSBench是Intel团队基于java开发,对云存储测试工具,全称是Cloud object Storage Bench 吐槽下,貌似这套工具是intel上海团队开发的,竟然没有中文的相关资料。 同所有的性能测...
  • IOPS(Input/Output Operations Per Second)是一个用于电脑存储设备(如硬盘(HDD)、固态硬盘(SSD)或存储区域网络(SAN))性能测试的量测方式,可以视为是每秒的读写次数。和其他性能测试一样,存储设备制造商...
  • 公有云各厂商几乎都支持k8s集成自己的云存储服务,k8s系统本身通过两个概念PersistentVolume(PV)和 PersistentVolumeClaim(PVC)实现存储持久化的生命周期管理(申请、保留、删除、废弃等),pod根据需求向集群系统...
  • 从快照恢复主机 将主机恢复到任意一个快照的状态 注此功能需要在使用 ceph 存储的前提下进行 为确保主机中的数据不丢失当想要将主机恢复到某个快照的状态时需要先关闭该主机; 之后进入主机的根磁盘快照...
  • PAGE 3 测试存储节点高可用 测试条件ceph集群处于health_ok状态 操作练习 ...检查剩余存储节点的状态 图1-7 存储节点高可用 一段时间后ceph状态恢复至health_ok并且horizon上可以正常创建/删除硬盘可以正常启动虚拟机
  • 说明 LeanCloud是我目前认定的非常适合于小型网络手机游戏开发,特别是小型创建业者团队进行网络游戏开发的优秀云存储方案。...以下简要记录了在iOS环境下对于LeanCloud提供的云存储服务测试情况,以及个...
  • 腾讯云存储

    2021-05-14 14:44:37
    腾讯云存储 注册登录领取免费试用的云存储 第一步,我们必须先拥有一个腾迅云的开发者账号 第二步,实名认证 填写个人身份信息 扫描二维码授权 点击领取免费产品 选择对象存储COS 开启试用 ...
  • tracert IP
  • SPEC CPU是标准性能评价机构 (Standard Performance Evaluation Corporation,简称SPEC)开发的用于评测CPU性能的基准程序测试组,是一套CPU子系统测试工具。处理器、内存和编译器都会影响最终的测试结果,而I/O...
  • oss-cn-shanghai.aliyuncs.com bucket: gulimall-hello1001 application: name: gulimall-third-party server: port: 30000 测试代码 package com.atguigu.gulimall.thirdparty.conntroller;...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,265
精华内容 906
关键字:

云存储测试