Giter VIP home page Giter VIP logo

Comments (4)

myzhan avatar myzhan commented on August 23, 2024

看起来像是 locust 用的是 zeromq,而 boomer 没有用 zeromq。你可以看看这里的讨论,#6

locust 和 boomer 用的通信协议必须一致。

解决方法有两个:

  1. 修改 locust 源码,让它使用原生的 socket,代码在 locust/rpc/init.py。
  2. 编译 boomer 的时候,加上 zeromq 的支持。

个人建议用第一种方法,由于 boomer 的性能比较好,一般一台机器只启动一个 slave,就可以用满机器资源,无须挂很多 slave,所以用原生 socket 来和 master 通信,问题不大。

from boomer.

liusong1999 avatar liusong1999 commented on August 23, 2024

好的,我再去试一下。

from boomer.

liusong1999 avatar liusong1999 commented on August 23, 2024

myzhan老师你好,我今天尝试了很多种方法,最后没用windows而用ubuntu操作系统成功了,但是我发现用boomer作为负载机产生的rps反而更低了很多,从原来的500左右的rps降到10rps,是不是我哪里的姿势不对?以下是code,就是一个非常简单的GET请求:
package main

import "github.com/myzhan/boomer"

import (
"io"
"io/ioutil"
"net/http"
)

func liusong() {

startTime := boomer.Now()

tr := &http.Transport{
	DisableKeepAlives: true,
}

client := &http.Client{Transport: tr}
resp, err := client.Get("http://pcsstest.preing.com/pcss-web/label/poplabels.do?params=[{%22channel%22:%22WAP%22,%22cmmdtyCode%22:%22000000000100004312%22,%22labelScene%22:%2205%22,%22supplierCode%22:%220000000000%22}]")
resp.Header.Add("User-Agent", "WafTestSpider")
io.Copy(ioutil.Discard, resp.Body)
resp.Body.Close()

endTime := boomer.Now()

if err != nil {
	boomer.Events.Publish("request_failure", "http", "liusong", 0.0, err.Error())
} else {
	boomer.Events.Publish("request_success", "http", "liusong", float64(endTime-startTime), resp.ContentLength)
}

}

func main() {

task := &boomer.Task{
	Name:   "ls",
	Weight: 10,
	Fn:     liusong,
}

http.DefaultTransport.(*http.Transport).MaxIdleConnsPerHost = 2000

boomer.Run(task)

}

from boomer.

myzhan avatar myzhan commented on August 23, 2024

resp.Header.Add("User-Agent", "WafTestSpider") 这句代码有点问题,如果你是要修改 UA 的话,应该在发请求之前加。

除此之外,压测代码没有其它问题。需要更多的信息,来定位问题。例如只有 10 rps 的时候,你压测的并发数是多少?boomer 的 CPU 负载是多少?服务端响应是否正常?

from boomer.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.