osprofiler在OpenStack Cinder里的使用(2)

peter@Ubuntu:~/devstack$ cinder --profile SECRET_KEY create --name peter 1 +---------------------------------------+--------------------------------------+ | Property | Value | +---------------------------------------+--------------------------------------+ | attachments | [] | | availability_zone | nova | | bootable | false | | consistencygroup_id | None | | created_at | 2015-04-04T14:58:51.000000 | | description | None | | encrypted | False | | id | 28857983-3240-445d-a60b-3b91295c31e8 | | metadata | {} | | multiattach | False | | name | peter | | os-vol-host-attr:host | None | | os-vol-mig-status-attr:migstat | None | | os-vol-mig-status-attr:name_id | None | | os-vol-tenant-attr:tenant_id | ade7584debc54964b4fef737e56e062d | | os-volume-replication:driver_data | None | | os-volume-replication:extended_status | None | | replication_status | disabled | | size | 1 | | snapshot_id | None | | source_volid | None | | status | creating | | user_id | 56aac792735046dea02e12e85e0d1a03 | | volume_type | lvmdriver-1 | +---------------------------------------+--------------------------------------+ Trace ID: aa4903cc-fd0c-42ef-96f1-bd1c5a1740f1 To display trace use next command: osprofiler trace show --html aa4903cc-fd0c-42ef-96f1-bd1c5a1740f1

 导出性能测试的数据为HTML格式

osprofiler trace show --html aa4903cc-fd0c-42ef-96f1-bd1c5a1740f1 --out test.html

html内容如下(需要FQ,这个页面需要访问google.com ^_^)

 查看各个接口的执行时间,下图给出了每个被统计的接口在不同的service之间的执行时间

osprofiler在OpenStack Cinder里的使用

查看接口的参数,可以点击函数,查看具体的参数

osprofiler在OpenStack Cinder里的使用

上面的view可以很轻松的实现对openstack各个接口调用执行时间的统计,可视化的显示了特定操作的性能瓶颈在哪里。

Cinder driver的各个接口的性能统计:

上面的工作,还有一个问题没有解决,如果你的driver其实有多个层级的class(如driver.create_volume->AnotherClass.def1->AnotherClass.def2->AnotherClass.defn),那么我只知道入口函数driver.create_volume的执行时间,并不知道在AnotherClass内部各个接口的执行时间(def1多少时间,def2多少时间。这个就要稍微改下lvm driver的代码了,可以为lvm driver的所有class 加上如下的decorator:

@profiler.trace_cls("AnotherClass", info={}, hide_args=False, trace_private=True) class AnotherClass(object): def def1: pass def def2: pass

这样更改代码后,然后再重启cinder service,你会得到更详细的数据 

 参考文章及深入阅读:

下面是小编为你精选的Openstack相关知识,看看是否有你喜欢的

在Ubuntu 12.10 上安装部署Openstack

Ubuntu 12.04 OpenStack Swift单节点部署手册

OpenStack云计算快速入门教程

企业部署OpenStack:该做与不该做的事

CentOS 6.5 x64bit 快速安装OpenStack

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/267c8193e15df4c9c4fb9c252caa054f.html