Code Monkey home page Code Monkey logo

ecs's Introduction

ecs

release Hits

融合怪测评脚本 - GO重构版本 - 由于未正式发版,如有问题请issues反馈

Shell版本: https://github.com/spiritLHLS/ecs

语言

中文文档 | English Docs

适配系统和架构

编译支持的架构: amd64、arm、arm64、386、mips、mipsle、s390x、riscv64

测试支持的架构: amd64、arm64

更多架构请自行测试

编译支持的系统: Linux、Windows、MacOS、FreeBSD、OpenBSD

测试支持的系统: Linux、Windows

更多系统请自行测试

待支持的系统(存在硬件测试BUG未修复): MacOS、FreeBSD、OpenBSD

功能

Linux/FreeBSD/MacOS上使用的说明

一键命令

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

curl -L https://cdn.spiritlhl.net/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

详细说明

下载脚本

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

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

./goecs.sh install

升级goecs

./goecs.sh upgrade

卸载goecs

./goecs.sh uninstall

shell脚本的说明

可用命令:

./goecs.sh env            检查并安装的包:
                          sudo  (几乎所有类 Unix 系统都有。)
                          tar   (几乎所有类 Unix 系统都有。)
                          unzip (几乎所有类 Unix 系统都有。)
                          dd    (几乎所有类 Unix 系统都有。)
                          fio   (几乎所有类 Unix 系统可以通过系统的包管理器安装。)
                          sysbench  (几乎所有类 Unix 系统可以通过系统的包管理器安装。)
                          geekbench (geekbench5) (仅支持 IPV4 环境,且内存大于 1GB 并需要持续联网,仅支持 amd64 和 arm64 架构。)
                          speedtest (使用官方提供的二进制文件以获得更准确的测试结果。)
                          ping  (使用官方提供的二进制文件以获得更准确的测试结果。)
                          systemd-detect-virt 或 dmidecode (几乎所有类 Unix 系统都有,安装以获得更准确的测试结果。)
                          事实上,sysbench/geekbench 是上述依赖项中唯一必须安装的,没有它们无法测试 CPU 分数。
./goecs.sh install        安装 goecs 命令
./goecs.sh upgrade        升级 goecs 命令
./goecs.sh uninstall      卸载 goecs 命令
./goecs.sh help           显示此消息

goecs唤起菜单

goecs

./goecs

goecs命令参数化

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 "dd")
  -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上使用的说明

下载带exe文件的压缩文件

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

找其中最新的版本,按照对应架构下载对应的 .zip 文件,解压后文件夹内有一个exe文件

选择该exe文件,右键点击选择管理员模式运行(非管理员模式运行无法进行硬件测试),唤起菜单自选

windows测试无需进行环境安装

在Docker中使用的说明

地址:https://hub.docker.com/r/spiritlhl/goecs

请确保执行下述命令前本机已安装Docker

特权模式+host网络

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

非特权模式+非host网络

docker run --rm spiritlhl/goecs:latest -menu=false -l zh -memorym sysbench

使用Docker执行测试,硬件测试会有一些偏差和虚拟化架构判断失效,还是推荐直接测试而不使用Docker测试。

QA

Q: 为什么默认使用sysbench而不是geekbench

A: 比较二者特点

sysbench                          geekbench
轻量几乎所有服务器都能跑            重型小机器跑不动
测试无联网需求,无硬件需求          测试必须联网,且必须IPV4环境,且有内存大小1G的最低需求
LUA编写且开源,各架构系统可自行编译  仅官方二进制文件且不开源,无对应架构时无法自行编译
核心测试组件十多年不变              每次大版本更新对标的CPU,不同版本间得分互相之间难转化,你只能以对标的CPU为准
测试仅测试计算性能                  测试涵盖多种性能测试,得分以权重计算,但实际很多测试项目实际是用不到的
适合快速测试                       适合全面测试

goecs测试使用何种CPU测试方式可使用参数指定,默认只是为了更多用户快速测试的需求

Q: 为什么使用Golang而不是Rust重构

A: 因为网络相关的项目目前以Golang语言为趋势,大多组件有开源生态维护,Rust很多得自己手搓,我懒得搞我没那个技术力

Q: 为什么不继续开发Shell版本而是选择重构

A: 因为太多千奇百怪的环境问题了,还是提前编译好测试的二进制文件比较容易解决环境问题(泛化性更好)

Q: 每个测试项目的说明有吗?

A: 每个测试项目有对应的维护仓库,自行点击查看仓库说明

ecs's People

Contributors

spiritlhls avatar spiritysdx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

ecs's Issues

【BUG】Windows端读取出现问题

问题出现情况
1.Windows端读取出现问题

系统
(两台电脑)
Microsoft Windows 10 Pro for Workstations 21H1 x64
Microsoft Windows Server 2012 R2 Datacenter x64

问题复现
首先就是在我的两台支持虚拟化的Windows电脑均无法正确读取虚拟化情况,在另外一台Linux服务器能够读取虚拟化情况
image
image
image
然后就是CPU缓存读取错误:
image
这里电脑2读取L3缓存没有出现错误,但是读取L1缓存依旧错误
硬盘没有测试
image

生成文件
电脑1goecs.txt
电脑2goecs.txt
这里云端文件我这里无法访问,所以我自己上传在了gitcode
image
电脑1goecs(gitcode).txt
电脑2goecs(gitcode).txt

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.