前言
我是2015年加入的阿里云开发者论坛当版主的,到2017年遇到比较多的问题就是很多新手用户并不会操作 ECS 了,很多对云计算产品不理解的用户甚至还会误解为什么会有一个买了却不能开箱即用的产品。在 2013年前后的时候我记得是那时候万网推出了 轻云服务器 然而仅仅只是实现了资源独享的虚拟主机而已,而云市场服务商提供的应用镜像质量也是良莠不齐。
很显然目前的痛点:
- 就是买了 IaaS 却不会用
- PaaS、SaaS 的自由度不高
- ECS 附加功能太多还用不到,价格贵
介绍
所以就有了轻量应用服务器(轻量应用服务器),基于 ECS 发展出的轻量服务器,完美解决了上述的三个痛点:
- 轻量应用服务器 是 IaaS 产品但是提供定制化应用镜像且有可视化控制台可以操作,不怕新手不会用。轻量应用服务器 在提供
- 提供定制化应用镜像的同时,用户依旧可以拥有 root 权限,对系统进行个性化操作
- 精简了一些 ECS 的功能,比如说安骑士。把安全组的操作也做了适当减法更适合用户操作
不过别看多了轻量两个字性能就会不如 ECS,在 CPU 和 磁盘性能上均没有缩水,后面会有测评。
了解产品
优点
控制台
轻量应用服务器
ECS
那么从控制台的对比上,ECS 是把所有的内容都告诉用户你的地域、操作系统、标签等等,但是新手看了难免一头雾水。而 轻量应用服务器 则做了减法,让控制台变得更加的直观简介,只告诉你重要的信息。
站在新手视角肯定是 轻量应用服务器 更简洁更舒服,站在我的角度么,我配置好服务器基本上很少会来看一下 ECS 的控制台,但一回来肯定是需要一些信息的,那么 ECS 能告诉我越多肯定越好。
应用镜像
应用镜像像 WordPress、phpwind 其实都是基于 LAMP 镜像运行的,而 轻量应用服务器 提供的 LAMP 细节好评就是:php 是通过 php-fpm 方式运行的,而不是 mod_php,而且 MySQL 也是 5.7 版本的不是说万年 5.1 或者 5.5,能支持更多的 PHP 程序。在创建虚拟主机绑定域名商相较于一键包配合图形化控制台的确更加好用。
功能
轻量应用服务器 在功能上肯定是更讨喜的,安装应用镜像基本上能做到开箱即用,三大金刚 Apache Httpd、PHP、MySQL 都会默认安装好,而且添加域名、设置 HTTPS 等操作都是一键式的,极大得降低了 HTTPS 入门门槛,而且 HTTPS 的配置跑分是 A 哟,为了照顾新手不会使用 HSTS 所以没开,不然跑到 A+ 肯定是妥妥的。
ECS 能就只有空白的系统镜像,任何环境都是需要用户自行安装的,这在一定程度上增加了用户使用的学习成本。而 ECS 更多体现的就是专业性了,虽然复杂但是十分强大的安全组、弹性IP、均衡负载等等。
基础运维
比如说 ECS 控制台操作起来也更加的方便,点击一下就能远程连接了,操作的过程中也支持命令的右键复制和粘贴,也大大降低了用户使用终端控制的学习成本,不然还要下个 Putty 或者 Xshell 啥的也是麻烦。 然后默认只支持 密钥 登录 Linux,这个也是好评,不用密码当然更安全。
同样不考虑使用 Putty 或者 Xshell 等 OpenSSH 连接工具的话,ECS控制台的远程终端控制实在是难用,不过借助 DMS 产品倒是能扩展使用的灵活性。
防火墙
轻量的防火墙设置同 ECS 的安全组相比很简单直观更适合新手的使用,没有一些非常复杂的设置,新手看到 udp、tcp 真的是头都大了额,如果新手看教程的话,一般只会说 “记得一定要开启443端口才能使用HTTPS” 这样的话,但是一看到 ECS 又是 TCP 又是 UDP,而且端口还要写成 443/443
的形式,直接就是一个头两个大了。
缺点
无法满足企业特性
轻量应用服务器有轻量两个字,意味着其无法持续进行高负载运行(即 CPU 长时间高负载占用),如果我们要利用 轻量应用服务器 来进行持续的渲染、转码、机器学习等持续高负载操作那么就不可以了,也不支持 Nvme 这样的超高性能的 SSD,这对于读写敏感的操作就不好了。
三大金刚的版本问题
Apache Httpd、PHP、MySQL 是会持续更新的,而且它们也均有爆发过大规模严重漏洞的历史,不过目前还没有看到应用镜像中的三大金刚如何升级版本号的姿势。
像 WordPress 这样的程序完全可以适应高版本的 PHP,使用 PHP7.0 或者 7.1 可以拥有更高的性能还可以降低负载,但是默认只有 php5.6 可以选,既然使用 php-fpm 方式驱动其实完全可以提供多版本 PHP 的选择。
总结
可以说 轻量应用服务器 是专门针对云计算入门新手或者只有轻量计算需求的用户,其对标的产品只会是 ECS 的共享型,当一到要使用 ECS 的企业型来发展性能、功能了,轻量应用服务器 的优势其实也就没有了。
如果你只是轻度使用云计算产品例如搭建一个博客、官网,如果你需要一个更快启动的轻量服务器,如果你需要一个纯粹的虚拟专用机,如果你并没有阿里云内网的需求,那么 轻量应用服务器 绝对是你最好的选择。
评测
我们对比的是华东1地域的安装了 CentOS 7.3 系统的 1核心1G内存的 ECS 和 轻量应用服务器 产品。看了评测就可以跟深入的了解,ECS 和 轻量应用服务器 的不同只在于概念而不在于性能。
CPU 性能
根据下面的对比可以发现,轻量应用服务器 的性能和 ECS 并没有差距,大家都是新一代的 Xeon CPU,同样的虚拟化技术。只不过 轻量应用服务器 不可以持续高负载占用。
轻量应用服务器:
System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 34281977.0 2937.6
Double-Precision Whetstone 55.0 2962.7 538.7
Execl Throughput 43.0 4860.0 1130.2
File Copy 1024 bufsize 2000 maxblocks 3960.0 1054197.7 2662.1
File Copy 256 bufsize 500 maxblocks 1655.0 283098.8 1710.6
File Copy 4096 bufsize 8000 maxblocks 5800.0 3165160.0 5457.2
Pipe Throughput 12440.0 1734490.3 1394.3
Pipe-based Context Switching 4000.0 375732.0 939.3
Process Creation 126.0 18345.1 1456.0
Shell Scripts (1 concurrent) 42.4 6747.0 1591.3
Shell Scripts (8 concurrent) 6.0 921.5 1535.8
System Call Overhead 15000.0 2939229.7 1959.5
========
System Benchmarks Index Score 1649.5
ECS:
System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 34582858.9 2963.4
Double-Precision Whetstone 55.0 2984.8 542.7
Execl Throughput 43.0 5118.8 1190.4
File Copy 1024 bufsize 2000 maxblocks 3960.0 1073823.9 2711.7
File Copy 256 bufsize 500 maxblocks 1655.0 284701.5 1720.3
File Copy 4096 bufsize 8000 maxblocks 5800.0 3213933.6 5541.3
Pipe Throughput 12440.0 1722785.7 1384.9
Pipe-based Context Switching 4000.0 377999.7 945.0
Process Creation 126.0 18704.4 1484.5
Shell Scripts (1 concurrent) 42.4 6852.6 1616.2
Shell Scripts (8 concurrent) 6.0 937.2 1562.0
System Call Overhead 15000.0 2979190.8 1986.1
========
System Benchmarks Index Score 1673.4
磁盘性能
由下面的磁盘跑分也可以看见,轻量应用服务器 的 20G SSD 系统盘 和 ECS 的 20G SSD 云盘的性能都是一致的,都是 1800 的iops,也都是 90M 左右的读写没有差距。
轻量应用服务器:
/dev/vda:
Timing cached reads: 21070 MB in 2.00 seconds = 10549.25 MB/sec
Timing buffered disk reads: 270 MB in 3.01 seconds = 89.76 MB/sec
[root@izbp1auqkyqtj4iozs7athz dev]# fio --bs=4k --ioengine=libaio --iodepth=1 --direct=1 --rw=read --time_based --runtime=600 --refill_buffers --norandommap --randrepeat=0 --group_reporting --name=fio-read --size=10G --filename=/dev/vda
fio-read: (g=0): rw=read, bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=1
fio-2.2.8
Starting 1 process
Jobs: 1 (f=1): [R(1)] [100.0% done] [7200KB/0KB/0KB /s] [1800/0/0 iops] [eta 00m:00s]
fio-read: (groupid=0, jobs=1): err= 0: pid=24361: Sun Sep 10 15:04:27 2017
read : io=4206.7MB, bw=7179.3KB/s, iops=1794, runt=600004msec
slat (usec): min=3, max=165, avg= 6.78, stdev= 2.02
clat (usec): min=2, max=84748, avg=548.56, stdev=2727.93
lat (usec): min=131, max=84755, avg=555.59, stdev=2727.93
clat percentiles (usec):
| 1.00th=[ 141], 5.00th=[ 241], 10.00th=[ 302], 20.00th=[ 306],
| 30.00th=[ 314], 40.00th=[ 322], 50.00th=[ 334], 60.00th=[ 350],
| 70.00th=[ 362], 80.00th=[ 382], 90.00th=[ 442], 95.00th=[ 502],
| 99.00th=[ 1012], 99.50th=[23936], 99.90th=[40704], 99.95th=[42752],
| 99.99th=[68096]
bw (KB /s): min= 4624, max= 7784, per=100.00%, avg=7182.85, stdev=181.15
lat (usec) : 4=0.01%, 250=6.25%, 500=88.69%, 750=3.79%, 1000=0.27%
lat (msec) : 2=0.36%, 4=0.06%, 10=0.03%, 20=0.04%, 50=0.48%
lat (msec) : 100=0.04%
cpu : usr=0.50%, sys=1.81%, ctx=1076903, majf=1, minf=33
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued : total=r=1076894/w=0/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
READ: io=4206.7MB, aggrb=7179KB/s, minb=7179KB/s, maxb=7179KB/s, mint=600004msec, maxt=600004msec
Disk stats (read/write):
vda: ios=1078167/690, merge=0/399, ticks=598805/4230, in_queue=602927, util=98.01%
ECS:
/dev/vdb:
Timing cached reads: 19778 MB in 2.00 seconds = 9901.01 MB/sec
Timing buffered disk reads: 270 MB in 3.02 seconds = 89.54 MB/sec
[root@iZbp1258gr0v9v184jdqqkZ dev]# fio --bs=4k --ioengine=libaio --iodepth=1 --direct=1 --rw=read --time_based --runtime=600 --refill_buffers --norandommap --randrepeat=0 --group_reporting --name=fio-read --size=10G --filename=/dev/vdb
fio-read: (g=0): rw=read, bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=1
fio-2.2.8
Starting 1 process
Jobs: 1 (f=1): [R(1)] [100.0% done] [6940KB/0KB/0KB /s] [1735/0/0 iops] [eta 00m:00s]
fio-read: (groupid=0, jobs=1): err= 0: pid=9552: Sun Sep 10 15:23:44 2017
read : io=4218.9MB, bw=7200.2KB/s, iops=1800, runt=600001msec
slat (usec): min=3, max=344, avg= 6.97, stdev= 2.32
clat (usec): min=1, max=85711, avg=546.79, stdev=4741.30
lat (usec): min=145, max=85717, avg=553.99, stdev=4741.28
clat percentiles (usec):
| 1.00th=[ 147], 5.00th=[ 149], 10.00th=[ 151], 20.00th=[ 153],
| 30.00th=[ 155], 40.00th=[ 159], 50.00th=[ 167], 60.00th=[ 199],
| 70.00th=[ 229], 80.00th=[ 241], 90.00th=[ 249], 95.00th=[ 270],
| 99.00th=[ 374], 99.50th=[56576], 99.90th=[67072], 99.95th=[67072],
| 99.99th=[67072]
bw (KB /s): min= 6380, max= 7624, per=100.00%, avg=7202.00, stdev=111.69
lat (usec) : 2=0.01%, 50=0.01%, 250=90.56%, 500=8.76%, 750=0.06%
lat (usec) : 1000=0.02%
lat (msec) : 2=0.02%, 4=0.01%, 10=0.01%, 20=0.01%, 50=0.01%
lat (msec) : 100=0.55%
cpu : usr=0.50%, sys=1.98%, ctx=1080029, majf=0, minf=34
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued : total=r=1080027/w=0/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
READ: io=4218.9MB, aggrb=7200KB/s, minb=7200KB/s, maxb=7200KB/s, mint=600001msec, maxt=600001msec
Disk stats (read/write):
vdb: ios=1079640/0, merge=0/0, ticks=589523/0, in_queue=589382, util=98.27%