轻量应用服务器
vCPU
CPU(Central Processing Unit,中央处理器) 是计算机的 “大脑”,负责执行所有的计算指令、逻辑判断、数据搬运。
┌─────────────────────────────────────────────────────────────────┐
│ 程序执行模型 │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 硬盘 │ ──→ │ 内存 │ ──→ │ CPU │ │
│ │ 存储代码 │ │ 加载代码 │ │ 执行指令 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │
│ CPU 不关心你写的是 Java、Python 还是 C │
│ 它只执行已经编译成机器码的指令 │
└─────────────────────────────────────────────────────────────────┘
CPU 的职责:
- 从内存读取一条指令
- 解码这条指令要做什么
- 执行(计算、比较、跳转、读写内存)
- 写回结果,然后取下一条指令
- 每秒重复这个流程几十亿次。
1核 CPU 如何执行程序:
时间轴 →
─────────────────────────────────────────────────────────────────
工人(1核)的工作状态:
┌─────────────────────────────────────────────────────────────────┐
│ Java 程序A │ Java 程序A │ Java 程序B │ Java 程序A │ │
│ (处理请求1)│ (处理请求2)│ (GC垃圾回收)│ (处理请求3)│ │
└─────────────────────────────────────────────────────────────────┘
| 特征 | 说明 |
|---|---|
| 同一时刻只能做一件事 | 一个 CPU 核心在同一纳秒只能执行一条指令 |
| 通过时间片轮转实现“并发” | 操作系统快速切换任务(每秒切换几千次),让你感觉“同时”在运行 |
| 排队现象 | 如果 100 个用户请求同时到达,它们会在 CPU 面前排队等待处理 |
2核 CPU 如何执行程序
时间轴 →
─────────────────────────────────────────────────────────────────
工人1(核心1):
┌─────────────────────────────────────────────────────────────────┐
│ Java 程序A │ Java 程序A │ Java 程序A │ Java 程序A │ │
│ (用户请求1)│ (用户请求2)│ (用户请求3)│ (用户请求4)│ │
└─────────────────────────────────────────────────────────────────┘
工人2(核心2):
┌─────────────────────────────────────────────────────────────────┐
│ Java 程序B │ Java 程序B │ GC 回收 │ Java 程序B │ │
│ (用户请求5)│ (用户请求6)│ (后台任务)│ (用户请求7)│ │
└─────────────────────────────────────────────────────────────────┘
| 特征 | 说明 |
|---|---|
| 真正并行 | 两个任务可以同一时刻在不同核心上执行 |
| 吞吐量翻倍 | 理想情况下,单位时间能处理的请求数是 1 核的 2 倍 |
| 资源隔离 | GC(垃圾回收)可以在一个核心上跑,不影响业务请求 |
vCPU(虚拟中央处理器) 是云服务器分配给您的虚拟计算核心。它是物理 CPU 的一个逻辑切片。云厂商把物理服务器上的一块 CPU(比如 Intel Xeon 或 AMD EPYC)通过虚拟化技术,切分成多个虚拟核心分给不同用户。
vCPU 与物理 CPU 的关系:vCPU 不是“给你一块独立的 CPU 硬件”,而是“给你使用物理 CPU 的配额”。
┌─────────────────────────────────────────────────────────────┐
│ 物理服务器(阿里云机房) │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 物理 CPU(例如 Intel Xeon Gold) │ │
│ │ 16 个物理核心 │ │
│ └─────────────────────────────────────────────────────┘ │
│ ↓ 虚拟化拆分 │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ vCPU 1 │ │ vCPU 2 │ │ vCPU 3 │ │ ... │ │
│ │ 给你的 │ │ 给用户B │ │ 给用户C │ │ │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
│ │
│ 每个用户拿到的是“虚拟核心”,轮流使用物理核心的时间片 │
└─────────────────────────────────────────────────────────────┘
缓存
内存(RAM,随机存取存储器) 是服务器的临时数据存储空间。
它用来存放:
- 正在运行的程序代码(如 Node.js、Java 进程)
- 正在处理的数据(如用户请求、数据库查询结果)
- 操作系统本身
内存决定了服务器能同时跑多少程序、处理多大数据:
| 作用 | 通俗理解 |
|---|---|
| 运行程序 | 你启动的 Node.js、MySQL、Nginx 都住在内存里 |
| 缓存数据 | 频繁访问的数据(如帖子列表)放内存里,速度比硬盘快几百倍 |
| 并发请求 | 每个用户请求占一点内存,内存越大能同时处理的请求越多 |
┌─────────────────────────────────────────────────────────────────┐
│ 程序运行模型 │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 硬盘 │ ──→ │ 内存 │ ──→ │ CPU │ │
│ │ 永久存储 │ │ 工作台 │ │ 执行指令 │ │
│ │ 慢(毫秒) │ │ 快(纳秒) │ │ 最快 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │
│ 程序必须先加载到内存,CPU 才能执行 │
│ 硬盘再大,内存不够,程序也跑不快 │
└─────────────────────────────────────────────────────────────────┘
GiB
系统盘 是云服务器上用于安装操作系统、存储系统和应用程序数据的硬盘。
50GiB 表示这块硬盘的容量为 50 GiB。
| 单位 | 全称 | 换算关系 | 常见场景 |
|---|---|---|---|
| GB | Gigabyte | 1 GB = 10⁹ 字节 = 1,000,000,000 字节 | 硬盘厂商、网络带宽 |
| GiB | Gibibyte | 1 GiB = 2³⁰ 字节 = 1,073,741,824 字节 | 操作系统、云服务器 |
系统盘里装了什么:
┌─────────────────────────────────────────────────────────────────┐
│ 系统盘 50GiB 空间分配 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 操作系统(Linux) 约 10 GB │ │
│ │ - 内核、系统库、驱动程序 │ │
│ │ - /usr、/lib、/etc 等系统目录 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 你的应用程序 约 5 GB │ │
│ │ - Java 应用(jar/war 文件) │ │
│ │ - 依赖库、配置文件 │ │
│ │ - 日志文件(/var/log) │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 数据库(MySQL) 约 10 GB │ │
│ │ - 论坛帖子、用户数据 │ │
│ │ - 索引文件 │ │
│ │ - 日志文件(binlog、error log) │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 用户上传文件(图片/附件) 约 5 GB │ │
│ │ - ⚠️ 建议用 OSS 存储,不存本地 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 系统保留空间(/boot、swap、备份) 约 5 GB │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 剩余可用空间 约 15 GB │ │
│ │ - 用于日志增长、临时文件、未来扩展 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ 总计:约 50 GiB │
└─────────────────────────────────────────────────────────────────┘
| 对比项 | 内存(RAM) | 硬盘(系统盘) |
|---|---|---|
| 速度 | 极快(纳秒级) | 慢(毫秒级) |
| 容量 | 小(你这里是 4GB) | 大(你这里是 50GB) |
| 数据持久性 | 断电清空(临时) | 断电保留(永久) |
| 用途 | 运行程序、临时计算 | 存储文件、数据库文件 |
公网流量包
在阿里云轻量应用服务器中,“公网流量包”是指套餐内包含的 每月固定公网出网流量配额 ,用于抵扣实例产生的公网出方向流量(入网流量免费)。
具体含义如下:
- 如果套餐中显示 “无固定流量”,表示流量费用已全额包含在套餐价格中,不会产生额外流量费用。
- 如果套餐中明确标注了 “每月XX GB流量”,则表示该实例拥有固定流量包;当月使用超出后,超额部分将按量计费(例如中国内地地域通常为0.8元/GB)。
- 流量包仅适用于 公网出网流量 (如用户访问您的网站、下载文件等),同一VPC内网互通不消耗流量包。
- 每月1日自动重置流量包额度。
峰值公网带宽
带宽
带宽 原本是一个物理概念,指信号所占用的频率范围,单位是赫兹(Hz)。但在网络领域,它通常指 数据传输速率,即单位时间内从一点到另一点传输的最大数据量。
单位:通常用 bps(比特每秒,bit/s)表示,如 100 Mbps、1 Gbps。
100 Mbps 的带宽,1秒钟最多大约可以下载 12.5 兆字节(MB)的数据。
- Mbps 中的 b 是 bit(比特),是网络数据传输的最小单位。
- MB/s 中的 B 是 Byte(字节),是文件存储的最小单位。
- 1 Byte = 8 bits
- 100 Mbps ÷ 8 = 12.5 MB/s
带宽指的是 1 秒钟可以下载的理论数据量(上限)。当然,这个数据量也由对方的带宽决定。
实际速度 = min(你的带宽, 对方带宽, 中间路径, 设备能力)
你的带宽(100M) 对方带宽(50M) 实际速度
↓ ↓ ↓
┌─────┐ ┌─────┐ ┌─────┐
│水管 │ │水管 │ │ 实际 │
│ 粗 │ ←──── 互联网 ────→ │ 细 │ = 只能达到 │ 流量 │
│100M │ │ 50M │ │ 50M │
└─────┘ └─────┘ └─────┘
轻量应用服务器的带宽问题
以下是官方解释:
“峰值公网带宽200 Mbps”是指该云服务器实例出方向(上行)到公网的最大瞬时带宽可达 200 Mbps,即每秒最多可向外传输约 25 MB 的数据(200 ÷ 8 = 25 MB/s)。 需要注意:
- 此数值为带宽上限,不作为业务性能承诺指标。在阿里云资源争抢高峰期,实际带宽可能受限并出现丢包。
- 入网带宽(下行)免费,且当出网带宽 ≥10 Mbps 时,入网带宽上限与出网带宽一致。
- 若业务对网络质量有强保障需求,建议选择按固定带宽计费的云服务器 ECS,而非按流量计费模式
这200M带宽不是你一个人独占的,而是你和同地域、同机房里其他所有轻量服务器用户共享的。
┌─────────────────────────────────────────┐
│ 阿里云 杭州机房 总出口带宽 │
│ (比如 10,000 Mbps) │
└─────────────────────────────────────────┘
│
┌────────────────────────────┼────────────────────────────┐
│ │ │
▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 轻量服务器A │ │ 轻量服务器B │ │ 轻量服务器C │
│ 标称200M │ │ 标称200M │ │ 标称200M │
│ 你(论坛) │ │ 别人(电商) │ │ 别人(博客) │
└─────────────┘ └─────────────┘ └─────────────┘
│ │ │
▼ ▼ ▼
100人访问 200人访问 300人访问
A、B、C 三台轻量服务器,每台标称 200M,但他们都共享机房的 10,000M 总出口。600个用户一起共享10,000M 这个大池子的带宽。
在总带宽不够分时,阿里云会尽量让每台服务器 按需分配,但 不超过 200M。这个时候,如果用户少,就有更高概率抢到资源。
固定公网地址
一台服务器(无论是物理机还是云服务器)是可以绑定多个公网IP地址的。
常见到“一个服务器一个IP”,是因为大多数情况下没必要绑定多个,而不是不能绑定多个。
轻量应用服务器只可以绑定一个固定IP。
一台 ECS 实例至少有 1 个私网 IP,最多可拥有:
- 1 个固定公网 IP(或绑定多个 EIP),
- 多个辅助私网 IP,
- 多个 IPv6 地址,
EIP(Elastic IP Address,弹性公网IP) 是阿里云提供的可以独立购买和持有的、可动态绑定到云资源的公网IPv4地址。它的核心特征是:IP地址与云资源(ECS、NAT网关、负载均衡等)解耦,可以随时绑定、解绑、转移。
EIP 本质上就是“网关上的一个映射条目”——它不依附于服务器,而是依附于网关。通过修改映射关系,同一个 IP 可以“指向”不同的服务器,这就是“弹性”的含义。
互联网用户访问你的网站
│
▼
输入 EIP:47.100.1.1
│
▼
┌────────────────────────────────────────────────────────┐
│ 阿里云边缘路由器(Internet Gateway) │
│ │
│ 维护映射表: │
│ ┌─────────────────────────────────────────────┐ │
│ │ EIP:47.100.1.1 ←→ 私网IP:172.16.1.5 │ │
│ │ EIP:47.100.2.2 ←→ 私网IP:172.16.2.8 │ │
│ │ EIP:47.100.3.3 ←→ 私网IP:172.16.3.12 │ │
│ └─────────────────────────────────────────────┘ │
│ │
│ 执行 NAT(网络地址转换): │
│ 目标地址:47.100.1.1 → 172.16.1.5 │
└────────────────────────────────────────────────────────┘
│
▼
数据包目标地址已转换为私网IP:172.16.1.5
│
▼
┌────────────────────────────────────────────────────────┐
│ 阿里云 VPC 内部网络 │
│ (虚拟交换机) │
└────────────────────────────────────────────────────────┘
│
▼
你的 ECS 实例(私网IP:172.16.1.5)
│
▼
服务器上的论坛程序处理请求
│
▼
响应原路返回(经过 NAT 网关时,源地址再映射回 EIP)
轻量应用服务器也可以通过类似的技术(如Nginx)实现类似的效果
公网IP:47.100.1.1(一台代理服务器)
│
▼
Nginx 反向代理
│
┌────┴────┬────────┐
▼ ▼ ▼
服务器 A 服务器 B 服务器 C
(论坛) (博客) (测试)
系统镜像
| 维度 | Alibaba Cloud Linux | Ubuntu | Anolis OS | Debian | CentOS |
|---|---|---|---|---|---|
| 定位 | 阿里云自研,云原生优化 | 通用型,易用性优先 | CentOS 替代方案,企业级稳定 | 稳定性优先,自由软件 | 已停更,不推荐 |
| 上手难度 | ⭐⭐ 中等(类 RHEL) | ⭐ 简单(文档多) | ⭐⭐ 中等(类 RHEL) | ⭐⭐⭐ 较难(配置较原始) | ⭐⭐ 中等(已过时) |
| 软件包管理 | yum/dnf(RPM 体系) | apt(DEB 体系) | yum/dnf(RPM 体系) | apt(DEB 体系) | yum(已停止更新) |
| 默认防火墙 | firewalld | ufw/iptables | firewalld | iptables | firewalld |
| 安全更新 | ✅ 阿里云官方持续 | ✅ 社区 LTS 长期支持 | ✅ 社区+阿里云支持 | ✅ 社区长期支持 | ❌ 已停止 |
| 适用场景 | 云原生、容器、企业生产 | 开发测试、AI、通用 | CentOS 迁移、企业生产 | 高稳定性服务器 | 不推荐用于新项目 |
Alibaba Cloud Linux:阿里云自研的定制化原生操作系统镜像,针对云上环境优化,安全稳定,兼容 RHEL/CentOS 生态。阿里云为其提供官方技术支持。其容器镜像基于龙蜥社区(OpenAnolis)打造,紧密跟进安全漏洞修复。
Ubuntu:广受欢迎的开源 Linux 发行版,以易用性和活跃的社区生态著称。阿里云提供多个 LTS 版本(如 16.04、18.04、20.04 等),属于第三方开源公共镜像,阿里云提供技术协助,主要支持来自社区。
Anolis OS(龙蜥操作系统):由 OpenAnolis 社区主导、阿里云深度参与的开源操作系统,旨在替代 CentOS,完全兼容 RHEL/CentOS 软件生态。在阿里云中作为公共镜像提供,适用于希望延续 CentOS 使用习惯的用户。
Debian:以稳定性与自由软件理念著称的开源 Linux 发行版,阿里云提供 Debian 8 至 12 等多个版本,属于第三方开源公共镜像,技术支持主要依赖社区。
CentOS:曾广泛使用的 RHEL 兼容发行版,但因上游策略变更已停止维护(EOL)。阿里云仍提供部分历史版本(如 CentOS 7.9、8.2 等),但不推荐用于新业务部署。
Alibaba Cloud Linux的社区生态不如 Ubuntu 丰富(第三方软件包可能需自行编译),如果是容器化部署或者纯阿里云生态可以尝试。
Ubuntu全球最流行的 Linux 发行版之一。社区极其活跃,几乎任何问题都能搜到解决方案。软件包最丰富(apt install 基本覆盖所有常用软件)。非常适合个人开发者。
服务器地域
要在国内微信上架小程序或者应用商城,就需要ICP备案。
如果要ICP备案,只能是国内的服务器。
如果只是做网页,不介意国内用户是否可以访问,就可以选择国外的服务器。国外服务器不需要ICP备案。
延迟
延迟分为两种:
- 往返延迟 (RTT, Round-Trip Time):数据从客户端 -> 服务器 -> 回到客户端的总时间。这是最常用的指标。
- 延迟 = 一个请求从发出到收到响应所花费的总时间
- 单向延迟 (One-way Delay):仅指数据从客户端传输到服务器的那一段耗时(通常大约是 RTT 的一半)。
这里所说的时间,是没有业务代码执行的时间,是纯粹的“网络传输耗时”
sequenceDiagram
participant 客户端 as 客户端
participant 服务器 as 服务器
Note over 客户端,服务器: 延迟 = 网络传输时间 × 2
客户端->>服务器: ① 发送空请求 (Ping / 健康检查)
Note over 服务器: ⚡ 无业务逻辑
立即返回
服务器-->>客户端: ② 返回空响应
Note over 客户端: 总耗时 ≈ 纯网络往返时间
(如 70ms)
这种情况下,延迟几乎完全等于网络本身的物理耗时——数据在光缆中跑一个来回的时间。这就是为什么 ping 命令能用来测试网络延迟,因为它发的是不含业务逻辑的 ICMP 请求。
如果包含业务逻辑,就是下面的情况:
sequenceDiagram
participant 客户端 as 客户端
participant 服务器 as 服务器
Note over 客户端,服务器: 延迟 = 网络传输时间 + 业务处理时间 + 网络传输时间
客户端->>服务器: ① 发送请求 (如:查询订单)
Note over 服务器: 🖥️ 业务逻辑处理
(查数据库、计算、调用其他服务)
服务器-->>客户端: ② 返回结果
Note over 客户端: 总耗时 = 网络往返 + 业务处理耗时
域名