Skip to content

Latest commit

 

History

History
262 lines (187 loc) · 11.2 KB

README_EN.md

File metadata and controls

262 lines (187 loc) · 11.2 KB

ecs

release

Hits

Fusion Monster Evaluation Script - GO Refactored Version

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

Architectures supported for compilation: amd64、arm、arm64、386、mips、mipsle、s390x、riscv64

Tested architectures: amd64, arm64

More architectures please test by yourself

Compilation support: Linux, Windows、MacOS、FreeBSD、OpenBSD

Tested on: Linux, Windows

More systems to be tested

Systems to be supported (hardware testing bugs not yet fixed): MacOS、FreeBSD、OpenBSD

Features

Instructions for Use on Linux/FreeBSD/MacOS

one-click command

export noninteractive=true && curl -L https://raw.githubusercontent.com/oneclickvirt/ecs/master/goecs.sh -o goecs.sh && chmod +x goecs.sh && bash goecs.sh env && bash goecs.sh install && goecs -l en

explain in detail

Download the script

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

Install environment

./goecs.sh env

If you don't want interaction, use export noninteractive=true and then execute the env command

Install goecs

./goecs.sh install

Upgrade goecs

./goecs.sh upgrade

Uninstall goecs

./goecs.sh uninstall

Explanation of the shell script

Available commands:

./goecs.sh env             Check and Install dependencies
                           Warning: This command performs system update(optional), which may:
                           1. Take considerable time
                           2. Cause temporary network interruptions
                           3. Impact system stability
                           4. Affect subsequent system startups
                           For systems with less than 1GB RAM, additional risks:
                           1. System freeze
                           2. SSH connection loss
                           3. Critical service failures
                           Recommended:
                           Hanging execution during environment dependency installation
                           
                           Required components:
                           sysbench/geekbench (Required for CPU testing)
                           
                           Optional components:
                           sudo, tar, unzip, dd, fio
                           speedtest (Network testing)
                           ping (Network connectivity)
                           systemd-detect-virt/dmidecode (System info detection)

./goecs.sh install         Install goecs command
./goecs.sh upgrade         Upgrade goecs command
./goecs.sh uninstall       Uninstall goecs command
./goecs.sh help            Show this message

Invoke the goecs menu

goecs -l en

or

./goecs -l en

Parameterized goecs command

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

Instructions for Use on Windows

Download the compressed file with the exe file

https://github.com/oneclickvirt/ecs/releases

Find the latest version, download the .zip file corresponding to your architecture, and unzip it to get an exe file.

Right-click the exe file and select Run as administrator (running without administrator mode will not allow hardware testing), and invoke the menu to choose.

No environment installation is required for Windows testing.

Instructions for Use in Docker

Link: https://hub.docker.com/r/spiritlhl/goecs

Please make sure that 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

Using Docker to execute tests, hardware testing will have some bias and virtualization architecture to determine the failure.

Recommended direct testing without using Docker testing.

QA

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

A: Compare the characteristics of the two

Comparison sysbench geekbench
Scope Lightweight, runs on almost any server Heavyweight, will not run on small machines
Test Requirements No networking, no special hardware required Requires network, IPv4 environment, minimum 1G memory
Open Source Written in LUA, open-source, can be compiled for any architecture Official binaries only, not open-source, cannot compile for unsupported architectures
Test Stability Core test components unchanged for over 10 years Major releases update benchmark CPU, making scores difficult to compare across versions(Each version is benchmarked against the current best CPU)
Test Content Only tests computing performance Covers various performance aspects, scores are weighted, but many tests are not practically used
Best Use Case Ideal for quick tests Ideal for comprehensive tests

And goecs test to use what kind of CPU test method can be specified using the parameter, the default is just for more users to quickly test the needs of the

Q: Why use Golang instead of Rust for refactoring

A: Because of the current trend of network-related projects to Golang language, most of the components of the open source ecological maintenance, Rust a lot of their own hand rubbing, ~ ~ I'm too lazy ~ ~ I don't have the technical force!

Q: Why did you choose to refactor instead of continuing to develop the Shell version?

A: Because there are too many weird environment problems, it's easier to solve environment problems by compiling the test binaries in advance (better generalization)

Q: Are there instructions for each test item?

A: Each test project has a corresponding maintenance repository, click to see the repository description yourself

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

A: Press ctrl and c to terminate the program, the termination still generates the goecs.txt file and the share link in the current directory with the information that has been tested.

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

A: Manually execute the install command, it's not a problem if you can't install it, just download the zip of the corresponding architecture from the release and unzip it, as long as you can execute the file. Or use docker if you can.