步骤一:确定目标并发与码率。公式:带宽需求(Gbps)=并发用户×平均码率(Mbps)/1024。
步骤二:估算存储。公式:存储(GB)=每日视频时长(小时)×平均码率(Mbps)×3600/8/1024。
步骤三:IOPS/吞吐需求。直播以连续吞吐为主(MB/s),点播需考虑并发随机读取(IOPS)。列出峰值并发、保留期与冗余系数,作为硬件选型依据。
步骤一:选择介质。推荐:热数据用NVMe或企业SSD(RAID10),冷数据用SATA/分布式对象存储(MinIO/Ceph)。
步骤二:本地RAID10示例(以mdadm为例):1) 安装 mdadm;2) sudo mdadm --create /dev/md0 --level=10 --raid-devices=4 /dev/nvme0n1 /dev/nvme1n1 /dev/nvme2n1 /dev/nvme3n1;3) 格式化并挂载:mkfs.xfs /dev/md0 && mount -o noatime,nodiratime /dev/md0 /data。
步骤三:对象存储(MinIO)快速部署:下载 minio binary,创建多节点配置并启用 erasure coding:minio server http://host{1...4}/export。用于长尾存储与CDN回源。
步骤一:物理网络。使用10/25/40/100GbE网卡,交换机配置LACP(bonding)。示例 bonding:/etc/network/interfaces 配置 mode=802.3ad。
步骤二:网卡参数与关闭中断聚合问题:sudo ethtool -K eth0 tso on gso on gro on;设置MTU=9000(需交换机支持)。
步骤三:内核TCP调优(/etc/sysctl.conf示例):net.core.rmem_max=268435456;net.core.wmem_max=268435456;net.ipv4.tcp_rmem=4096 87380 268435456;net.ipv4.tcp_wmem=4096 65536 268435456;net.ipv4.tcp_congestion_control=bbr(启用后重启或sysctl -p)。测试带宽请用 iperf3:iperf3 -s (服务端) / iperf3 -c server -P 8 -t 60。
步骤一:FFmpeg 离线/实时转码命令示例(多码率HLS):ffmpeg -i input -preset veryfast -g 48 -sc_threshold 0 -map 0:v:0 -c:v:0 libx264 -b:v:0 4500k -maxrate 4950k -bufsize 9000k -s:v:0 1920x1080 ... -f hls -hls_time 6 -hls_playlist_type vod out_1080/index.m3u8。
步骤二:分片与GOP设置。建议 hls_time=4~6s,关键帧间隔(gop) ~= 2×hls_time。
步骤三:实时流服务器选型:使用 NGINX+RTMP 或 SRS,输出 HLS/DASH 到本地缓存目录或对象存储后由CDN拉取。
步骤一:Origin 设置。将对象存储或视频分片目录作为回源,开启 Range 请求支持与 Cache-Control。示例 header:Cache-Control: public, max-age=86400。
步骤二:CDN 配置关键点:开启分片缓存(小文件合并/边缘缓存按段缓存),设置合理的回源并发限制与连接超时。对敏感内容使用签名URL或Token。
步骤三:缓存命中率优化:统一 cache key(去掉 ?timestamp),利用 Manifest 缓存和短生命周期分片策略以提升命中。
步骤一:负载均衡层:使用 HAProxy 或云负载均衡对接健康检查与会话保持。配置 Keepalive、timeout 和 maxconn。
步骤二:监控指标:带宽、丢包、CPU、disk queue、socket TIME_WAIT。部署 Prometheus + node_exporter + Grafana,设置告警阈值(如下行吞吐下降10%、丢包>0.1%)。
步骤三:压力测试与验证:使用 wrk/vegeta 做HTTP并发测试,使用 iperf3 做链路极限测试,fio 验证磁盘吞吐(fio --name=read --rw=randread --bs=4k --size=10G --numjobs=16)。
答:短时热数据(直播/高并发点播)优先本地NVMe或RAID10以保证低延迟与高吞吐;长时归档与大量冷数据推荐对象存储(MinIO/Ceph或S3),并通过CDN回源优化成本。通常混合架构最好:热数据本地+冷数据对象存储。
答:保证端到端链路(服务器→交换机→出口路由)均为10/25/40/100GbE,启用LACP、MTU9000、网卡卸载(GRO/TSO)、内核TCP调优(rmem/wmem、BBR),并把静态内容尽量下沉到CDN边缘,减少源站出站压力。用iperf3分段测试与监控确认瓶颈位置。
答:清单:1) 计算并发与带宽需求;2) 选定存储(NVMe+对象存储);3) 交换机与链路带宽确认并配置LACP/MTU;4) 系统内核/网卡调优并启BBR;5) 配置转码与分片策略(HLS/DASH);6) CDN回源与缓存策略;7) 压力测试与监控告警;8) 安全(TLS、签名URL)与自动扩容策略。