分布式工具:distcc
簡(jiǎn)介
distcc是類unix系統(tǒng)下一款分布式的編譯工具怔檩。所謂分布式編譯,就是在由多臺(tái)主機(jī)并行開發(fā)的大型項(xiàng)目中蓄诽,為了提高編譯效率珠洗,采取的分布式交叉編譯的方式。
前期準(zhǔn)備
- 在每一臺(tái)參與編譯的服務(wù)器上配置distcc服務(wù)若专,以及將其加入到一個(gè)分布式編譯的集群中
- 當(dāng)一臺(tái)機(jī)子上需要其他機(jī)子交叉編譯時(shí)许蓖,則這臺(tái)機(jī)子需要配置其他機(jī)子的信息,將其他機(jī)子的ip加到這個(gè)環(huán)境變量中DISTCC_POTENTIAL_HOSTS
distcc的安裝
- 安裝一些必須的軟件
sudo apt-get install gcc make python3 python3-dev libiberty-dev
- 編譯和安裝
在沒一臺(tái)機(jī)器上下載源碼
git clone git@github.com:distcc/distcc/git.
然后安裝
cd distcc
./autogen.sh
./configure
make
make check
make install
make installcheck
update-distcc-symlinks
- 運(yùn)行distcc服務(wù)
distccd --user nobody --job 6 --daemon --allow 參與編譯的所有主機(jī)ip用空格隔開
- 在每一臺(tái)機(jī)器上添加我們的目標(biāo)工程
make -j40 CC="distcc gcc"
make -j40 CXX="distcc g++"
對(duì)于cmake
CC="distcc cc" CXX="distcc g++" cmake . #注意有一個(gè)“.”
wrk
wrk是一種http的負(fù)載測(cè)試工具,下載鏈接:https://github.com/wg/wrk
使用方法見:wrk -t12 -c400 -d30s http://127.0.0.1:8080/index.html
介紹幾個(gè)指標(biāo)
- 頁面瀏覽量(PV):打開和刷新都會(huì)計(jì)數(shù)一次
- 獨(dú)立訪問者(UV):在一定時(shí)間內(nèi)膊爪。訪問網(wǎng)站的不同訪客的數(shù)量自阱,且每一個(gè)訪客只被統(tǒng)計(jì)一次,一般通過cookies訪問
- 吞吐量(RPS):服務(wù)器并發(fā)處理能力的量化描述米酬,單位為req/s沛豌,指的是某個(gè)并發(fā)用戶數(shù)下單位時(shí)間內(nèi)處理的請(qǐng)求數(shù)
在互聯(lián)網(wǎng)的其他場(chǎng)景下經(jīng)常會(huì)使用其他兩個(gè)指標(biāo)來衡量吞吐量
- QPS:每秒處理查詢的數(shù)量
- TPS:每一秒處理事務(wù)的數(shù)量
- 并發(fā)數(shù):系統(tǒng)同時(shí)處理的request/transaction數(shù)量,等于QPS×平均響應(yīng)時(shí)間
- 并發(fā)鏈接數(shù):某個(gè)時(shí)刻服務(wù)器所接受請(qǐng)求數(shù)目赃额,簡(jiǎn)單講就是一個(gè)會(huì)話
- 并發(fā)用戶數(shù):某個(gè)時(shí)刻服務(wù)器所鏈接的用戶數(shù)加派,注意和并發(fā)鏈接數(shù)區(qū)分
- 用戶平均請(qǐng)求等待時(shí)間:計(jì)算公式:處理完所有請(qǐng)求數(shù)花費(fèi)的時(shí)間/并發(fā)用戶數(shù)
- 服務(wù)器平均等待時(shí)間:計(jì)算公式:處理完所有請(qǐng)求數(shù)所花費(fèi)的時(shí)間/總請(qǐng)求數(shù)
參數(shù)說明
-c,-connections:每線程開的連接數(shù)
-t跳芳,-threads:線程數(shù)
-s芍锦,script:LuaJIT script
-H,--header:HTTP header to add to request
--latency:print detailed latency statistics
--timeout:記錄響應(yīng)等待的超時(shí)
ab測(cè)試工具
Apache Bench是Apache服務(wù)器自帶的一個(gè)web壓力測(cè)試工具飞盆,簡(jiǎn)稱ab娄琉。ab又是一個(gè)命令行工具,對(duì)發(fā)起負(fù)載的本機(jī)要求很低吓歇,根據(jù)命令可以創(chuàng)建很多并發(fā)訪問線程孽水,模擬多個(gè)訪問者同時(shí)對(duì)某一個(gè)URL地址進(jìn)行訪問,因此可以用來測(cè)試目標(biāo)服務(wù)器的負(fù)載能力