2025-09-15 14:09:17 +00:00
2025-08-23 03:17:05 +00:00
2025-08-26 11:25:32 +08:00
2025-08-08 14:23:16 +00:00
2024-07-04 10:59:03 +08:00
2025-08-06 09:06:48 +00:00
2025-09-15 14:09:17 +00:00
2025-02-05 14:03:26 +00:00
2025-03-31 22:36:43 +08:00
2024-06-30 18:43:33 +08:00
2025-09-15 14:09:17 +00:00
2024-07-05 15:28:51 +08:00
fix
2025-08-25 10:20:54 +08:00

ECS

Build and Release

FOSSA Status

Hits Downloads

Fusion Monster Evaluation Project - GO Version

(No additional shell file dependencies unless necessary to install the environment using the shell, the environment is installed just to measure more accurately, in extreme cases no environment dependencies can also be fully measured project)

Please report any issues via issues.

Go version: https://github.com/oneclickvirt/ecs

Shell version: https://github.com/spiritLHLS/ecs/blob/main/README_EN.md


Language

中文文档 | English Docs


Supported Systems and Architectures

Compilation and Testing Support

Supported for Compilation Tested on Supported OS for Compilation Tested OS
amd64 amd64 Linux Linux
arm64 arm64 Windows Windows
arm MacOS(Darwin) MacOS
386 FreeBSD
mips,mipsle Android
mips64,mips64le
ppc64,ppc64le
s390x s390x
riscv64

For more information about the architecture and system, please test or compile it yourself, and open issues if you have any questions.

Systems Pending Support

OS Notes
Android(arm64) Permission issues that are not fixed, no problems with ARM architecture for non-Android systems
OpenBSD/NetBSD Some of Goalng's official libraries do not support this system (especially net-related items)
Windows(Virtual Machines) Inaccurate mbw test performance without Admin rights (memory tests)
Windows(Physical Machines)(not under Admin) Inaccurate mbw test performance without Admin rights (memory tests)

Features

For first-time users of this project, it is recommended to check the instructions: Jump to


Instructions for Use

Linux/FreeBSD/MacOS

One-click command

One-Click Command will Install Dependencies by Default, Update Package Manager by Default, Default Non-Interactive Mode*

  • International users without acceleration:

    export noninteractive=true && curl -L https://raw.githubusercontent.com/oneclickvirt/ecs/master/goecs.sh -o goecs.sh && chmod +x goecs.sh && ./goecs.sh env && ./goecs.sh install && goecs
    
  • International/domestic users with CDN acceleration:

    export noninteractive=true && curl -L https://cdn.spiritlhl.net/https://raw.githubusercontent.com/oneclickvirt/ecs/master/goecs.sh -o goecs.sh && chmod +x goecs.sh && ./goecs.sh env && ./goecs.sh install && goecs
    
  • Domestic users with CNB acceleration:

    export noninteractive=true && curl -L https://cnb.cool/oneclickvirt/ecs/-/git/raw/main/goecs.sh -o goecs.sh && chmod +x goecs.sh && ./goecs.sh env && ./goecs.sh install && goecs
    
  • Short Link:

    export noninteractive=true && curl -L https://bash.spiritlhl.net/goecs -o goecs.sh && chmod +x goecs.sh && bash goecs.sh env && bash goecs.sh install && goecs
    ``
    
    

Detailed instructions

Detailed description of the commands in *Command Controls whether to install dependencies, Whether to update the package manager, Default interaction mode can be selected

Expand to view detailed instructions
  1. Download the script

    International users without acceleration:

    curl -L https://raw.githubusercontent.com/oneclickvirt/ecs/master/goecs.sh -o goecs.sh && chmod +x goecs.sh
    

    International/domestic users with CDN acceleration:

    curl -L https://cdn.spiritlhl.net/https://raw.githubusercontent.com/oneclickvirt/ecs/master/goecs.sh -o goecs.sh && chmod +x goecs.sh
    

    Domestic users with CNB acceleration:

    curl -L https://cnb.cool/oneclickvirt/ecs/-/git/raw/main/goecs.sh -o goecs.sh && chmod +x goecs.sh
    
  2. Update package manager (optional) and install environment

    ./goecs.sh env
    

    Non-interactive mode:

    export noninteractive=true && ./goecs.sh env
    
  3. Install goecs

    ./goecs.sh install
    
  4. Upgrade goecs

    ./goecs.sh upgrade
    
  5. Uninstall goecs

    ./goecs.sh uninstall
    
    
  6. help command

    ./goecs.sh -h
    
  7. Invoke the menu

    goecs -l en
    

Command parameterization

Expand to view parameter descriptions
Usage: goecs [options]
  -backtrace
        Enable/Disable backtrace test (in 'en' language or on windows it always false) (default true)
  -basic
        Enable/Disable basic test (default true)
  -comm
        Enable/Disable common media test (default true)
  -cpu
        Enable/Disable CPU test (default true)
  -cpum string
        Set CPU test method (supported: sysbench, geekbench, winsat) (default "sysbench")
  -cput string
        Set CPU test thread mode (supported: single, multi) (default "multi")
  -disk
        Enable/Disable disk test (default true)
  -diskm string
        Set disk test method (supported: fio, dd, winsat) (default "fio")
  -diskmc
        Enable/Disable multiple disk checks, e.g., -diskmc=false
  -diskp string
        Set disk test path, e.g., -diskp /root
  -email
        Enable/Disable email port test (default true)
  -h    Show help information
  -l string
        Set language (supported: en, zh) (default "zh")
  -log
        Enable/Disable logging in the current path
  -memory
        Enable/Disable memory test (default true)
  -memorym string
        Set memory test method (supported: sysbench, dd, winsat) (default "sysbench")
  -menu
        Enable/Disable menu mode, disable example: -menu=false (default true)
  -nt3
        Enable/Disable NT3 test (in 'en' language or on windows it always false) (default true)
  -nt3loc string
        Specify NT3 test location (supported: GZ, SH, BJ, CD for Guangzhou, Shanghai, Beijing, Chengdu) (default "GZ")
  -nt3t string
        Set NT3 test type (supported: both, ipv4, ipv6) (default "ipv4")
  -security
        Enable/Disable security test (default true)
  -speed
        Enable/Disable speed test (default true)
  -spnum int
        Set the number of servers per operator for speed test (default 2)
  -upload
        Enable/Disable upload the result (default true)
  -ut
        Enable/Disable unlock media test (default true)
  -v    Display version information

Windows

  1. Download the compressed file with the .exe file: Releases
  2. After unzipping, right-click and run as administrator.

Docker

Expand to view how to use it

International image: https://hub.docker.com/r/spiritlhl/goecs

Please ensure Docker is installed on your machine before executing the following commands

Privileged mode + host network

docker run --rm --privileged --network host spiritlhl/goecs:latest -menu=false -l en

Unprivileged mode + non-host network

docker run --rm spiritlhl/goecs:latest -menu=false -l en

Using Docker to execute tests will result in some hardware testing bias and virtualization architecture detection failure. Direct testing is recommended over Docker testing.

Mirror image: https://cnb.cool/oneclickvirt/ecs/-/packages/docker/ecs

Please ensure Docker is installed on your machine before executing the following commands

Privileged mode + host network

docker run --rm --privileged --network host docker.cnb.cool/oneclickvirt/ecs:latest -menu=false -l en

Unprivileged mode + non-host network

docker run --rm docker.cnb.cool/oneclickvirt/ecs:latest -menu=false -l en

Compiling from source code

Expand to view compilation instructions
  1. Clone the public branch of the repository (without private dependencies)
git clone -b public https://github.com/oneclickvirt/ecs.git
cd ecs
  1. Install Go environment (skip if already installed)

Select go 1.24.5 version to install

curl -L https://cdn.spiritlhl.net/https://raw.githubusercontent.com/spiritLHLS/one-click-installation-script/main/install_scripts/go.sh -o go.sh && chmod +x go.sh && bash go.sh 
  1. Compile
go build -o goecs
  1. Run test
./goecs -menu=false -l en

Supported compilation parameters:

  • GOOS: supports linux, windows, darwin, freebsd, openbsd
  • GOARCH: supports amd64, arm, arm64, 386, mips, mipsle, s390x, riscv64

Cross-platform compilation examples:

# Compile Windows version
GOOS=windows GOARCH=amd64 go build -o goecs.exe
# Compile MacOS version
GOOS=darwin GOARCH=amd64 go build -o goecs_darwin

QA

Q: Why is sysbench used by default instead of geekbench?

A: Comparing the characteristics of both:

Comparison sysbench geekbench
Application scope Lightweight, runs on almost any server Heavyweight, won't run on small machines
Test requirements No network needed, no special hardware requirements Requires internet, IPv4 environment, minimum 1GB memory
Open source status Based on LUA, open source, can compile for various architectures Official binaries are closed source, cannot compile your own version
Test stability Core test components unchanged for 10+ years Each major version updates test items, making scores hard to compare between versions (each version benchmarks against current best CPUs)
Test content Only tests computing performance Covers multiple performance aspects with weighted scores, though some tests aren't commonly used
Suitable scenarios Good for quick tests, focuses on computing performance Good for comprehensive testing
Ranking sysbench.spiritlhl.net browser.geekbench.com

Note that goecs allows you to specify CPU test method via parameters. The default is chosen for faster testing across more systems.

Q: Why use Golang instead of Rust for refactoring?

Q: Why not continue developing the Shell version instead of refactoring?

A: Because there were too many varied environment issues. Pre-compiled binary files are easier for solving environment problems (better generalization).

Q: Are there explanations for each test item?

A: Each test project has its own maintenance repository. Click through to view the repository description.

Q: How do I manually terminate a test halfway through?

Q: How do I test in a non-Root environment?

A: Execute the installation command manually. If you can't install it, simply download the appropriate architecture package from releases, extract it, and run the file if you have execution permissions. Alternatively, use Docker if you can.

Thanks

Thank he.net bgp.tools ipinfo.io maxmind.com cloudflare.com ip.sb scamalytics.com abuseipdb.com ip2location.com ip-api.com ipregistry.co ipdata.co ipgeolocation.io ipwhois.io ipapi.com ipapi.is ipqualityscore.com bigdatacloud.com dkly.net virustotal.com and others for providing APIs for testing, and thanks to various websites on the Internet for providing query resources.

Thank

h501

provided free hosting support for this open source project's shared test results storage

Thanks also to the following platforms for editorial and testing support

goland ibm zmto

History Usage

goecs

Stargazers over time

Stargazers over time

License

FOSSA Status

Description
VPS融合怪服务器测评脚本-GO重构版本
Readme GPL-3.0 666 MiB
Languages
Go 70.3%
Shell 29.1%
Dockerfile 0.6%