关于VPS的一些补档

注:以下所有内容出自菜鸡的推测+合理运算几天得出的结果

免责声明:本文章仅仅代表个人立场!不代表任何其他人!不偏向任何人!

博客持续更新版本(这里过几天就编辑不了了)

关于VPS的一些补档(持续更新版本) - 菜鸡の博客 (caijiblog.top)

哔哩哔哩版本: 关于VPS的那些事 - 哔哩哔哩 (bilibili.com)

先引用一下之前文章 深入浅出主流云服及一些注意事项的话,因为经典永不过时(?)

先拿一个 Dell ® PowerEdge™ R730 准系统服务器做一个例子

服务器配置一览

CPU:Intel ® Xeon™ E5-2699 V4 *2 (44核心88线程)
内存: Samsung ® 16GB DDR3-1600 *12(192GB)
存储:Kingston ® A400 960GB *8(7.5TB)
磁盘阵列卡: Dell® PowerEdge RAID Controller™ H730
电源:Dell® 750W交流转直流 *21

不拿家户喻晓的VmWare Workstation举例子,而是拿ESXI举例子

具体为什么,可以看看这篇文章

深入浅谈虚拟化技术

也是能开很多机子的…罢
或者是少开一些,性能拉高,全部小主机全部百分百CPU占用率,如果我们有10个用户,一个用户3个物理核心,那我们理论上就有75%的总占用率,如果你放个探针,你就可以看到,可能和我们料想的一样

为什么会有耗损?或者是实验结果不一样?

因为虚拟化技术需要资源去弥补它的开销,所以可能吃一些资源…
但它往往不会使用太多资源
但是每一种虚拟化价格不同,耗损的资源就大相径庭
假如ESXI要吃3%-5%
那Xen就要吃6%-8%
相比之下QEMU吃1%-5%
那经过KVM加速的QEMU-KVM就需要2%-5%

再比如说,我们有一个服务器,CPU是一颗i9-10900K,内存有128 GB

Intel ® Inside™ Core I9-10900K官方性能参数

Intel ® Inside™ Core I9-10900K官方性能参数
具体数据以服务器提供商为准,以上数据仅供参考↑

那我们在这上面开一些VPS主机,可能开的就非常的少,而且占用不能占的的太满,比如我们有两个用户,每个用户4核,都占用100%,再放个探针,你就可能发现,占用可能到达75%,这可以阐明一件事情,高性能主机,它的容量小,但是性能还是高,所以这就是为什么,高性能主机容易被误认为超开的原因,实际上是某个用户在一段时间内使用了大量的CPU,然后在探针上显示非常的高的占用率
说是这么说,但是这一瞬间来一个大量I/O请求,虚拟化就要吃大量的CPU和I/O,主机容易BBQ
要是连超频丢弥补不过来的话… 服务器若机也是不可避免… 的比如Windows的蓝屏

再比如说,自从intel的第12代CPU开始,引用了能效核和性能核的概念

说一下为什么引用能效核和性能核的问题啊

据不完全统计,2020年,全球耗电量到达了22500太瓦时
全球智能设备数量达到了惊人的64亿台
在这64亿台,保守估计,家用台式机应该有5%-10%的占有率(可能更高,也可能更低)
也就是6.4亿左右
平均每一台计算机的功耗,保守估计,一台平均应该是有600W的电源
(将高性能和低性能主机的电源平均,统计调查了网吧,家用,学校,等等等等,样本数据近两千台主机,统计数据采样:天津市旁边一个小城市)
保守计算约384太瓦电时消耗量
保守平均,一台电脑每天工作12小时
就是一年4608太瓦时
约占世界用电量的20.48%
20.48%啊,没算上数据中心的,仅仅算家用笔记本或者是台式机就这么多
约等于20945454545.45455度电
按照现在电费,懒得阶段计费了,就算1块钱一度电
209亿元人民币!!!
这个直观清晰罢,209亿人民币!!!

为了减少家用计算机耗电问题,引用能效核和性能核,让计算机操作系统自己分配核心
比如办公看片用能效核
原神启动就性能核
很明显,Intel ® Inside™ Core 这个系列,已经被固死在家用这个领域市场
但是英特尔也不是没有提供服务器用CPU,比如Intel ® Xeon™ 系列
不管是 E 洋垃圾系列,还是性能弑神的 Xeon™ 可扩展CPU Platinum 系列
又或者是平平无奇的新一代 Xeon™ 可扩展CPU Gold 系列
都是面向服务器/工作站市场的,很明显英特尔已经划分好了类型

但不排除,总有地上的生灵,敢于直面雷霆的威光…
↑玩原神玩的(?)↑
但不排除,总有一些人驴屡刑者,敢于直面Bug的威光…
对的没错,就是你想的那样!
↓正文开始↓

举个栗子:我们今天的主角 I9-12900K 受害者一号
↓数据来源↓
一切以服务器提供商为准
英特尔® 酷睿™ i9-12900K 处理器 (intel.cn)

↑数据分析来源↑

在intel官网上,它标注一共有16核心,分别是八个性能核,和八个能效核,他一共有24个线程,其中能效核没有超线程技术,但是性能核有超线程技术
最大睿频高达 5.20GHz (我:6,光棍节英特尔发狗粮逝罢)

其中一些详细参数

Performance-core(性能核)最大睿频频率:5.10 GHz
Efficient-core(能效核)最大睿频频率:3.90 GHz
Performance-core(性能核)基本频率:3.20 GHz
Efficient-core(能效核)基本频率:2.40 GHz
缓存:30 MB Intel® Smart Cache
二级高速缓存总容量:14 MB
处理器基础功耗:125 W
最大睿频功耗:241 W

先拿这个平台跑一个测试,也就是备受争议的VPS
计算机有一个特点啊,就是公平公正,按需应用程序需求分配性能
但是问题来了,操作系统也算应用程序,我们就算VPS系统是一个应用程序,核心是按需分配
VPS一个特点,就是动态分配,每个用户所需要的资源

VPS定义,重要!!!!

VPS(Virtual Private Server 虚拟专用服务器)技术,将一台服务器分割成多个虚拟专享服务器的优质服务。实现VPS的技术分为容器技术,和虚拟化技术。在容器或虚拟机中,每个VPS都可选配独立公网IP地址、独立操作系统、实现不同VPS间磁盘空间、内存、CPU资源、进程和系统配置的隔离,为用户和应用程序模拟出“独占”使用计算资源的体验。VPS可以像独立服务器一样,重装操作系统,安装程序,单独重启服务器。VPS为使用者提供了管理配置的自由,可用于企业虚拟化,也可以用于IDC资源租用。

因为VPS是吧一个物理机,划分成很多小机,供客户等使用
也就是说,很多人去抢一个U去用
根据公平公正原则,问题来了,我分配到的是能效核,还是性能核心呢?
↓先分析一下定义里面的一句话↓

每个VPS都可选配独立公网IP地址、独立操作系统、实现不同VPS间磁盘空间、内存、CPU资源、进程和系统配置的隔离,为用户和应用程序模拟出“独占”使用计算资源的体验

提取重点
#>实现不同VPS间磁盘空间、内存、CPU资源、进程和系统配置的隔离_

仔细分析,这句话也就是说,在一开始,CPU资源就是固定分配的,指定了你在哪个核心跑虚拟机
但是经过实验,他的分配是动态的,但是并不是完全按动态分配
引用我之前研究的结论,这个是经过我在学校计算机实验室,经过大量机型实验(Intel,AMD等平台,有家用平台和服务器平台)得出的结论~~(破烂一批的机房,经过半年实验得出的结论)~~

看下面的VPS那个栗子
看不懂我来讲解一下
在那颗10900K里,虚线代表用户实际分配到的线程

之前有人笑我你问我为什么4在3前面,我是不是XXS?来来来我给你解释一下为什么

栗子是这样的,这个图是一颗CPU在一个时刻分配情况,相
当于高中物理里面的瞬时速度,我管这个叫瞬时分配情况
这款CPU一个20个核心,从前之后1-20标号

↓用户使用日志↓
用户1开机后,一直在使用(线程分配情况:1,2,3)
用户2开机后,也是一直在使用(线程分配情况:4,5,6,7)
用户3开机后使用了一段时间,就关机了(线程分配情况:8,9,后面被回收)
用户4开机后,一直使用(线程分配情况:8,9)
恰巧用户3开机,一直使用(线程分配情况:10,11)
然后用户5开机,一直使用(线程分配情况:12,13)
用户6开机,但是操作系统需要更新,就更新,更新完毕后关机(线程分配情况:14,15,后面被回收)
在用户6关机间隙,用户7恰好开机,一直使用(线程分配情况:14,15,16)
用户6开机,更新完毕啦!一直使用(线程分配情况:17,18)
用户8开机,一直使用(线程分配情况:19,20)
也就是说,在你开机以后,CPU分配就固定了,想更改就要重启,得赶在人关机间隙去开机
内存也是,这个后面我再讲

那么好,问题来了,既然“动态分配”那么我分配到的怎么去看呢?
答案很简单,有点难度,或者是跑CPU-Z(水分较大,但是只要体现出差距,就说明你核心分配情况,高的是性能核,低的是能效核,这招在K或者是KF系列不太好用,但是哪怕是那么一丢丢的差距,也可以粗略判断),或者是跑业务(这招好用,业务里面如果有一个基准计数,那就更好了,直接一眼丁真,Java效果不太好,C/C++效果更佳,或者是汇编语言编写的程序,效果最佳!)

话说回来我们购买VPS主机呢?

首先我们在购买VPS的时候,要认清楚购买VPS 时标注的核心数指的是什么?

一般来说,云服务提供商的核心数指的是一个线程,当然这里你还要问你的服务器提供商这个核心到底指的是什么,比如说我要买6核心的12900K我实际上买到的是这颗CPU里的六个线程,当然VPS是“动态分配”这颗CPU里的资源

又在英特尔官网上,看到了性能核心的最大睿频率其实是5.1Ghz,(其实这个可以在Bios里更改,更改到多少你随意,别让CPU烧掉就行,理论上最大可以加速到5.8Ghz,这里的数据来源于一个老外的视频)但是能效核心的最大睿频其实是3.9Ghz,这有可能导致,资源分配不平衡
如果说,用户1拿VPS看看片,玩个小游戏,当远程电脑用分配到了性能核,那他走了他的运
那有这个就有对照,用户2跑业务分配到了能效核,业务跑不满,业务不达标,倒了大霉
如果用户1一直开机,不去释放资源,用户2可能哭死在撤硕
当然,这只是我的猜测,不代表事实确实是这样,这个数据是在我推算了近20次得到的结果,本人计算不好,可能有所出入,请见谅,当然这里只是提一嘴

你可能说,我在Bios里关上能效核不就行了吗
我的答案是,可以,代价是多核性能严重下跌
拿Intel ® Inside™ Core I9-13900K举例子 受害者2号,性能参数摆着,我不多介绍了
英特尔® 酷睿™ i9-13900K 处理器 (intel.cn)

对于某些综合场景应用需求,比如他就非得只用大核+旧版操作系统/内核,且完全不允许手动人为修改电源调度策略!但又强制要求必须用最新13代酷睿,那这种情况可能关小核就能解决问题。

这很符合VPS的条件对吧
但是你要知道就连入门的13400都给了4个gracemont!

时间之外的事情——什么是gracemont?

Intel Alder Lake核心架构的小核心叫Gracemont
大核其实有三个问题,以现役最强大核Willow Cove来说:
1.耗电。TGL-U的频率功耗比(主要指低频)打不过Zen2,就靠微架构优势撑一撑。
2.面积 。单个WLC面积差不多有10mm^2,Cezanne的zen3单个核只有5.5mm^2,虽然前者的缓存更大(1.25M+3M vs 0.5M+2M),但面积上的确存在很大劣势,增加了堆核成本。(一部分要怪怪制程工艺)
3.堆核 。ringbus的最佳上限是10核左右,而mesh的话核心不多又开销太大。如果换回双ring(以前Bradwell-EP用的)的话有NUMA问题(虽然AMD一直有),而且单独维护一套受众小成本划不来。

再来看看小核怎么填补这些问题的:

1.耗电 。atom常年专注省电设计,最初甚至是P5延伸过来的顺序执行,到现在都不愿意上高功耗的SIMD。intel自己给出的ppt里能耗比比大核强。
2.面积 。也很省面积,4个GRT还不到1.5个GLC大(参考LKF上4个TNT差不多1.2个SNC大,毕竟没有uop cache等设计,也没有巨宽的SIMD。
3.堆核 。4核为一簇挂在ringbus上,这很zen2(考虑到整数/向量流水线分离就更加像了),堆核潜力直接x4。

13900K关闭小核后就只有8个性能核,16个线程,数量方面放在VPS界也是很炸裂的(?)
性能保障的同时,也节省了电…吗?
但很难保证超售现象
毕竟你正在7%占用,突然飙到100%,检查了一下你的程序占用,如果KVM平台在吃你CPU的话…
毋庸置疑,只有三个事情,1是你的两个吧、隔壁都在高占用,2是整个服务器用户是平均分配,但是各个都在吃性能,3就是服务器严重超开,吃满了性能
如果节点平时显示整个节点平时在40-70左右的话,大概率就是没有超开
如果总结上面那几段话的话,就是高性能主机的容量较少,一个人开满,整个节点都会有反应,而且反应会很大,这并不代表这个主机是超开了的…
当然,就不仅仅是12900K/FK,13900K/KF乃至14900K/KF都这样
也是可以套结论

墓前我的研究报告就这么多,以上文章是经过实验证明
实验+写文章不易,给个评论或者是赞吧,球球了

1 个赞