作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。
数年电商行业从业经验,AWS/阿里云资深使用用户
,历任核心研发工程师,项目技术负责人。
欢迎 点赞✍评论⭐收藏
随着云计算时代的进一步深入,越来越多的中小企业企业与开发者需要一款简单易用、高能高效的云计算基础设施产品来支撑自身业务运营和创新开发。基于这种需求,华为云焕新推出华为云云服务器实例新品。这边文章由我带大家走一遍华为云云耀云服务器L实例带宽,磁盘,CPU,内存以及控制台监控的测试。
接着上一篇 华为云云耀云服务器L实例评测|从服务器购买到一站式搭建Presta Shop跨境商城完整教学 继续讲。
根据自己多年经验,一下就找到了是Nginx
作为Presta Shop
商城的第一道关卡,然后通过proxy_pass代理到docker挂出来的端口9001
上面。现在因为要测试带宽,所以最好得找一个下载文件的场景最合适。我们一步一步来实现这个场景。
执行如下命令,并在下图所在的位置放入下面的代码。
vim /etc/nginx/conf.d/default.conf
location /static {
root /var/web/data;
}
表示访问路径匹配到static
的时候,把根目录重置到/var/web/data
这个目录,而不要再代理到9001
端口,因为静态文件最好测试下载。这块不懂的同学,可以前去的的文章找找相关知识补一下,如果要做web
开发,Nginx是必须要学习的。
生成一个20MB
大小的文件,可以使用Python
的os
和random
模块来实现。主要是等会儿测试下载这个文件。下面是一个生成的代码,当然你也可以随便找一个文件,我服务器没有比较适合的,写一段代码生成一下也不麻烦:
import os
import random
def generate_file(file_path, size):
with open(file_path, 'wb') as f:
f.write(os.urandom(size))
file_path = 'path_to_file/file.txt' # 要生成的文件路径
size = 20 * 1024 * 1024 # 文件大小,单位为字节
generate_file(file_path, size)
上述代码中,首先定义了一个generate_file
函数,该函数接受两个参数:file_path
表示要生成的文件路径,size
表示文件大小(单位为字节)。然后运行以上代码即可生成一个20MB大小的文件。效果如下图,把file.txt
拷贝到Nginx配置的/var/web/data/static
目录
我找了一台阿里云的服务器,执行下面的命令就可以下载文件了,因为上一篇文章我们已经把http端口服务这些配置好了。然后下面的图片展示了下载情况描述。
curl -o /dev/null http://124.70.177.136/static/file.txt
通过下图可以看到Speed大概是435k,这个速度还是不错的,是在标准带宽3M以上。当然实际传输的时候不仅仅说带宽高就快,还有很多因素,比如说网络的通畅度啥的,带宽只是决定了最大的数据传输能力,不过这个表现还是不错了。
这个时候我们看一下控制台实例详情页的监控数据,带宽也是明显发生了变化,这点也是要测试一下的,因为很多时候运维会比较依赖于控制台这个监控,如果这里出现异常,是非常不利于项目运维工作分析的。虽然监控出现了带宽波动,不过好像80KB/s是不是少了点哦。
还有这里的监控有点小bug,这个刷新按钮多点了几次下面很多监控块就出现了无数据的情况,还有就是监控延迟有时候达到了6-7分钟左右,是否还能把这个时间控制的缩短一点。
要测试磁盘的读写速度,可以使用Python
的time
模块来计算读写操作所需的时间,并将字节数转换为MB
。我这里用下面的代码生成test_file.bin
这个文件,用于测试磁盘的读写速度:
import time
def test_disk_speed(file_path):
# 写入测试数据
start = time.time()
with open(file_path, 'wb') as f:
# 写入100MB的数据
data = bytearray(102400 * 1024)
f.write(data)
end = time.time()
write_speed = 1 / (end - start)
# 读取测试数据
start = time.time()
with open(file_path, 'rb') as f:
data = f.read()
end = time.time()
read_speed = 1 / (end - start)
# 输出结果
print(f"写入速度: {write_speed:.2f} MB/s")
print(f"读取速度: {read_speed:.2f} MB/s")
# 调用函数进行测试
file_path = 'test_file.bin' # 测试文件路径
test_disk_speed(file_path)
在上述代码中,首先通过open
函数打开文件,并使用write
方法向文件中写入100MB大小的数据,然后记录写入所需的时间。接着,再次打开文件,使用read
方法读取文件内容,并记录读取所需的时间。最后,根据时间计算出写入和读取的速度,并以MB/s为单位进行输出。下面给出华为云云耀云服务器L实例于几乎同配置的阿里云实例进行数据比较。
华为云云耀云服务器L实例:
阿里云同配置实例:
从上面的结果看,华为云云耀云服务器L实例表现稍微好一点,但是这不是绝对的,因为阿里云这个服务器一个是它是很多年前就买好的了,可能底层的磁盘硬件不太一样,另外可能当时还有其他服务在运行,不过至少说明L实例不是很拉垮。
这是一个比较常用的标准写测试命令,通过生成1GB的文件来测试文件生成速度。同样是华为云云耀云服务器L实例于几乎同配置的阿里云实例进行数据比较。
time dd if=/dev/zero of=/data/test.dbf bs=1024k count=1024 oflag=direct,nonblock
华为云云耀云服务器L实例:
阿里云同配置实例:
这是一个比较常用的标准读测试命令,通过读取1GB的文件来测试文件生成速度。同样是华为云云耀云服务器L实例于几乎同配置的阿里云实例进行数据比较。
time dd if=/data/test.dbf of=/dev/null bs=1024k count=1024 iflag=direct,nonblock
华为云云耀云服务器L实例:
通过dd测试华为云云耀云服务器L实例和阿里云同配置实例比较,速度差不多,但是华为云云耀云服务器L实例不拉垮,一点都不拉垮。
上图是控制台实例监控对于磁盘的监控反馈,还是较为准确的给出了在对应时段的磁盘读写情况。
这里我们使用SysBench来做CPU性能测试,关于SysBench可以去看看我之前的文章。
安装比较简单,执行命令 apt-get insall sysbench
,就可以安装成功了,效果见下图。
检测是否安装成功,通过--version
命令来查看。
测试案例为,使用4个线程进行计算,计算范围是从1到20000的所有质数。命令如下:
sysbench --test=cpu --num-threads=4 --cpu-max-prime=20000 run
阿里云同实例(单核):
在这个质数的测试案例中,L实例耗时将近10秒,阿里云机器26秒,但是阿里云机器配置低一点,总的来说还是表现不错的。
看后台监控,这段事件的CPU监控曲线确实也出现了波动。控制台监控反馈正常。
通过SysBench执行下面的命令来进行测试,--threads=4
指定使用4个线程进行测试,--memory-block-size=1K
指定每个块的大小为1KB
,--memory-total-size=1G
指定总内存大小为10GB,--memory-oper=read
指定进行读取操作。
sysbench memory --threads=4 --memory-block-size=1K --memory-total-size=1G --memory-oper=read run
华为云云耀云服务器L实例(2G):
阿里云同实例(1G):
使用以下命令进行写测试:
sysbench --test=memory --memory-block-size=1K --memory-total-size=10G --num-threads=16 run
华为云云耀云服务器L实例(2G):
阿里云同实例(1G):
通过上述执行情况来看,华为云云耀云服务器L实例的内存表现也不算差。
今天关于带宽,磁盘,CPU,内存以及控制台监控测试就到这里了,很荣幸收到CSDN
和华为云
邀请参与本次评测,如果后面有机会将分享更多的评测内容。云服务云能力是当今信息化时代不可或缺的东西,云服务的稳定性
,安全性
,高性能
,易用性
是所有云服务商共同追求的目标,也是万千开发者、合作商、客户的共同期待。 希望华为云越来越好,希望中国的云事业更上一层楼,我作为一个普通开发者,也将不断参与与见证这一伟大的技术探索与变革。
今天的内容就到这里,我们下期再会。