Loading... 如果经常关注我的主博客的话,以前会经常看到我做的一个Linux VPS评测,那么这些评测命令和脚本都是哪里来的呢?我这篇文章将会介绍一些常见的测试命令和常见的测试脚本。之前我也<a href="https://www.nicky1605.net/94.html">整理</a>过一些,这次不仅加了测试命令,还整理了一些测试代码。这些命令中大部分是可以在OVZ、KVM平台通用的,当然针对不同的硬件有些测试命令也是不一样的。如果想全面测试一个VPS,现成的测试脚本则是最好的选择。 <h1>常见的测试命令</h1> <h2>基础信息测试</h2> <h3>CPU信息</h3> ```bash # cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 8 Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz ``` 以上信息显示,有8个逻辑CPU, CPU的型号是E5-2680 v2。 ```bash # more /proc/cpuinfo | grep "model name" model name Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz model name Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz model name Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz model name Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz model name Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz model name Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz model name Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz model name Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz ``` 8个逻辑CPU详细显示。 ```bash # cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 2 QEMU Virtual CPU version (cpu64-rhel6) ``` 如果有显示以上信息,说明是2个逻辑CPU,虚拟方式为QEMU的方式,不需要专门专门查询虚拟方式。 ```bash # cat /proc/cpuinfo | grep physical | uniq -c 4 physical id : 0 4 physical id : 1 ``` 说明有2颗4核,也可能是2核4线程。 ```bash # getconf LONG_BIT 32 ``` 当前CPU运行在32bit模式下, 但不代表CPU不支持64bit ``` # cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l 8 ``` 结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit。 <h3>内存信息</h3> 以下测试基于甲骨文试用版VM.Standard2.2套餐。 ```bash # free -m total used free shared buff/cache available Mem: 29993 452 27725 40 1815 29213 Swap: 8191 0 8191 ``` 这个是最常见的查询物理内存(Mem)跟缓冲内存(Swap)的命令。 ```bash # cat /proc/meminfo MemTotal: 30712844 kB MemFree: 28393476 kB MemAvailable: 29918080 kB Buffers: 4152 kB Cached: 1543140 kB SwapCached: 0 kB Active: 751736 kB Inactive: 1002228 kB Active(anon): 185676 kB Inactive(anon): 62548 kB Active(file): 566060 kB Inactive(file): 939680 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 8388604 kB SwapFree: 8388604 kB Dirty: 0 kB Writeback: 0 kB AnonPages: 206712 kB Mapped: 65240 kB Shmem: 41552 kB Slab: 311692 kB SReclaimable: 230964 kB SUnreclaim: 80728 kB KernelStack: 2656 kB PageTables: 6140 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 23745024 kB Committed_AS: 588624 kB VmallocTotal: 34359738367 kB VmallocUsed: 79408 kB VmallocChunk: 34359652348 kB HardwareCorrupted: 0 kB AnonHugePages: 0 kB CmaTotal: 0 kB CmaFree: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 238372 kB DirectMap2M: 15486976 kB DirectMap1G: 17825792 kB ``` 这个是查询内存详细信息的。 <h3>磁盘空间信息</h3> 以下测试基于甲骨文试用版VM.Standard2.2套餐。 ```bash # df -lh Filesystem Size Used Avail Use% Mounted on /dev/sda3 39G 2.6G 36G 7% / devtmpfs 15G 0 15G 0% /dev tmpfs 15G 0 15G 0% /dev/shm tmpfs 15G 41M 15G 1% /run tmpfs 15G 0 15G 0% /sys/fs/cgroup /dev/sda1 512M 12M 501M 3% /boot/efi tmpfs 3.0G 0 3.0G 0% /run/user/1000 ``` 以上为查询硬盘使用状态,算是一个比较直接的显示方式。 ```bash # fdisk -l WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion. Disk /dev/sda: 50.0 GB, 50010783744 bytes, 97677312 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 1048576 bytes Disk label type: gpt Disk identifier: 117F31A3-C168-4DEE-ADC5-8625471536F # Start End Size Type Name 1 2048 1050623 512M EFI System EFI System Partition 2 1050624 17827839 8G Linux swap 3 17827840 97675263 38.1G Microsoft basic ``` 使用该条命令,主要是可以查询有多少(虚拟)物理磁盘接入到机器中,未挂载的机器也会显示在这个列表上。该显示不会因为硬盘的分区方式不同而显示不同。 ```bash # smartctl -A /dev/sda smartctl 6.5 2016-05-07 r4318 [x86_64-linux-3.10.0-957.27.2.el7.x86_64] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF READ SMART DATA SECTION === ``` 使用smartctl命令不同的参数可以查询硬盘的不同的信息,这里我就不多做解释了。 ```bash # hdparm -t /dev/sda ``` 以上命令可以查询硬盘插电时间,因为这个还需要安装相应的组件才可以执行,我这里就不详细演示了。 以上两条命令仅用于物理机或是KVM以及Xen的虚拟技术,OVZ无法执行该命令。另外这个/dev/sda是根据fdisk命令查询出来的硬盘参数来执行的。 <h3>操作系统信息</h3> ```bash # uname -a Linux instance-20191017-0625 3.10.0-957.27.2.el7.x86_64 #1 SMP Mon Jul 29 17:46:05 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux ``` 该命令主要是查看Linux的内核命令。从上面的信息看,这个Linux用的是3.10的内核,也是CentOS 7的默认内核。 ```bash # cat /proc/version Linux version 3.10.0-957.27.2.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Mon Jul 29 17:46:05 UTC 2019 ``` 这条命令其实查看Linux的内核相关信息的,比上一条命令更多的是可以看到gcc的版本号,也可以看到是Red Hat分支。不过从邮件地址可以看出来就是CentOS。 ```bash # cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) ``` 这种方法只适合Redhat系的Linux。 ```bash # lsb_release -a ``` ```bash # cat /etc/issue ``` 以上两条命令适用于大部分发行版的Linux用来查询发行版本。这两条命令在CentOS 6.5上通过,但是CentOS 7不识别这两条命令。 <h3>其他信息</h3> ```bash # dmidecode | grep "Product Name" Product Name: Standard PC (i440FX + PIIX, 1996) ``` 查看机器型号 ```bash # dmesg | grep -i eth [ 0.997727] vmxnet3 0000:03:00.0 eth0: NIC Link is Up 10000 Mbps [ 1.001686] vmxnet3 0000:03:00.0 ens160: renamed from eth0 ``` ```bash # dmesg | grep -i ens [ 0.959461] ACPI: Added _OSI(3.0 _SCP Extensions) [ 3.679538] sd 2:0:0:1: [sda] Mode Sense: 2b 00 10 08 [ 3.787744] IPv6: ADDRCONF(NETDEV_UP): ens3: link is not ready [ 4.627636] IPv6: ADDRCONF(NETDEV_CHANGE): ens3: link becomes ready [ 8.409527] SELinux: 8 users, 14 roles, 5031 types, 316 bools, 1 sens, 1024 cats [ 29.045147] SELinux: 8 users, 14 roles, 5031 types, 316 bools, 1 sens, 1024 cats ``` 查询网卡信息,因为网卡的名称不同命令有所不同。第一个命令是Ubuntu 18.04的结果,第二个是CentOS 7的结果,网卡的名称可以通过ifconfig查看。 <h2>网速测试</h2> 因为网速测试大部分都是连接到speedtest.net去测试,所以网速测试我们基本上只是用wget测试国内外的网站下载。 ```bash # wget http://cachefly.cachefly.net/100mb.test ``` ```bash # wget http://dl_dir.qq.com/qqfile/qq/QQ2011/QQ2011.exe ``` 当然如果有需要的用户也可以安装speedtest-cli程序去测试,这个也是很多测试脚本在用的。 ```bash # yum install python-pip –y # pip install speedtest-cli ``` 参见https://pypi.org/project/speedtest-cli/ 或者 ```bash # wget https://raw.github.com/sivel/speedtest-cli/master/speedtest.py # chmod a+rx speedtest.py # mv speedtest.py /usr/bin/speedtest-cli # chown root:root /usr/bin/speedtest-cli # speedtest-cli ``` <h2><strong>磁盘测试</strong></h2> ```bash # dd if=/dev/zero of=test bs=64k count=4k oflag=dsync 4096+0 records in 4096+0 records out 268435456 bytes (268 MB) copied, 6.4829 s, 41.4 MB/s ``` 以上dd命令用于测试硬盘读写速度,上面的命令是初始化一个268MB的文件。其中用时越快的,证明硬盘I/O读写能力越高。不过该命令仅适用于机械硬盘或是SSD做缓存的机械硬盘,有一部分资料说dd命令检测SSD硬盘的读写速度不准确。 <h2><strong>路由追踪测试</strong></h2> 在测试机上使用traceroute命令可以查看从测试机上到目的目标上 ```bash # traceroute baidu.com traceroute to baidu.com (220.181.38.148), 30 hops max, 60 byte packets 1 140.91.214.6 (140.91.214.6) 0.117 ms 140.91.214.3 (140.91.214.3) 0.083 ms 140.91.214.6 (140.91.214.6) 0.086 ms 2 115.92.252.66 (115.92.252.66) 1.394 ms 1.373 ms 1.358 ms 3 115.92.252.65 (115.92.252.65) 1.075 ms 1.240 ms 1.253 ms 4 1.213.151.113 (1.213.151.113) 1.144 ms 0.994 ms 1.161 ms 5 1.208.174.93 (1.208.174.93) 2.552 ms 1.213.152.37 (1.213.152.37) 1.366 ms 1.208.104.57 (1.208.104.57) 1.805 ms 6 1.208.147.118 (1.208.147.118) 2.043 ms 1.900 ms 1.208.146.118 (1.208.146.118) 1.812 ms 7 211.40.6.158 (211.40.6.158) 25.237 ms 202.97.5.113 (202.97.5.113) 96.008 ms 95.997 ms 8 202.97.12.46 (202.97.12.46) 95.513 ms 202.97.70.21 (202.97.70.21) 26.382 ms 26.359 ms 9 202.97.94.137 (202.97.94.137) 107.839 ms 202.97.94.149 (202.97.94.149) 104.840 ms 104.863 ms 10 202.97.79.166 (202.97.79.166) 127.347 ms 202.97.57.158 (202.97.57.158) 42.017 ms 202.97.79.174 (202.97.79.174) 116.767 ms 11 202.97.34.153 (202.97.34.153) 93.751 ms 202.97.54.13 (202.97.54.13) 124.131 ms 202.97.79.197 (202.97.79.197) 114.649 ms 12 * 218.30.28.30 (218.30.28.30) 63.498 ms * 13 36.110.246.201 (36.110.246.201) 65.738 ms * * 14 220.181.16.86 (220.181.16.86) 72.870 ms 220.181.17.150 (220.181.17.150) 119.422 ms 220.181.182.178 (220.181.182.178) 119.327 ms 15 * 220.181.182.166 (220.181.182.166) 72.147 ms 220.181.17.94 (220.181.17.94) 73.094 ms 16 * * * 17 * * * 18 * * * 19 * * * 20 * * * 21 * * * 22 * * * 23 * * * 24 * * * 25 * * * 26 * * * 27 * * * 28 * * * 29 * * * 30 * * * ``` 如果提示-bash: traceroute: command not found请自行安装相应工具。 ```bash # yum install traceroute ``` 如果使用本地Windows电脑测试到测试机的路由命令则为: ```powershell # tracert 8.8.8.8 ``` 当然也可以使用https://ping.pe/、http://ping.chinaz.com/、http://tool.chinaz.com/speedtest.aspx来进行测试 <h2>其他测试</h2> 看到LemonBench上写的,他的脚本还支持Spoofer测试 。这个测试我没有接触过,有兴趣的可以看到这篇文章写的一些基础解释。http://www.dataguru.cn/thread-487757-1-1.html <h1>常见的测试脚本</h1> <h2>Bench</h2> ```bash wget -qO- bench.sh | bash #或者 curl -Lso- bench.sh | bash ``` 同样(已失效) > ~~wget freevps.us/downloads/bench.sh -O - -o /dev/null|bash > #或者 > curl -Lso- freevps.us/downloads/bench.sh | bash~~ Bench脚本是最基本的一个测试,Bench应该是来源于Apache Bench测试,也就是web性能测试。这个测试脚本还支持IPv6的测试,因为我这里不支持IPv6,所以只有IPv4的测试。 该代码来源于秋水逸冰。freevps.us网站的还是老代码,bench.sh网站则是有颜色显示的代码了,一些功能项也不一样。 秋水逸冰的详细网址为https://teddysun.com/444.html。 <img class="alignnone size-full" src="https://image.nicky1605.net/2019/11/VPS-test-code4.png" width="665" height="731" /> <img class="alignnone size-full" src="https://image.nicky1605.net/2019/11/VPS-test-code2.png" width="665" height="1035" /> 以上两个图,第一个图是秋水逸冰的代码,第二个图是freevps.us的代码。 <h2>UnixBench</h2> ```bash wget --no-check-certificate https://github.com/teddysun/across/raw/master/unixbench.sh chmod +x unixbench.sh ./unixbench.sh #或者 wget http://www.CTOHome.com/linux-vps-pack/unixbench.sh; sh ./unixbench.sh ``` UnixBench是一个类unix系(Unix,BSD,Linux)统下的性能测试工具,一个开源工具,被广泛用与测试linux系统主机的性能,简称UB。Unixbench的主要测试项目有:系统调用、读写、进程、图形化测试、2D、3D、管道、运算、C库等系统基准性能提供测试数据。 第一个网址依然还是秋水逸冰提供的,截至目前用的是UnixBench5.1.3,第二个CTOHome用的还是UnixBench5.1.2。以下测试截图用的是CTOHome测试代码完成的。 秋水逸冰的详细介绍网址为https://teddysun.com/245.html,CTOHome代码的详细介绍网址为http://www.ctohome.com/FuWuQi/c5/172.html。 <img class="alignnone size-full" src="https://image.nicky1605.net/2019/11/VPS-test-code3.png" width="665" height="1054" /> <h2>SuperBench</h2> ```bash wget -qO- git.io/superbench.sh | bash #或者 wget -qO- --no-check-certificate https://raw.githubusercontent.com/oooldking/script/master/superbench.sh | bash ``` SuperBench是老鬼博客在秋水逸冰Bench基础上发展出来的,相对于Bench,除基础信息保留以外,也做了很多的改进:增加了在线时间、TCP加速方式、ASN、主机商、主机位置的检测,同时也将Bench的国外节点大部分更换为国内节点,也有speedtest测速结果分享等功能,更适合国内用户。 该测试代码的介绍有新旧两个版本。https://www.oldking.net/350.html是旧版本,https://www.oldking.net/599.html是新版本。该测试代码支持带参数测试,详细介绍请查看作者的网站。 <img class="alignnone size-full" src="https://image.nicky1605.net/2019/11/VPS-test-code5.png" width="665" height="864" /> <h2>Zbench</h2> ```bash #中文版 wget -N --no-check-certificate https://raw.githubusercontent.com/FunctionClub/ZBench/master/ZBench-CN.sh bash ZBench-CN.sh #英文版 wget -N --no-check-certificate https://raw.githubusercontent.com/FunctionClub/ZBench/master/ZBench.sh bash ZBench.sh ``` Zbench是一款支持全中文界面的脚本程序,专门适合国人测试Linux服务器的,补单加强了到中国的带宽和延迟测试。而且还整合了国内外的多个节点测速,当然也有英文版,如果系统中不支持中文的话可以使用英文版查看。脚本由主机博客和kirito,基于Oldking大佬的 SuperBench,然后加入Ping以及路由测试的功能,还能生成html测评报告,用来分享给他人。先要输入你的服务器提供商,然后要确认你所在的IP地址,输入y确认,就开始安装依赖程序及跑脚本了。html测评报告范本请参考https://www.zhujiboke.com/zbench-example.html。 项目地址:https://github.com/FunctionClub/ZBench <img class="alignnone size-full" src="https://image.nicky1605.net/2019/11/VPS-test-code6.png" width="665" height="997" /> <h2>LemonBench</h2> LemonBench工具(别名LBench、柠檬Bench),是一款针对Linux服务器设计的服务器性能测试工具。通过综合测试,可以快速评估服务器的综合性能,为使用者提供服务器硬件配置信息。该测试代码来源于极光星空,测试内容包括系统信息收集、网络信息收集、流媒体解锁测试 (Beta)、系统性能测试、Speedtest网速测试、路由追踪测试 (回程测试)等,测试结果相对于SuperBench,结果更加准确,支持将测试结果的txt文件保存在本地外同时也支持将结果默认分享到外部网址中。详细介绍请访问https://blog.ilemonrain.com/linux/LemonBench.html。我本次的详细测试结果分享在https://paste.ubuntu.com/p/qd3pg48cb7/,结果默认2年,保存至2020年10月30日。 LemonBench目前涵盖了如下测试: <ul> <li><strong>服务器基础信息</strong>?(CPU信息/内存信息/Swap信息/磁盘空间信息/网络信息等)</li> <li><strong>流媒体解锁测试</strong>?(目前支持HBO Now/动画疯/B站港澳台/B站台湾限定)</li> <li><strong>系统性能测试 (CPU/内存/磁盘)</strong></li> <li><strong>Speedtest网速测试</strong>?(本地到最近源及国内各地域不同线路的网速)</li> <li><strong>路由追踪测试</strong>?(追踪到国内和海外不同线路的路由信息)</li> </ul> <strong>快速测试</strong> ```bash ###curl工具### curl -fsSL https://ilemonrain.com/download/shell/LemonBench.sh | bash -s fast ###wget工具### wget -qO- https://ilemonrain.com/download/shell/LemonBench.sh | bash -s fasth ``` <strong>完整测试</strong> ```bash ###curl工具### curl -fsSL https://ilemonrain.com/download/shell/LemonBench.sh | bash -s full ###wget工具### wget -qO- https://ilemonrain.com/download/shell/LemonBench.sh | bash -s full ``` <img class="alignnone size-full" src="https://image.nicky1605.net/2019/11/VPS-test-code7.png" width="676" height="632" /> <h2>uPing</h2> uPing是一个24小时监测VPS延迟的工具,为了保证测试结果,建议测试前先安装Screen,在screen下进行测试,以免造成服务器断线后测试结果失败。 ```bash wget -N --no-check-certificate https://raw.githubusercontent.com/FunctionClub/uPing/master/uping.py ``` <img class="alignnone size-full" src="https://image.nicky1605.net/2019/11/VPS-test-code1.png" width="619" height="546" /> <h2>内存检测脚本</h2> 检测VPS真实可分配内存的小工具,适用于检测VPS超售情况。本程序检测的可分配内存指的是用户使用时最大能占用的内存量。 ```bash #CentOS / RHEL yum install wget -y yum groupinstall "Development Tools" -y wget https://raw.githubusercontent.com/FunctionClub/Memtester/master/memtester.cpp gcc -l stdc++ memtester.cpp ./a.out #Ubuntu / Debian apt-get update apt-get install wget build-essential -y wget https://raw.githubusercontent.com/FunctionClub/Memtester/master/memtester.cpp gcc -l stdc++ memtester.cpp ./a.out ``` 测试结果类似如下,因为我前面数据量比较大,我就不详细贴了。 ```bash # ... 37320MB allocated 37330MB allocated 37340MB allocated 37350MB allocated 37360MB allocated 37370MB allocated 37380MB allocated 37390MB allocated 37400MB allocated 37410MB allocated 37420MB allocated 37430MB allocated 37440MB allocated 37450MB allocated Killed # ``` <h2>回程路由测试</h2> 从你的 Linux(X86/ARM)/Mac/BSD 系统环境下发起 traceroute 请求,附带链路可视化,兼容性更好,支持 JSON 格式 ```bash #下载 wget https://cdn.ipip.net/17mon/besttrace4linux.zip #解压 unzip besttrace4linux.zip #使用 ./besttrace -q 1 202.102.192.68 # 202.102.192.68为安徽电信的DNS地址,用户可以更换为自己的地址 ``` 测试结果为: ```bash ./besttrace -q 1 202.102.192.68 traceroute to 202.102.192.68 (202.102.192.68), 30 hops max, 60 byte packets 1 140.91.214.7 0.19 ms AS31898 韩国 首尔 oracle.com 2 115.92.252.66 0.64 ms AS3786 韩国 京畿道 uplus.co.kr 3 115.92.252.65 1.29 ms AS3786 韩国 京畿道 uplus.co.kr 4 1.213.150.113 1.34 ms AS3786 韩国 首尔 uplus.co.kr 5 1.208.144.153 1.89 ms AS3786 韩国 首尔 uplus.co.kr 6 1.208.147.118 1.98 ms AS3786 韩国 首尔 uplus.co.kr 7 1.213.105.46 25.31 ms AS3786 中国 上海 uplus.co.kr 8 202.97.70.17 24.60 ms * 中国 上海 电信 9 202.97.33.189 25.76 ms AS4134 中国 上海 电信 10 202.97.57.26 42.78 ms AS4134 中国 上海 电信 11 202.97.96.182 36.50 ms AS4134 中国 安徽 合肥 电信 12 202.97.18.225 109.27 ms AS4134 中国 安徽 合肥 电信 13 cache2.ahhfptt.net.cn (202.102.192.68) 46.86 ms AS4134 中国 安徽 合肥 电信 # ``` 另外跟大家分享一下看到的新闻——Linux 引入自动化测试平台 KernelCI:https://www.cnbeta.com/articles/tech/904413.htm 参考网址: Leonn的博客/LemonBench: Linux服务器综合测试工具? https://liyuans.com/2019/01/lemonbench.html 羊毛党之家/VPS常用测试脚本合集? https://yangmaodang.org/5948.html 51Testing软件测试网/Linux查看CPU信息、机器型号等硬件信息 http://www.51testing.com/html/38/225738-210333.html 最后修改:2025 年 03 月 10 日 © 允许规范转载 赞 7 如果觉得我的文章对你有用,请随意赞赏
此处评论已关闭