分布式编译和测试
2019-11-20 本文已影响0人
镜中无我
分布式工具:distcc
简介
distcc是类unix系统下一款分布式的编译工具。所谓分布式编译,就是在由多台主机并行开发的大型项目中,为了提高编译效率,采取的分布式交叉编译的方式。
前期准备
- 在每一台参与编译的服务器上配置distcc服务,以及将其加入到一个分布式编译的集群中
- 当一台机子上需要其他机子交叉编译时,则这台机子需要配置其他机子的信息,将其他机子的ip加到这个环境变量中DISTCC_POTENTIAL_HOSTS
distcc的安装
- 安装一些必须的软件
sudo apt-get install gcc make python3 python3-dev libiberty-dev
- 编译和安装
在没一台机器上下载源码
git clone git@github.com:distcc/distcc/git.
然后安装
cd distcc
./autogen.sh
./configure
make
make check
make install
make installcheck
update-distcc-symlinks
- 运行distcc服务
distccd --user nobody --job 6 --daemon --allow 参与编译的所有主机ip用空格隔开
- 在每一台机器上添加我们的目标工程
make -j40 CC="distcc gcc"
make -j40 CXX="distcc g++"
对于cmake
CC="distcc cc" CXX="distcc g++" cmake . #注意有一个“.”
wrk
wrk是一种http的负载测试工具,下载链接:https://github.com/wg/wrk
使用方法见:wrk -t12 -c400 -d30s http://127.0.0.1:8080/index.html
介绍几个指标
- 页面浏览量(PV):打开和刷新都会计数一次
- 独立访问者(UV):在一定时间内。访问网站的不同访客的数量,且每一个访客只被统计一次,一般通过cookies访问
- 吞吐量(RPS):服务器并发处理能力的量化描述,单位为req/s,指的是某个并发用户数下单位时间内处理的请求数
在互联网的其他场景下经常会使用其他两个指标来衡量吞吐量
- QPS:每秒处理查询的数量
- TPS:每一秒处理事务的数量
- 并发数:系统同时处理的request/transaction数量,等于QPS×平均响应时间
- 并发链接数:某个时刻服务器所接受请求数目,简单讲就是一个会话
- 并发用户数:某个时刻服务器所链接的用户数,注意和并发链接数区分
- 用户平均请求等待时间:计算公式:处理完所有请求数花费的时间/并发用户数
- 服务器平均等待时间:计算公式:处理完所有请求数所花费的时间/总请求数
参数说明
-c,-connections:每线程开的连接数
-t,-threads:线程数
-s,script:LuaJIT script
-H,--header:HTTP header to add to request
--latency:print detailed latency statistics
--timeout:记录响应等待的超时
ab测试工具
Apache Bench是Apache服务器自带的一个web压力测试工具,简称ab。ab又是一个命令行工具,对发起负载的本机要求很低,根据命令可以创建很多并发访问线程,模拟多个访问者同时对某一个URL地址进行访问,因此可以用来测试目标服务器的负载能力