专栏/关于VPS的那些事

关于VPS的那些事

2023年11月11日 16:04--浏览 · --点赞 · --评论
粉丝:207文章:2

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

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


先引用一下之前文章 ——深入浅出主流云服及一些注意事项https://forum.rainyun.com/t/topic/5224的话,因为经典永不过时(?)


先拿一个 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举例子

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

https://forum.rainyun.com/t/topic/5242/1


也是能开很多机子的...罢

或者是少开一些,性能拉高,全部小主机全部百分百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官方性能参数]https://www.intel.cn/content/www/cn/zh/products/sku/199332/intel-core-i910900k-processor-20m-cache-up-to-5-30-ghz/specifications.html

具体数据以服务器提供商为准,以上数据仅供参考↑


那我们在这上面开一些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)](https://www.intel.cn/content/www/cn/zh/products/sku/134599/intel-core-i912900k-processor-30m-cache-up-to-5-20-ghz/specifications.html)


↑数据分析来源↑


在intel官网上,它标注一共有16核心,分别是八个性能核,和八个能效核,他一共有24个线程,其中能效核没有超线程技术,但是性能核有超线程技术

最大睿频高达 5.20GHz (我:6,光棍节英特尔发狗粮逝罢)


[details="其中一些详细参数"]

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

[/details]

先拿这个平台跑一个测试,也就是备受争议的VPS

计算机有一个特点啊,就是公平公正,按需应用程序需求分配性能

但是问题来了,操作系统也算应用程序,我们就算VPS系统是一个应用程序,核心是按需分配

VPS一个特点,就是动态分配,每个用户所需要的资源


[details="VPS定义,重要!!!!"]

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

[/details]

因为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)]https://www.intel.cn/content/www/cn/zh/products/sku/230496/intel-core-i913900k-processor-36m-cache-up-to-5-80-ghz/specifications.html


>对于某些综合场景应用需求,比如他就非得只用大核+旧版操作系统/内核,且完全不允许手动人为修改电源调度策略!但又强制要求必须用最新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都这样

也是可以套结论


墓前我的研究报告就这么多,以上文章是经过实验证明

实验+写文章不易,给个评论或者是赞吧,球球了


投诉或建议