玩点不一样的云服务器

众所周知,绝大部分云服务器都是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
应该是免费参与的,至于实验的手册要求,那就可以不用管了,我们主要是想来玩玩鲲鹏计算而已,但是实验时间只有一个半小时,要抓紧时间哦。
进入实验后,当他给你实验账号后就可以开始操作了。

开通鲲鹏计算

注意⚠️:这个步骤请使用云实验提供的账号进行资源创建,如果使用个人账号创建会导致费用产生!
记录下给的实验账号和密码:
Screenshot_20250324_115350.png
然后打开浏览器的隐私窗口进行登陆,选择IAM账户登陆
Screenshot_20250324_115650.png
登陆后,点击创建弹性云服务器ECS:
Screenshot_20250324_115819.png
购买注意事项:

  • 购买时选择按需付费
  • 配置建议选鲲鹏通用计算增强型kc1kc1.xlarge.2 4vCPUs 8GiB,如果大于这个配置创建后会被删机器。
  • 系统选择Debian
  • 公网访问选择按流量计费,带宽选择20M大于这个带宽也会被删机器。
  • 设置密码

然后就可以点击立即购买了:
Screenshot_20250324_120237.png
Screenshot_20250324_120252.png
Screenshot_20250324_120320.png
购买过几分钟,如果没有在实验界面弹出删除资源的话,那就可以开玩了。
如果创建不合适Be Like:
Screenshot_20250324_121310.png

开始试玩

给的系统镜像是Debian 10,使用neofetchlscpu查看没有具体的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-1220v2events 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:~# 

还是挺有意思的,感兴趣的话可以去玩玩。