导航:首页 > 源码编译 > MI预编译系统

MI预编译系统

发布时间:2025-07-15 06:47:52

㈠ 了解Kubernetes资源类型

在深入研究Kubernetes资源之前,让我们先澄清一下“资源”一词在这里指的是什么。我们在Kubernetes集群中创建的任何东西都被视为一种资源:部署、pod、服务等。在本文中,我们将重点介绍CPU和内存等主要资源,以及暂态存储和扩展资源等其他资源类型。


集群管理的一个方面是将这些资源自动分配给在pod中运行的容器,这样,理想情况下,每个容器都有它所需的资源(但没有更多)。


在本文中,我们将重点介绍集群上运行的容器的逻辑资源。我们将分析开发人员每天使用的四种常见Kubernetes资源:CPU、内存、暂态存储和扩展资源。对于每种资源,我们将 探索 如何在Kubernetes中衡量它,回顾如何监控每种特定资源,并强调优化资源使用的一些最佳实践。


CPU


Kubernetes集群通常运行在多台机器上,每台机器都有多个CPU核。它们加起来就是可用内核的总数。


我们不需要使用所有的内核。我们可以以1/1000的增量指定CPU核心的任何部分(例如,半个核心或500百万CPU)。


Kubernetes容器在Linux内核上运行,这允许指定cGroup来限制资源。Linux调度器将使用的CPU时间(由内部时间片定义)与定义的限制进行比较,以决定是否在下一个时间片中运行容器。我们可以使用kubectl top命令查询CPU资源,为pod或节点调用它。


我们可以通过改进算法和编码,或者通过编译器优化,使程序在容器中运行更加高效,从而优化处理器时间的使用。集群用户对预编译容器的速度或效率没有太大影响。


内存


Kubernetes集群中的每台机器也都有内存,加起来就是集群的总数。内核级控制主内存,类似于使用cGroup的CPU时间。如果容器中的例程请求的内存分配超出了硬限制,则表示内存不足错误。


优化资源使用在很大程度上取决于应用程序的开发工作。一个步骤是提高垃圾收集频率,以防止基于堆的镜像分配的内存超过硬限制。同样,kubectl top命令可以提供有关内存使用的信息。


探索 CPU和内存


作为我们的第一个深入示例,让我们将流行web服务器NGINX的三个复制容器部署到本地Kubernetes安装中。我们在笔记本电脑上运行一个单节点“集群”,它只有两个内核和2 GiB的内存。


下面的代码定义了这种pod部署,并将十分之一的核心(100 milli-CPU)和100 MiB的主内存授予三个NGINX容器中的每一个。下面的代码还将它们的使用限制为请求值的两倍。

apiVersion: apps/v1

kind: Deployment

metadata:

name: nginx-deployment

labels:

app: nginx

spec:

replicas: 3

selector:

matchLabels:

app: nginx

template:

metadata:

labels:

app: nginx

spec:

containers:

- name: nginx

image: nginx

resources:

requests:

cpu: "100m"

memory: "100Mi"

limits:

cpu: "200m"

memory: "200Mi"

ports:

- containerPort: 80


我们可以这样部署到默认命名空间:

kubectl apply -f nginx.yaml


本地集群只有一个节点。使用此命令可返回有关它的详细信息:

kubectl describe nodes docker-desktop


在剪切大部分输出后,我们可以检查一些有关资源使用的信息:

[...]

Namespace Name CPU. Requests CPU Limits Memory Requests Memory Limits Age

--------- ---- ------------ ---------- --------------- ------------- ---

default nginx-deployment-585bd9cc5f-djql8 100m (5%) 200m (10%)100Mi (5%) 200Mi (10%) 66s

default nginx-deployment-585bd9cc5f-gz98r 100m (5%) 200m (10%)100Mi (5%) 200Mi (10%) 66s

default nginx-deployment-585bd9cc5f-vmdnc 100m (5%) 200m (10%)100Mi (5%) 200Mi (10%) 66s

[...]

Resource Requests Limits

-------- -------- ------

cpu 1150m (57%) 600m (30%)

memory 540Mi (28%) 940Mi (49%)

ephemeral-storage 0 (0%) 0 (0%)

hugepages-1Gi 0 (0%) 0 (0%)

hugepages-2Mi 0 (0%) 0 (0%)

[...]


此信息显示CPU和内存使用请求和限制,就像我们的部署对象指定的那样。它还将值显示为最大可能分配的百分比。


接下来是该节点的当前总数,再次以绝对值和百分比列出。这些数字包括在kube系统命名空间中运行的一些其他容器,我们在这里没有显示这些容器,因此上面的输出中没有包含差异。


上面代码段的最后三行表示CPU和内存之外的其他类型的资源,在本例中,这些资源没有设置请求或限制。


暂态存储


另外一种Kubernetes资源类型是暂态存储。这是在pod生命周期内无法存活的挂载式存储。Kubernetes经常使用暂态存储来缓存或日志,但从不将其用于重要数据,如用户记录。我们可以请求或限制暂态存储,比如主内存,但它通常不是一种有限的资源。


那么,在上面的代码片段中,hugepages-1Gi和hugepages-2Mi是什么意思呢?巨页面是Linux内核的一种现代内存功能,用于为进程分配可配置大小的大型主内存页面。为了提高效率,我们可以这样做。


Kubernetes支持将如此大的页面分配给容器。这些构成了我们可以单独请求的每个页面大小的资源类型。


在指定请求或限制时,我们设置的是内存总量,而不是页数。

limits:

hugepages-2Mi: "100Mi"

hugepages-1Gi: "2Gi"Here, we limit the number of 2 MiB pages to 50 and the number of 1 GiB pages to 2.


扩展资源


集群用户还可以使用扩展资源类型定义自己的资源类型(每个集群或节点)。一旦定义了类型并指定了可用单元,我们就可以使用请求和限制,就像我们目前使用的内置资源一样。


例如:

limits:

cpu: "200m"

myproject.com/handles: 100


此设置将容器限制为核心的20%和项目句柄的100%。


资源请求和限制


请注意,资源请求和限制是我们讨论暂态存储和扩展资源的关键。这是因为最终用户可以在应用程序的部署清单中指定资源请求和限制,这对Kubernetes应该如何处理容器或pod施加了一些规则。


请求指示容器应该拥有多少资源。它们帮助调度器根据请求的资源量和节点上的可用资源量将pod分配给节点。


限制用于指示容器可以使用多少资源的硬上限,在操作系统级别强制执行。请求和限制是可选的,但如果我们不指定限制,容器可以使用节点的大部分资源,这可能会带来负面的成本或性能影响。因此,我们必须谨慎行事。


请记住,虽然一个pod可以包含多个容器,但通常每个pod只有一个容器。我们将资源分配给容器,但pod的所有容器都来自节点级别的公共资源池。


考虑服务质量


到目前为止,我们描述的资源系统是管理计算资源的一种相当简单的方法。Kubernetes提供了一个简单的服务质量(QoS)系统。


QoS描述了一个技术系统在硬件有限的情况下,在保持最佳总体质量的同时提供不同服务级别的方法。Kubernetes QoS系统为pod分配三个级别中的一个:Guaranteed、Burstable和BestEffort。


在pod的生命周期内,Guaranteed级别提供了所需且有限的资源,适合在恒定负载下运行的监控系统等应用。


Burstable服务级别适用于具有基本使用模式的pod,由于需求增加,这些pod的使用模式有时会超过基线。这个级别非常适合数据库或web服务器,它们的负载取决于传入请求的数量。


BestEffort不保证资源可用性。因此,它最适合于批处理作业之类的应用程序,它们可以在需要时重复,或者适合于非任务关键型的暂存环境。


结论


Kubernetes集群维护CPU时间、内存、暂态存储和扩展资源等硬件资源,并将它们分配给正在运行的容器。通过一个请求和限制系统,运维人员可以根据单个容器定制资源分配,然后让Kubernetes系统将它们适当地分配给节点。


扩展资源使我们能够定义自己的资源类型,并以类似的方式使用它们。Kubernetes还根据请求和限制将服务质量指定给pod。然后,它使用这些名称来制定计划和终止决策。


Kubernetes资源优化对于平衡成本和最终用户体验至关重要。然而,使用本文的方法手动分配参数可能会非常耗时、昂贵,而且难以扩展。



原文链接:

https://thenewstack.io/understanding-kubernetes-resource-types/

㈡ fatal error C1010: unexpected end of file while looking for precompiled head

我觉得可能是因为你不慎编辑错了某个头文件.
错误信息的意思是它的意思是头文件结尾的地方不应该是结尾.和你编译C程序时如果大括号不匹配等情况下出现此错误是一回事,所以建议针对该头文件仔细查查.
如果出错的文件是C++系统的头文件,可能需要从其它同样的系统中复制一份过来了.

㈢ 玩王者荣耀用什么手机最好吗

打王者荣耀比较好的手机有ROG游戏手机2、一加7T、华为Mate 30 Pro、vivo Xplay6、OPPO R17 Pro王者定制版。

1、ROG游戏手机2

ROG是国内专业的游戏手机厂商之一,今年下半年正式推出ROG游戏手机2,首发搭载了高通骁龙855 Plus处理器,这个处理器目前与苹果的A13、华为的麒麟990在同一阶梯队,性能十分强悍。同时ROG2全系标配UFS3.0高速闪充,也是目前最高水准,打开App、打开游戏更快,日常用机也更流畅。

4、vivo Xplay6

凭借着2K分辨率的5.46寸双曲面屏和针对性适配60帧的高帧率模式,Xplay6有着极好的游戏视觉体验和握感,而骁龙820+6GB运行内存+128GB UFS2.0的配置让它玩起《王者荣耀》来也没什么压力。

5、OPPO R17 Pro王者定制版

OPPO R17 Pro王者定制版给玩家们提供了超高清画质体验。从其实际表现来看,在超高清画质下的《王者荣耀》,带来了更多的互动效果。比如当英雄出城的时候,会有白鸽飞舞的画面出现,英雄过河道,水面也会泛起涟漪,画面细节更加丰富,使得玩家在游戏过程中有更强的带入感。

选购要点:

1、看接口

如今,Type-C接口已经渐渐成为市场上所使用的的主流接口,并且其不用分正反的特点也获得了大部分人的青睐。如果手机是Type-C接口,不仅使用起来更加方便,而且还能更好地搭配快充功能。

2、看快充功能

现在快充应该是手机的基本配置了吧,如果连快充都没有,那每次充电充一两个小时谁等得了啊!所以,购买手机时首先就得看看是否具备快充功能,然后还得看看是多大功率的,功率越大充电当然就越快。

3、看运行内存

手机的运行内存决定了手机的运行速度,尤其是安卓系统的手机,它的运行方式很吃运存。现在的旗舰机基本都是8G以上的运存,所以想要手机更长久不卡顿,那至少得选6G以上的运存才够。

阅读全文

与MI预编译系统相关的资料

热点内容
机械手的编程代码 浏览:93
生活需要解压游戏 浏览:834
acdsee压缩图片大小 浏览:572
反编译安卓刷机包 浏览:374
安卓手机刷新不了ins怎么办 浏览:436
python判断ip网段 浏览:362
穿越火线更新怎么开新服务器 浏览:316
腹部超声pdf 浏览:920
解压缩全能王能解压7z文件吗 浏览:249
python目录比较 浏览:645
公司程序员戴假发 浏览:345
oracle查看数据库状态命令 浏览:840
查汽车app叫什么 浏览:747
经济学英文pdf下载 浏览:799
python列表顺序 浏览:698
云南边缘计算服务器云服务器 浏览:105
小公司如何选择服务器 浏览:791
android指纹识别驱动 浏览:447
荣耀手机的系统有方舟编译器吗 浏览:629
单片机应用的论文 浏览:474