Open source a simple HTTP service pressure measurement tool Alex, with a web Ui,golang implementation

Source: Internet
Author: User
This is a creation in Article, where the information may have evolved or changed.

Alex

Alex is a stress test web UI based on the Vegeta library and boom package. The Vegeta provides a stable QPS pressure source, and Boom provides a stable number of concurrent pressure sources.
GitHub Address Https://github.com/ireaderlab/alex
中文版

Alex Frame Composition

Alex Main Features

    1. Save pressure test parameters for repeated pressure measurement

    2. Save stress test reports for subsequent viewing and sharing

    3. Provides simple, straightforward graphics and text reporting

    4. Multiple HTTP interfaces can be stress tested at the same time

    5. Multiple host:port pairs in the cluster can be measured simultaneously

    6. Use multiple sets of call parameters to avoid data hotspot issues during pressure measurement

    7. Use step settings to generate progressive pressure sources

    8. Provides a simple real-time display of the system status of the pressure measurement machine

Alex Limitations

    1. Alex is running in a single process, and if you need a distributed pressure-sensing environment, you have to deploy multiple nodes, requiring multiple simultaneous operations for the pressure measurement.

    2. The Vegeta does not provide an immediate stopping method in the case of pressure overload. This requires you to carefully design the pressure measurement step, carefully observe the system state to avoid overloading the system.

    3. The QPS and concurrency numbers shouldn't be too large. I used the Alex tool single process to test the HelloWorld Web program to spit out 1500 bytes per request, the QPS can reach up to 60000, basically let gigabit network card full.

    4. Under large pressure tests, try to avoid gzip decompression. Decompression can consume a lot of CPU resources, which can result in inaccurate test reports. You can perform large stress tests by deploying multiple nodes.

    5. Only HTTP protocols are supported. The HTTPS protocol is not intended to be supported because encryption and decryption also consumes a lot of CPU resources, resulting in inaccurate reporting.

    6. The report simply provides a performance reference, and it is the courage to challenge the report.

    7. Alex has so many limitations that it doesn't affect its daily use.

Installation

install mongodbinstall golang  # 1.4+ is requiredgo get github.com/go-martini/martinigo get github.com/tsenart/vegetago get gopkg.in/mgo.v2go get github.com/shirou/gopsutil# godep restoregit clone https://github.com/shellquery/alex.gitcd alexgo build./alex./alex -c config.jsonopen browserhttp://localhost:8000/

Configure Config.json

{    "BindAddr": "localhost:8000",    "MongoUrl": "mongodb://localhost:27017/alex",    "Teams": [        "python",        "java",        "php",        "go"    ]}

Reference

    1. Great Vegeta Https://github.com/tsenart/vegeta.

    2. Simple and direct Boom Https://github.com/rakyll/boom

Screen Cutting




Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.