codingBak
腾讯coding.net备份文档
hpctest
http://hpctest.cs.tsinghua.edu.cn/programs.html
FIO参考:
https://blog.csdn.net/don_chiang709/article/details/92628623
https://www.cnblogs.com/halberd-lee/p/8650737.html
sysbench参考:
https://www.colabug.com/2017/0207/1368128/
stream参考:
https://blog.csdn.net/liudong124521/article/details/101205119
mlc参考:
https://software.intel.com/content/www/us/en/develop/articles/intelr-memory-latency-checker.html
http://blog.sina.com.cn/s/blog_413d250e0102yc9p.html
Netperf参考:
https://www.huaweicloud.com/kunpeng/software/netperf.html
https://www.jianshu.com/p/42e0fa6bf79c
rpm包下载地址:
http://rpmfind.net/linux/rpm2html/search.php?query=gcc&submit=Search+...&system=centos&arch=
离线安装gcc:
https://www.cnblogs.com/hanlaomo/p/10904672.html
性能测试
1、CPU
sysbench cpu--cpu-max-prime=20000 --threads=8 --time=50 run
2、MEM
带宽
参数意义参考:http://www.voidcn.com/article/p-fasnwtmo-pd.html
# gcc -mtune=native -march=native -O -mcmodel=medium -DSTREAM_ARRAY_SIZE=100000000 -fopenmp -DNTIME=20 stream.c -o stream.o
# ./stream.o
时延
./mlc --latency_matrix
3、STO
fio -bs=128k -ioengine=libaio -iodepth=32 -direct=1 -rw=read -time_based -runtime=10 -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-read-throughput --size=10G -numjobs=4 -filename=/dev/vda
- -rw=rw 顺序混合读写
- -rw=randrw 随机混合读写
- -numjobs=4 线程数为4
- -iodepth=32 队列深度为32
4、NET
服务端
netperf server
客户端
netperf -H 10.238.158.84 -t UDP_RR -l 60 -- -m 1
数据观察:在server端,使用 sar -n DEV 1 来观察网卡收包数。
Rally安装
0、前期准备
Linux测试机(和测试环境互通) 测试机上安装Docker 拉取CentOS7的测试镜像
1、创建Rally沙盒环境
docker run -it --name rally-centos centos:7 bash
2、安装Rally基础依赖
# yum -y install epel-release
# yum install gcc-c++ python-pip git which
3、安装python3的环境
yum install python3
删除原来的python软链接,重新创建python软链接指向python3
删除原来的pip软链接,重新创建pip软链接指向pip3
创建~/.pip/pip.conf,添加国内镜像源
4、下载Rally源码
将rally项目从github复制到gitee,然后拉下来
git clone https://xxx.git
5、安装Rally的python依赖
修改pip源为阿里源
cd rally
pip3 install -r requirements.txt
6、安装rally-openstack软件包
pip3 install rally-openstack
pip install setuptools==40.3.0 setuptools的版本有要求
7、创建openrc文件
从openstack上拷贝过来
source openrc
8、安装rally
rally依赖python3
cd rally
python setup.py build
python setup.py install
查看命令帮助:python setup.py --help
9、初始化rally
rally db create
rally deployment create --fromenv --name=existing 记得source openrc
10、加载openrc,创建deployment
source openrc
rally deployment create --fromenv --name=openstack
11、查看deployment
rally deployment list 查看
rally deployment check 检查
参考文档
https://rally.readthedocs.io/en/latest/index.html
https://opendev.org/openstack/rally/src/branch/master
https://gitee.com/phygerr/rally
https://blog.csdn.net/qq_34043421/article/details/80122796
Q&A-1
rally对setuptools版本有要求
解决办法:
pip install setuptools==40.3.0
Q&A-2-容器使用ovs
口
rally
容器在主机使用ovs
网络之后,使用docker0
无法与测试环境互通。
需要 给容器挂载ovs
的port
,具体操作如下:
1、下载ovs-docker
脚本到host
wget https://github.com/openvswitch/ovs/raw/master/utilities/ovs-docker
2、给脚本执行权限,给rally容器挂载脚本
启动rally容器:
docker run -it --privileged=true --name rally-centos rally-centos:v3 bash
给rally容器挂载端口:(由于容器已经有eth0口,所以本次挂载口名称为eth1)
./ovs-docker add-port br-mgmt eth1 5fbf5107cc17
在容器中ifconfig eth1 xx.xx.xx.x/24 配置eth1口的ip
然后测试互通即可
tempest的使用
1、修改rally的代码,使得在 创建verify的时候不用在虚拟环境重复下载包
路径:/usr/local/lib/python3.6/site-packages/rally/verification/manager.py
打开后搜索:install_venv
增加:--system-site-packages 参数
def install_venv(self):
"""Install a virtual environment for a verifier."""
if os.path.exists(self.venv_dir):
# NOTE(andreykurilin): It is necessary to remove the old env while
# performing update action.
LOG.info("Deleting old virtual environment.")
shutil.rmtree(self.venv_dir)
LOG.info("Creating virtual environment. It may take a few minutes.")
LOG.debug("Initializing virtual environment in %s directory."
% self.venv_dir)
utils.check_output(["virtualenv","--system-site-packages" ,"-p", sys.executable, self.venv_dir],
cwd=self.repo_dir,
msg_on_err="Failed to initialize virtual env "
"in %s directory." % self.venv_dir)
LOG.debug("Installing verifier in virtual environment.")
# NOTE(ylobankov): Use 'develop mode' installation to provide an
# ability to advanced users to change tests or
# develop new ones in verifier repo on the fly.
utils.check_output(["pip", "install", "-e", "./"],
cwd=self.repo_dir, env=self.environ)
2、创建verifier
先加载上网代理,如果安装机器可以上网则忽略
source /etc/profile
从github同步到gitee后再拉取
[root@5fbf5107cc17 home]# rally verify create-verifier --name tempest-verifier --type tempest --platform openstack --source https://gitee.com/phygerr/tempest.git
2020-07-27 06:34:56.029 66 INFO rally.api [-] Creating verifier 'tempest-verifier'.
2020-07-27 06:34:56.094 66 INFO rally.verification.manager [-] Cloning verifier repo from https://gitee.com/phygerr/tempest.git.
2020-07-27 06:35:20.269 66 INFO rally.verification.manager [-] Creating virtual environment. It may take a few minutes.
2020-07-27 06:35:29.485 66 INFO rally.api [-] Verifier 'tempest-verifier' (UUID=0b00f015-bf00-4d69-8a91-343b74d3fd67) has been successfully created!
Using verifier 'tempest-verifier' (UUID=0b00f015-bf00-4d69-8a91-343b74d3fd67) as the default verifier for the future CLI operations.
[root@5fbf5107cc17 home]#
3、验证验证环境
[root@5fbf5107cc17 home]# rally verify list-verifiers
+--------------------------------------+------------------+---------+-----------+---------------------+---------------------+-----------+---------+-------------+--------+
| UUID | Name | Type | Platform | Created at | Updated at | Status | Version | System-wide | Active |
+--------------------------------------+------------------+---------+-----------+---------------------+---------------------+-----------+---------+-------------+--------+
| 0b00f015-bf00-4d69-8a91-343b74d3fd67 | tempest-verifier | tempest | openstack | 2020-07-27T06:34:56 | 2020-07-27T06:35:29 | installed | master | False | :-) |
+--------------------------------------+------------------+---------+-----------+---------------------+---------------------+-----------+---------+-------------+--------+
[root@5fbf5107cc17 home]#
4、配置创建的verifier
[root@5fbf5107cc17 home]# rally verify configure-verifier
2020-07-27 06:37:21.327 147 INFO rally.api [-] Configuring verifier 'tempest-verifier' (UUID=0b00f015-bf00-4d69-8a91-343b74d3fd67) for deployment 'openstack' (UUID=17ed272a-4f0b-4af6-a593-973ac0a4f700).
Failed to authenticate to http://172.29.236.200:5000/v3 for user 'admin' in project 'admin': [ServiceUnavailable] Service Unavailable (HTTP 503)
参考文档
https://gitee.com/phygerr/tempest/tree/master
https://cloud.tencent.com/developer/article/1158765
https://www.cnblogs.com/mrwuzs/p/11925070.html
https://www.jianshu.com/p/b3e601c3f71c
Rally执行测试
tempest代码仓库:`https://gitee.com/phygerr/tempest`
PATH:`tempest/api/XXX`
规则:`tempest.api.<compent>.admin.<测试集:文件名OR文件夹名>.<测试类>`
1、测试identity
rally verify start --pattern tempest.api.identity.admin.v3
2、测试flavor
rally verify start --pattern tempest.api.compute.admin.test_flavors.FlavorsAdminTestJSON
3、verify导出测试报告
rally verify report --uuid 8a8ce3db-9ff0-4abc-ac39-26c80bbfbb2f --type html --to test-flavor.html
Rally容器化教程
安装部署
镜像下载
前往dockerhub搜索gwee/rally,然后docker pull最新版本的rally镜像
docker pull gwee/rally:latest
启动容器
docker run -it gwee/rally:latest bash
此时会进入到rally的交互式控制台
创建RC文件
将openstack环境的rc文件内容复制,然后新建一个openrc文件,将内容贴进来
前提是容器所在宿主机要和环境网络互通,所有endpoint端口都放开
openrc内容如下:
# Ansible managed
# COMMON CINDER ENVS
export CINDER_ENDPOINT_TYPE=internalURL
# COMMON NOVA ENVS
export NOVA_ENDPOINT_TYPE=internalURL
# COMMON OPENSTACK ENVS
export OS_ENDPOINT_TYPE=internalURL
export OS_INTERFACE=internalURL
export OS_USERNAME=admin
export OS_PASSWORD='panyun@123'
export OS_PROJECT_NAME=admin
export OS_TENANT_NAME=admin
export OS_AUTH_TYPE=password
export OS_AUTH_URL=http://12.1.1.30:5000/v3
export OS_NO_CACHE=1
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_REGION_NAME=RegionOne
export OS_PLACEMENT_API_VERSION=1.17
export MANILA_ENDPOINT_TYPE=internalURL
# For openstackclient
export OS_IDENTITY_API_VERSION=3
export OS_AUTH_VERSION=3
创建rally的deployment
首先使用命令source openrc
加载openrc,然后创建deployment
rally deployment create --fromenv --name=mycloud
然后执行命令rally deployment check
检查环境,如果成功将会输出如下内容:
rally@323fd0a14563:/$ rally deployment check
--------------------------------------------------------------------------------
Platform openstack:
--------------------------------------------------------------------------------
Available services:
+-------------+-------------------------+-----------+
| Service | Service Type | Status |
+-------------+-------------------------+-----------+
| __unknown__ | baremetal-introspection | Available |
| __unknown__ | compute_ha | Available |
| __unknown__ | placement | Available |
| __unknown__ | prometheus | Available |
| __unknown__ | sharev2 | Available |
| __unknown__ | volumev2_k8s | Available |
| barbican | key-manager | Available |
| cinder | volumev2 | Available |
| cinder | volumev3 | Available |
| designate | dns | Available |
| glance | image | Available |
| ironic | baremetal | Available |
| keystone | identity | Available |
| manila | share | Available |
| neutron | network | Available |
| nova | compute | Available |
| octavia | load-balancer | Available |
| trove | database | Available |
+-------------+-------------------------+-----------+
到此,证明环境对接成功。