玩点不一样的云服务器
众所周知,绝大部分云服务器都是X86架构,这次我们来玩点不一样的——ARM架构云服务器。
但是由于软件生态和适配以及兼容性原因,我个人很看扁ARM架构,原因有以下几点:
- 封闭:很多ARM架构的设备有
Bootloader
锁,你无法给他轻易更换操作系统。 - 不规范:ARM公版只是处理器的内核,外围设计都是各个公司各自为政,甚至各个设备各自为政。不能做到X86设备那样统一标准,系统通用。
- 设计不合理:没有传统的BIOS,固件存储在
eMMC
或者UFS
中,和操作系统混为一谈,只要清空了闪存设备立刻变砖,这导致折腾ARM设备翻车概率高,代价大。而X86清空硬盘并不会变砖。
基于以上三点,我个人并不喜欢ARM,甚至讨厌这玩意。
主流,甚至绝大部分ARM设备就是这个德行,恶心!
别跟我说什么开发板之类的,而且就算是开发板,也不是统一规范的,没有一个ARM的系统安装包,能通刷到全部开发板的,也就是做不到X86那样的兼容性。
这也是为什么二手的ARM架构设备价格低廉,但还无人问津,而X86设备则有很多人购买的原因。
但是,话说回来,既然说要玩一下ARM,那还是回归正题,继续我们的“品屎”之旅。
这次我们要品的就是——华为云鲲鹏计算
相比于那些狗屎一样的封闭和不标准的ARM设备(例如手机,平板),华为云的鲲鹏计算还是好不少的。虽然最终给用户端呈现的是虚拟机,但是仅仅是架构不一样,和常规X86虚拟机还是挺像的,系统也是可以随便换,这个我觉得还是挺可以的。
那帮狗屎手机平板厂商可以学学,别让手机和平板一旦淘汰后就成了电子垃圾,毫无用处。如果可以做成统一规范标准的话,那淘汰下来的手机和平板就可以刷Linux系统去干别的事情,减少资源浪费和环境污染。
接下来我就来说说怎么白嫖一个半小时的鲲鹏云计算试玩时间。
开始白嫖
参加华为云云实验
点击下面这个链接参与华为云的云实验:
https://lab.huaweicloud.com/experiment-detail_2327
应该是免费参与的,至于实验的手册要求,那就可以不用管了,我们主要是想来玩玩鲲鹏计算而已,但是实验时间只有一个半小时,要抓紧时间哦。
进入实验后,当他给你实验账号后就可以开始操作了。
开通鲲鹏计算
注意⚠️:这个步骤请使用云实验提供的账号进行资源创建,如果使用个人账号创建会导致费用产生!
记录下给的实验账号和密码:
然后打开浏览器的隐私窗口进行登陆,选择IAM账户登陆:
登陆后,点击创建弹性云服务器ECS:
购买注意事项:
- 购买时选择按需付费
- 配置建议选鲲鹏通用计算增强型kc1
kc1.xlarge.2 4vCPUs 8GiB
,如果大于这个配置创建后会被删机器。 - 系统选择
Debian
- 公网访问选择按流量计费,带宽选择
20M
大于这个带宽也会被删机器。 - 设置密码
然后就可以点击立即购买了:
购买过几分钟,如果没有在实验界面弹出删除资源的话,那就可以开玩了。
如果创建不合适Be Like:
开始试玩
给的系统镜像是Debian 10
,使用neofetch
和lscpu
查看没有具体的CPU信息:
root@nekopara:~# neofetch
_,met$$$$$gg. root@nekopara
,g$$$$$$$$$$$$$$$P. -------------
,g$$P" """Y$$.". OS: Debian GNU/Linux 10 (buster) aarch64
,$$P' `$$$. Host: OpenStack Nova 13.2.1-20240729164034_d57f9f6
',$$P ,ggs. `$$b: Kernel: 4.19.0-8-arm64
`d$$' ,$P"' . $$$ Uptime: 4 mins
$$P d$' , $$P Packages: 664 (dpkg)
$$: $$. - ,d$$' Shell: bash 5.0.3
$$; Y$b._ _,d$P' Terminal: /dev/pts/0
Y$$. `.`"Y$$$$P"' CPU: (4) @ 2.600GHz
`$$b "-.__ GPU: Red Hat, Inc Virtio GPU
`Y$$ Memory: 185MiB / 7976MiB
`Y$$.
`$$b.
`Y$$b.
`"Y$b._
`"""
root@nekopara:~# lscpu
Architecture: aarch64
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor ID: 0x48
Model: 0
Stepping: 0x1
CPU max MHz: 2600.0000
CPU min MHz: 2600.0000
BogoMIPS: 200.00
L1d cache: 64K
L1i cache: 64K
L2 cache: 512K
L3 cache: 32768K
NUMA node0 CPU(s): 0-3
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm
root@nekopara:~#
CPU跑分:
root@nekopara:~# sysbench cpu --cpu-max-prime=20000 --threads=4 run
sysbench 1.0.18 (using system LuaJIT 2.1.0-beta3)
Running the test with following options:
Number of threads: 4
Initializing random number generator from current time
Prime numbers limit: 20000
Initializing worker threads...
Threads started!
CPU speed:
events per second: 5274.94
General statistics:
total time: 10.0008s
total number of events: 52760
Latency (ms):
min: 0.75
avg: 0.76
max: 15.99
95th percentile: 0.77
sum: 39986.34
Threads fairness:
events (avg/stddev): 13190.0000/22.33
execution time (avg/stddev): 9.9966/0.00
root@nekopara:~#
不得不说,性能还是挺不错的。作为参照,我家里云CPU是Intel(R) Xeon(R) E3-1220v2
,events per second
的分数是1433
,而阿里云的轻量双核只有600
出头,甚至高峰期有时候还会掉到590
左右,但是华为云的轻量双核居然可以达到2075
,宿主机CPU是Intel(R) Xeon(R) Gold 6348
,非常离谱。
更换系统继续玩
我打算用一键重装脚本把系统换成Alpine Linux。
cd /
wget https://raw.githubusercontent.com/leitbogioro/Tools/master/Linux_reinstall/InstallNET.sh
chmod +x ./InstallNET.sh
./InstallNET.sh -alpine
安装完成后,root的默认密码是:LeitboGi0ro
。要马上更改,避免被他人非法登陆。
然后要降级到稳定版,因为默认安装的是测试版:
先修改镜像源文件,改成你需要的版本,并且清除缓存:
nano /etc/apk/repositories
rm -rf /var/cache/apk/*
例如降级到v3.20
版本,文件内容就改成:
https://mirrors.aliyun.com/alpine/alpine/v3.20/main
https://mirrors.aliyun.com/alpine/alpine/v3.20/community
然后进行版本切换:
apk update
apk upgrade --available
降级完成后,reboot
重启即可。
安装了软件包后,我们来看看系统信息,这时CPU的型号就出来了,但是neofetch
并没有显示CPU型号,fastfetch
显示了,而且看到虚拟显卡RedHat
的,可以断定用的应该是KVM
。CPU型号是TaiShan-v110 + 1.0
:
nekopara:~# fastfetch
.hddddddddddddddddddddddh. root@nekopara
:dddddddddddddddddddddddddd: -------------
/dddddddddddddddddddddddddddd/ OS: Alpine Linux 3.20.6 aarch64
+dddddddddddddddddddddddddddddd+ Host: OpenStack Nova (13.2.1-20240729164034_d57f9f6)
`sdddddddddddddddddddddddddddddddds` Kernel: Linux 6.6.83-0-virt
`ydddddddddddd++hdddddddddddddddddddy` Uptime: 44 seconds
.hddddddddddd+` `+ddddh:-sdddddddddddh. Packages: 168 (apk)
hdddddddddd+` `+y: .sddddddddddh Shell: sh
ddddddddh+` `//` `.` -sddddddddd Display (Virtual-1): 1024x768
ddddddh+` `/hddh/` `:s- -sddddddd Terminal: /dev/pts/0
ddddh+` `/+/dddddh/` `+s- -sddddd CPU: TaiShan-v110 + 1.0 (4)
ddd+` `/o` :dddddddh/` `oy- .yddd GPU: RedHat Virtio 1.0 GPU
hdddyo+ohddyosdddddddddho+oydddy++ohdddh Memory: 225.14 MiB / 7.75 GiB (3%)
.hddddddddddddddddddddddddddddddddddddh. Swap: Disabled
`yddddddddddddddddddddddddddddddddddy` Disk (/): 341.25 MiB / 38.58 GiB (1%) - ext4
`sdddddddddddddddddddddddddddddddds` Local IP (eth0): 192.168.0.72/24 *
+dddddddddddddddddddddddddddddd+ Locale: C.UTF-8
/dddddddddddddddddddddddddddd/
:dddddddddddddddddddddddddd: ████████████████████████
.hddddddddddddddddddddddh. ████████████████████████
nekopara:~# neofetch
.hddddddddddddddddddddddh. root@nekopara
:dddddddddddddddddddddddddd: -------------
/dddddddddddddddddddddddddddd/ OS: Alpine Linux v3.20 aarch64
+dddddddddddddddddddddddddddddd+ Host: OpenStack Nova 13.2.1-20240729164034_d57f9f6
`sdddddddddddddddddddddddddddddddds` Kernel: 6.6.83-0-virt
`ydddddddddddd++hdddddddddddddddddddy` Uptime: 47 secs
.hddddddddddd+` `+ddddh:-sdddddddddddh. Packages: 168 (apk)
hdddddddddd+` `+y: .sddddddddddh Shell: sh
ddddddddh+` `//` `.` -sddddddddd Resolution: 1024x768
ddddddh+` `/hddh/` `:s- -sddddddd Terminal: /dev/pts/0
ddddh+` `/+/dddddh/` `+s- -sddddd CPU: (4)
ddd+` `/o` :dddddddh/` `oy- .yddd Memory: 93MiB / 7932MiB
hdddyo+ohddyosdddddddddho+oydddy++ohdddh
.hddddddddddddddddddddddddddddddddddddh.
`yddddddddddddddddddddddddddddddddddy`
`sdddddddddddddddddddddddddddddddds`
+dddddddddddddddddddddddddddddd+
/dddddddddddddddddddddddddddd/
:dddddddddddddddddddddddddd:
.hddddddddddddddddddddddh.
nekopara:~# lscpu
Architecture: aarch64
CPU op-mode(s): 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Vendor ID: HiSilicon
BIOS Vendor ID: QEMU
Model name: TaiShan-v110
BIOS Model name: 1.0 CPU @ 2.0GHz
BIOS CPU family: 1
Model: 0
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
Stepping: 0x1
BogoMIPS: 200.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm
Caches (sum of all):
L1d: 256 KiB (4 instances)
L1i: 256 KiB (4 instances)
L2: 2 MiB (4 instances)
L3: 32 MiB (1 instance)
NUMA:
NUMA node(s): 1
NUMA node0 CPU(s): 0-3
Vulnerabilities:
Gather data sampling: Not affected
Itlb multihit: Not affected
L1tf: Not affected
Mds: Not affected
Meltdown: Not affected
Mmio stale data: Not affected
Reg file data sampling: Not affected
Retbleed: Not affected
Spec rstack overflow: Not affected
Spec store bypass: Vulnerable
Spectre v1: Mitigation; __user pointer sanitization
Spectre v2: Not affected
Srbds: Not affected
Tsx async abort: Not affected
nekopara:~#
然后再试试看跑个分,发现更换系统后性能下降了。个人推断应该是华为云对提供的Debian 10
镜像进行了对应的优化。
nekopara:~# sysbench cpu --cpu-max-prime=20000 --threads=4 run
sysbench 1.0.20 (using system LuaJIT 2.1.1710398010)
Running the test with following options:
Number of threads: 4
Initializing random number generator from current time
Prime numbers limit: 20000
Initializing worker threads...
Threads started!
CPU speed:
events per second: 4739.01
General statistics:
total time: 10.0004s
total number of events: 47399
Latency (ms):
min: 0.83
avg: 0.84
max: 2.58
95th percentile: 0.84
sum: 39987.85
Threads fairness:
events (avg/stddev): 11849.7500/91.67
execution time (avg/stddev): 9.9970/0.00
nekopara:~#
还是挺有意思的,感兴趣的话可以去玩玩。