SuperBench.sh 更新 v1.1.3

 Linux  oldking   2018-05-05   6,045 人阅读  14 条评论

2018.10.25更新到1.1.3

添加TCP拥塞控制检测

2018.10.24更新到1.1.2

去掉speedtest默认的latency显示

2018.8.27更新到1.1.1

当默认的speedtest由于自身ip库信息导致连接到较远的节点时候增加(*)提示

2018.8.14更新到1.1.0

增加speedtest.net分享链接

2018.7.18更新到1.0.9

修复部分bug

2018.7.14更新到1.0.8

测速部分增加 fast-cli

2018.7.5更新到1.0.7

1.ipip.net api 改用http

2.修复bug

2018.6.29更新到1.0.6

1.修复硬盘容量重复bug

2.修改系统参数信息颜色

3.增加 hyper 识别

4.更换至 ipip.net 数据库

----------------------

拖了很久,其实看脚本日期,二月份就写好的,然后就忘了 push 到 GayHub ...

新加了一个短连接,原来命令的依然可以正常变更至新版:

wget -qO- git.io/superbench.sh | bash

使用参数的方法:

wget git.io/superbench.sh; chmod +x superbench.sh

或者 curl -LsO git.io/superbench.sh; chmod +x superbench.sh

./superbench.sh info

./superbench.sh io

./superbench.sh speed

./superbench.sh share

怀恋上一版的请使用:

wget -qO- git.io/superbench_old.sh | bash

之前就弄的差不多了,用了一段时间没啥问题,写 shell 只是一时兴起,不是专业玩运维的,不足的地方各位多提 issue

虚心接受了各位大佬的建议,本次变化比较大,但没什么技术含量,都是些无关痛痒的更新

SuperBench.sh 更新 v1.1.3

主要改变的地方如下:

 

1. 取消 virt-what ,采用更加方便的特征判断虚拟化类型,不需要安装额外组件。

2. 取消硬盘时间检测,这个一般都用不到,用得到的人都会操作,显得多余了,后期考虑放到另外一个脚本里面。

3. 增加 GEOIP 信息,包含国家,地区,机房,AS号等信息。

4. 修改 dd 命令块大小,基于有的服务商会做IO限制,或者系统采用虚拟方式不同,长时间占用IO,会限制等原因,采取的是32M,256M,2G三种不同大小测试,按常理,有限制的情况下,三者不尽相同,便于使用者观察不同情况。基于同类其他脚本的参数均设为1G,不同脚本间不好横向对比,所以采用传统方式。考虑都有些小硬盘空间不足情况,先检测剩余空间大小,自动选择适合情况,128M,512M,1G 文件大小测试3次,取平均值,默认情况下测试大小为1G。

5. 改用模块化方式加了参数,好久没写过面向过程的东西了...有时间IO或者速度那地方跑太久,太难等了,你就不必跑完整个脚本,只想测哪个就测哪个

-info 系统信息

-io 简单io测试

-speed 速度测试

-ip GEOIP信息

-fast 快速模式

-share 分享

6. 增加分享模式,方便分享测试结果,本来想自己搭一个的,但自己搭的话,要保证sla各种成本不小,看了一遍各种 bench,最后采用了 Ubuntu 组织的 paste 服务,理论上只要 Ubuntu 不停止运营,应该不存在稳定上的问题,Ubuntu 的 paste 不方便的话另还有三种上传的地方可以选择。本地目录下也生成了一个 log 文件记录上次 bench 的结果。

7. 此 bench 默认从官方源安装 Python (一般情况下系统默认自带了Python),除了结果之外其他产生文件均在测试后删除,中途打断测试也会清理垃圾文件,对系统无更改,无残留,适合洁癖者使用。

8. 还有一些小细节改动,稍微美化了代码,当然需要root权限的脚本依旧开源。

 

除了这个脚本之外,还写了另一个 tool 脚本,集合了各种测试,包含bench里面的测试,包含traceroute,包含iops测试,包含常用cpu加解密的跑分测试,包含常用的简单维护一键,如一键更改ssh端口,更改系统语言,更改时区时间,更改适合本地速度快的软件源等等,也基本弄完了,等有时间一一测试好了再放出来。

 

 

本文地址:https://www.oldking.net/599.html
版权声明:本文为原创文章,版权归 oldking 所有,欢迎分享本文,转载请保留出处!
 关于作者
oldking 老鬼(oldking),程序员,VPS爱好者,长时间以各种名称出没于各类主机论坛,技术社区,08年开始接触建站,09年开始有了第一个自己的网站,熟悉一点 Web 知识,熟悉一点服务器运维知识,爱好鼓捣各种新奇的东西,现在,一切从头开始,认真做一个自己喜欢的东西。

 发表评论


表情

  1. Kevin
    Kevin @回复

    这个带路由测试么?

  2. 惜时
    惜时 @回复

    期待您的tool脚本,什么时候发布? [亲亲]

    • oldking
      oldking【站长】2018-05-12 at 00:46  回复

      @惜时这个脚本和 bench 不太一样,设计很多要root权限的操作,代码都是临时凑出来的功能,我要一一测试解决大部分问题,没有安全风险了之后才能放出来,要慎重一点。

  3. 尼亚
    尼亚 @回复

    用心你真棒你真棒! 1.05出锅了吗?

  4. 很淡很淡的伤
    很淡很淡的伤 @回复

    io测试3个都是1GB的有点儿伤啊 想让他测试为128M,512M,1G 这样的默认就好了

  5. Tiger
    Tiger @回复

    这个脚本里的测速节点标注发现个错误。测速结果里标注为“Kunming CT”(昆明电信)的,经过抓包确认,实际上正确的应该是“Kunming CM”(昆明移动),大兄弟更新一下吧! [嘻嘻]

  6. moe
    moe @回复

    虚拟化判断不完善
    https://github.com/oooldking/script/blob/master/superbench.sh#L388
    标准互联用的hyperv
    https://i.loli.net/2018/06/01/5b1032e668bc7.png

  7. anddy
    anddy @回复

    报错日志如下:
    Traceback (most recent call last):
    File “tools.py”, line 68, in
    GetIpipInfo(sys.argv[2])
    File “tools.py”, line 14, in GetIpipInfo
    ijson = json.load(f)
    File “/usr/lib64/python2.7/json/__init__.py”, line 290, in load
    **kw)
    File “/usr/lib64/python2.7/json/__init__.py”, line 338, in loads
    return _default_decoder.decode(s)
    File “/usr/lib64/python2.7/json/decoder.py”, line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
    File “/usr/lib64/python2.7/json/decoder.py”, line 384, in raw_decode
    raise ValueError(“No JSON object could be decoded”)
    ValueError: No JSON object could be decoded
    Traceback (most recent call last):
    File “tools.py”, line 68, in
    GetIpipInfo(sys.argv[2])
    File “tools.py”, line 14, in GetIpipInfo
    ijson = json.load(f)
    File “/usr/lib64/python2.7/json/__init__.py”, line 290, in load
    **kw)
    File “/usr/lib64/python2.7/json/__init__.py”, line 338, in loads
    return _default_decoder.decode(s)
    File “/usr/lib64/python2.7/json/decoder.py”, line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
    File “/usr/lib64/python2.7/json/decoder.py”, line 384, in raw_decode
    raise ValueError(“No JSON object could be decoded”)
    ValueError: No JSON object could be decoded
    Traceback (most recent call last):
    File “tools.py”, line 68, in
    GetIpipInfo(sys.argv[2])
    File “tools.py”, line 14, in GetIpipInfo
    ijson = json.load(f)
    File “/usr/lib64/python2.7/json/__init__.py”, line 290, in load
    **kw)
    File “/usr/lib64/python2.7/json/__init__.py”, line 338, in loads
    return _default_decoder.decode(s)
    File “/usr/lib64/python2.7/json/decoder.py”, line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
    File “/usr/lib64/python2.7/json/decoder.py”, line 384, in raw_decode
    raise ValueError(“No JSON object could be decoded”)
    ValueError: No JSON object could be decoded
    Traceback (most recent call last):
    File “tools.py”, line 68, in
    GetIpipInfo(sys.argv[2])
    File “tools.py”, line 14, in GetIpipInfo
    ijson = json.load(f)
    File “/usr/lib64/python2.7/json/__init__.py”, line 290, in load
    **kw)
    File “/usr/lib64/python2.7/json/__init__.py”, line 338, in loads
    return _default_decoder.decode(s)
    File “/usr/lib64/python2.7/json/decoder.py”, line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
    File “/usr/lib64/python2.7/json/decoder.py”, line 384, in raw_decode
    raise ValueError(“No JSON object could be decoded”)
    ValueError: No JSON object could be decoded

    • oldking
      oldking【站长】2018-07-05 at 23:49  回复

      @anddy已修复,https的问题,换成http的接口了,请再次测试。

  8. JVRuo
    JVRuo @回复

    debian 9 内核4.9这个版本出现Not enough space!
    https://raw.githubusercontent.com/oooldking/script/master/superbench.sh正常

  9. Disklong
    Disklong @回复

    新的版本 测试貌似有问题:

    awk: cmd. line:1: BEGIN{printf “%.1f”, 0 + 容量}
    awk: cmd. line:1: ^ invalid char ‘㥠in expression
    awk: cmd. line:1: BEGIN{printf “%.1f”, 0 + 容量}
    awk: cmd. line:1: ^ syntax error
    awk: cmd. line:1: BEGIN{printf “%.1f”, 0 + 已用}
    awk: cmd. line:1: ^ invalid char ‘㥠in expression
    awk: cmd. line:1: BEGIN{printf “%.1f”, 0 + 已用}
    awk: cmd. line:1: ^ syntax error