操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    Reversion

    Date

    Author

    Description of change

    0.1

    2022-01-14

    Vicent GAO (高羅)

    初始版本

    1. 高通工具集架構(gòu)

    1) QPM

    1.1) 安裝、卸載升級(jí)QXDM

    1.2) 類(lèi)似與軟件商店,如APP Store

    2) QPST

    2.1) 添加或刪除USB DM口

    2.2) QXDM需要通過(guò)USB DM口抓取log

    3) QXDM

    3.1) 選擇USB DM口,點(diǎn)擊Connect

    3.2) 開(kāi)始抓取log

    2.高通工具的安裝

    安裝順序:

    1. qpst.win.2.7_installer_00496.2.zip,解壓后默認(rèn)安裝即可

    2. QPM.1.0.84.3.Windows-AnyCPU,此為“高通包管理器”

    3. 在QPM里安裝QXDM

    3. 在QPM里安裝QXDM

    1) 第一次打開(kāi)QPM時(shí),需要輸入高通Case系統(tǒng)賬號(hào)、密碼

    2) 高通Case系統(tǒng)賬號(hào)、密碼登陸成功

    3) 切換到“All”選項(xiàng)卡,找到QXDM項(xiàng),點(diǎn)擊Install安裝即可。

    4) 如果沒(méi)有找到可用的高通Case系統(tǒng)賬號(hào),就無(wú)法登錄QPM,無(wú)法安裝QXDM

    4. 高通工具使用的基本步驟

    1. 打開(kāi)QXDM,連接USB DM口

    2. 導(dǎo)入與測(cè)試固件版本匹配的QShrink4文件(僅在高通最新平臺(tái)上需要執(zhí)行此步驟,如:SDX24/SDX55等)

    3. 選擇合適的DMC配置

    4. 復(fù)現(xiàn)問(wèn)題,并抓取log

    5. 保存log,壓縮成zip文件(一定要壓縮!體積小8倍)

    6. 把log和相關(guān)文件(如:QShrink4文件),發(fā)給SW

    5. 使用QPST添加USB DM口

    1. 點(diǎn)擊”Add New Port”

    2. 添加“USB DM”口

    3. 成功添加“USB DM口”的效果圖

    6. 使用QXDM連接USB DM口

    1. 點(diǎn)擊“Connect to device”圖標(biāo)

    2. 選擇需要的USB DM口(只有State為“Running”的USB DM口才是可用的),點(diǎn)擊”Connect按鈕”

    7. 使用QXDM導(dǎo)入Qshrink4文件

    1) 在固件包中的dbg目錄下有以.qsr4結(jié)尾的QShrink4文件

    2) 每一個(gè)固件包中的QShrink4文件都不相同,是該固件包特有的

    3) 只有導(dǎo)入與固件匹配的QShrink4文件,才可以通過(guò)QXDM抓到有用log、使用QXDM讀取“已抓到的log”( QShrink4文件就像一把鑰匙)

    4) SDX24/SDX55/SA415M/SA515M等新平臺(tái),才需要QShrink4文件;其他AG35等都不需要

    5) 選擇菜單Options->Load QShrink4.0…

    6) 選擇固件包/dbg目錄下的.qsr4文件,dbg目錄下有多于一個(gè)的.qsr4文件,逐一嘗試,當(dāng)觀察到能抓到“黃色”字體的log,說(shuō)明已選擇了正確的.qsr4文件

    7) 如果嘗試完所有的.qsr4文件還是不正確,QXDM先關(guān)掉再重新打開(kāi),再來(lái)一遍第2步,應(yīng)該就好了

    8. 使用QXDM導(dǎo)入Default DMC

    1. 選擇菜單:File->Load Default Configuration

    9. 使用QXDM導(dǎo)入其他DMC

    1. 選擇菜單:File->Load

    2. 選擇工具包中的“耗流.dmc”

    10. 使用QXDM設(shè)置ALL DMC

    1) 按F5鍵,調(diào)出對(duì)話(huà)框”CFG File Generator”

    2) 左邊的復(fù)選框全部勾上

    3) 點(diǎn)擊OK完成

    11. 如何選擇使用哪個(gè)DMC?

    1. 標(biāo)準(zhǔn)方法:

    1) 咨詢(xún)SW,需要使用哪個(gè)DMC

    2) SW說(shuō)使用Default DMC就可以,就使用Default DMC

    3) SW說(shuō)要提供一個(gè).dmc配置文件,就導(dǎo)入該.dmc配置文件

    2. 簡(jiǎn)單方法:

    1) 設(shè)置ALL DMC,缺點(diǎn)是:如果抓log的時(shí)間很長(zhǎng),log可能會(huì)非常大

    12. HT提供給SW的log文件列表

    1. *.isf文件(QXDM log),先壓縮一下再發(fā)給SW,壓縮之后體積小8倍

    2. 測(cè)試用的固件包/dbg目錄所有的*.qsr4文件

    wrk下載和安裝

    先安裝git

    cd /usr/local/src
    yum install git -y

    下載wrk文件

    git clone https://github.com/wg/wrk.git  
    cd wrk  
    make  

    編譯成功后,目錄下就會(huì)有一個(gè)wrk文件。

    環(huán)境配置信息

    CPU:8核心16線(xiàn)程

    內(nèi)存:16G

    服務(wù)運(yùn)行平臺(tái):windows10 64位

    壓測(cè)服務(wù)運(yùn)行平臺(tái):centos6.5

    golang測(cè)試接口性能指標(biāo)-帶磁盤(pán)IO操作

    該接口表示獲取uploads文件夾更目錄下所有文件列表。我們用wrk壓測(cè)該接口看下性能指標(biāo)。

    func listHandler(w http.ResponseWriter, r *http.Request) {
    	exists := isExists("./uploads")
    	if !exists {
    		os.MkdirAll("./uploads", os.ModePerm)
    	}
    	fileInfoArr, err := ioutil.ReadDir("./uploads")
    	if err != nil {
    		http.Error(w, err.Error(),
    			http.StatusInternalServerError)
    		return
    	}
    	listHtml := ""
    	for _, fileInfo := range fileInfoArr {
    		imgid := fileInfo.Name()
    		listHtml += "<li><a href=\"/viewPage?id=" + imgid + "\">" + imgid + "</a></li>"
    	}
    	pushHtmlString(w, "<a href='/upload'>相冊(cè)上傳</a>"+"<ol>"+listHtml+"</ol>")
    }

    壓測(cè)命令:

    ./wrk -t12 -c400 -d30s http://192.168.136.1:91/all

    壓測(cè)結(jié)果:

    [root@vm1 wrk]# ./wrk -t12 -c400 -d30s http://192.168.136.1:91/all
    Running 30s test @ http://192.168.136.1:91/all
      12 threads and 400 connections
      Thread Stats   Avg      Stdev     Max   +/- Stdev
        Latency   117.79ms   14.15ms 212.55ms   87.51%
        Req/Sec   282.37     92.47   656.00     81.68%
      100822 requests in 30.06s, 21.44MB read
    Requests/sec:   3353.87
    Transfer/sec:    730.38KB

    golang測(cè)試接口性能指標(biāo)-常規(guī)接口

    這是一個(gè)普通的接口,向客戶(hù)端輸出html信息即可。

    func upload(w http.ResponseWriter, r *http.Request) {
    	if r.Method == "GET" {
    		pushHtmlString(w, "<a href='/all'>相冊(cè)查看</a>"+"<form method=\"POST\" action=\"/upload\" "+
    			" enctype=\"multipart/form-data\">"+
    			"Choose an image to upload: <input name=\"image\" type=\"file\" />"+
    			"<input type=\"submit\" value=\"Upload\" />"+
    			"</form>")
    		return
    	}
    }

    壓測(cè)結(jié)果:

    [root@vm1 wrk]# ./wrk -t12 -c400 -d30s http://192.168.136.1:91/upload
    Running 30s test @ http://192.168.136.1:91/upload
      12 threads and 400 connections
      Thread Stats   Avg      Stdev     Max   +/- Stdev
        Latency    23.58ms   15.25ms 308.32ms   93.15%
        Req/Sec     1.51k   349.33    10.53k    80.72%
      535748 requests in 30.10s, 164.52MB read
    Requests/sec:  17797.87
    Transfer/sec:      5.47MB

    測(cè)試總結(jié)

    在當(dāng)前運(yùn)行環(huán)境下,golang編寫(xiě)的一個(gè)常規(guī)web接口,QPS為17797.87。由于壓測(cè)服務(wù)器是vmware虛擬機(jī)里,有性能損耗。

    按參考教程里測(cè)試結(jié)果顯示,多次測(cè)試的結(jié)果在 4 萬(wàn)左右的 QPS 浮動(dòng),響應(yīng)時(shí)間最多也就是 40ms 左右,對(duì)于?個(gè) Web 程序來(lái)說(shuō),這已經(jīng)是很不錯(cuò)的成績(jī)了,我們只是照抄了別?的示例代碼,就完成了?個(gè)?性能的 hello world 服務(wù)器。

    筆記總結(jié)

    package main
    
    import "fmt"
    
    /**
    golang接口性能測(cè)試
    壓測(cè)工具 wrk。參考教程:
    https://www.cnblogs.com/ycyzharry/p/8372168.html
    
    性能指標(biāo):
    TPS:Transactions Per Second  寫(xiě)接口的性能指標(biāo),每秒可以完成的事務(wù)數(shù)量
    QPS: Queries Per Second		  查詢(xún)接口的性能指標(biāo),每秒可以完成的查詢(xún)數(shù)量 也叫吞吐量
    QoS: Quality of Service       單個(gè)接口服務(wù)質(zhì)量
    
    1.普通查詢(xún)接口QPS獲取
    ./wrk -t12 -c400 -d30s http://192.168.136.1:91/all
    [root@vm1 wrk]# ./wrk -t12 -c400 -d30s http://192.168.136.1:91/all
    Running 30s test @ http://192.168.136.1:91/all
      12 threads and 400 connections
      Thread Stats   Avg      Stdev     Max   +/- Stdev
        Latency   117.79ms   14.15ms 212.55ms   87.51%
        Req/Sec   282.37     92.47   656.00     81.68%
      100822 requests in 30.06s, 21.44MB read
    Requests/sec:   3353.87
    Transfer/sec:    730.38KB
    
    Requests/sec: x  x就是 qps
    2.數(shù)據(jù)庫(kù)寫(xiě)接口TPS獲取 目前尚未提供該數(shù)據(jù)庫(kù)交互接口,應(yīng)該是post接口。需要配合post.lua腳本完成
    ./wrk --latency -t100 -c1500  -d120s --timeout=15s -s post.lua http://127.0.0.1:91/saveToDb
    Requests/sec: x  x就是 tps qps
    
    
    wrk補(bǔ)充說(shuō)明:
    wrk可以配合lua腳本,完成各種接口測(cè)試,如帶文件上傳,post請(qǐng)求,form表單提交,隨機(jī)數(shù)等等。通過(guò)編程手段完成壓測(cè)。
    
    */
    func main5() {
    	fmt.Println("注釋介紹golang接口性能測(cè)試")
    }

    問(wèn)題延伸

    任何一個(gè)接口都有自己的QPS吞吐量,可以最大程度的去提高這個(gè)值,但不會(huì)達(dá)到無(wú)限大,既然總有一個(gè)極限值,那就意味著,當(dāng)請(qǐng)求特別大總會(huì)突破這個(gè)QPS瓶頸,這時(shí)候會(huì)發(fā)生什么呢?常規(guī)默認(rèn)情況下,服務(wù)會(huì)降低速度或奔潰,所有訪(fǎng)問(wèn)的用戶(hù)都會(huì)受到影響,訪(fǎng)問(wèn)慢甚至服務(wù)不可達(dá)。

    這時(shí)候就引入流量限制服務(wù)的概念,超出qps的請(qǐng)求進(jìn)行合理的處理,保障qps以?xún)?nèi)的請(qǐng)求是可用的。

    比如阿里的開(kāi)源系統(tǒng):sentinel流量控制,就是做這個(gè)事情的。詳細(xì)介紹參考:

    https://github.com/alibaba/Sentinel/wiki/介紹

    golang有自己的第三方庫(kù)進(jìn)行流量控制, sentinel流量控制主要服務(wù)于java系統(tǒng)。

網(wǎng)站首頁(yè)   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶(hù)案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話(huà):010-     郵箱:@126.com

備案號(hào):冀ICP備2024067069號(hào)-3 北京科技有限公司版權(quán)所有