要想读懂本文,你需要:

  1. 了解阿里云等云服务的基本 WEB 界面操作;
  2. 了解 Windows 操作系统的中阶操作;
  3. 了解基础的软件开发术语。

前言

本文面向的是需要使用高性能计算设备,但是身边只有低性能PC机的群体。最近由于 NCP 疫情,出不了门,返回不了工作地,想必不少人的高性能计算设备(好电脑)没带回家,但是,肯定也有人跟我一样,受不了笔记本电脑的龟速。

我的配置需求是,能够流畅运行安装多个插件的 VSCode、能够同时打开数十个 Firefox 标签页、能够快速完成 node 项目构建。但是我身边只有一台五年前的 intel NUC (i3-4010U, 4GB RAM)。

在详细了解了各大云服务商的云计算平台后,个人排除了华为云(弹性计算服务价格较高、云桌面售罄)、腾讯云(云计算服务类别过少)、天翼云(云桌面需要安装指定 APP 且性能不满足要求),决定使用阿里云的云计算服务。

使用阿里云初步搭建云桌面

经过权衡,我决定使用阿里云 ESC “抢占式实例”付费模式下的“突发性能实例”。为什么这么选?

因为没钱……

开玩笑的。我觉得这是我需求下的合理选择方式。为什么选择“抢占式实例”?首先,我们复工的时间还是个未知数,而且可能随时就不想用这个云桌面了。“抢占式实例”是按量付费的一种,也就是,用多长时间给多少钱。并且,相对于按量付费,有相当大的折扣。“抢占式实例”的最大问题在于,这是竞价模式。也就是说,当别人出价比你高的时候,或者阿里云供给紧张而你又给钱给得不够的时候,它会自动帮你释放。我了解的是,在释放前5分钟,阿里云会有提醒。为了尽量避免实例被自动释放,我选择了“使用自动出价”,也就是说,系统会每小时自动判断当前时间该实例的价格,并选择一个高于市场均价的价格进行付费。但是,这并不是万无一失,阿里云在供给紧张的时候,仍然会将实例释放。所以,在处理重要数据时,应该随时备份。我的处理方法是,随时将代码提交到我的 Git 仓库。

Snipaste_2020-02-09_17-32-20.png

Snipaste_2020-02-09_17-34-24.png

如果要保证不会被释放,建议使用包年包月制。

为什么使用“突发性能实例”?因为个人电脑与服务器不同。个人电脑不会时时刻刻占用大量 CPU,CPU使用率是离散化的,所以 CPU 的使用积分,我觉得是用不完,25% 的使用基线,完全够用。

Snipaste_2020-02-09_17-34-05.png

哎,目前好像国内也只有阿里云能做出“抢占式实例”和“突发性能实例”。

其他的配置就简单了,区域选择靠近你的(不同地区的价格好像差别挺大),镜像选择 Windows Server,另外,SSD 是很关键的,我觉得现在已经没有多少人能忍受机械硬盘的龟速了。

Snipaste_2020-02-09_18-03-26.png

Snipaste_2020-02-09_17-36-25.png

在下一个页面配置网络,为了保证远程桌面流畅,按使用流量计费,带宽拉满!

Snipaste_2020-02-09_17-45-57.png

最终,我的配置如下:

  • 4核16GB,25% 平均CPU 计算性能;
  • 100Mbps 按流量付费网络;
  • 80GB SSD;
  • Windows Server 2019 数据中心版;

这样的话,实例价格为 0.412 元每小时(我选的是上海区的,其他区的可能更便宜,在深夜、早上也会更便宜),流量费用为 0.8 元每 GB。算一算,一天大概要 10 元,一个月大概要 300 元,是不是还是有点贵?没关系,继续看。

Snipaste_2020-02-09_17-36-50.png

价格的进一步优化

现在我已经启动了这个实例:

Snipaste_2020-02-09_18-21-04.png

我还想更便宜。

与基友合租一台机器

我想你一定不可能一天24小时都在用它,用它的时候也一定不会一直占满 CPU。关键是,我们这是 Windows Server,跟家庭版、专业版、企业版什么的都不一样,它支持多个用户同时登陆!所以,我觉得,如果有信任的人选,完全可以合租。

关机时选择“停机不计费”

阿里云真的是神奇的存在,在 ECS 管理界面,选择停机,竟然可以停机不收费!

图片1.png

实际上也不是完全不收费,硬盘和弹性公网 IP 仍然是收费的。但是,与停机后仍然保留CPU、内存相比,价格大幅降低。也就是说,我们在每天晚上,完全可以关机并选择不收费,可以节约一大笔。如果想要一直使用同一个 IP,可以选择绑定弹性公网 IP。

依据个人需求选择实例规格

我觉得,可能 8GB 内存已经够我用了,另外,青岛区的实例好像每小时能更便宜一毛钱……

云桌面体验

在体验之前,再确保一下:该实例网络安全组,需要放通 3389 端口(TCP 和 UDP 都要放通)。

打开本地的远程桌面客户端试试吧!

Snipaste_2020-02-09_18-38-25.png

网络方面,我是江苏电信网络,连接上海区的 ECS,延迟很小,可以忽略,而且画质很清晰,暂时没有什么画面卡顿。至于下行网络,由于这是阿里云的专线,比家用运营商网络好太多,下载速度嗖嗖的,不管国内外。

计算性能方面,在我本地机器上,VSCode 的 Python 插件,进行一次文件错误扫描需要 5 秒左右,而这台云桌面,只要 1 秒。

操作系统方面,Windows Server 比 Windows PC 简洁很多,没有乱七八糟的服务,但也没有缺少日常开发所需的重要组件。可能会有点不一样,但是如果出问题,一般能很快解决。比如我在安装 Python 时出错,Google 一下便知要直接以管理员身份打开。

以下截图自我的云桌面。

Screenshot _1_.png

Screenshot _3_.png

Screenshot _4_.png

Screenshot _2_.png

提高体验的可选项

  1. 关闭 Windows 的过渡动画,这在远程桌面上会导致卡顿,且会消耗大量的流量费;
  2. 安全起见,重新创建一个管理员用户并禁用 Administrator 用户;
  3. 用好各种云同步功能,比如 Git 仓库、浏览器云同步、云盘等。

实测价格

我正常使用了一天,晚上停机不收费,消费如下:

Snipaste_2020-02-09_18-54-30.png

Snipaste_2020-02-09_18-55-07.png

可见,我一天大致消费5元。

后记

确实不是很贵,可行性也很高。假如有模型渲染需求,甚至可以绑定个显卡(

抢占式实例也不是很可怕吧?我的实例目前没被回收。

另外,有人想跟我合租吗?