第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Kubernetes中的CPU配置與編程語(yǔ)言的性能問題:從Linux CFS調(diào)度談起

Kubernetes CPU 配置项到 Linux CFS

使用 Kubernetes 时,你可以通过 resources.requestsresources.limits 设置资源请求和限制,比如说:

apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
  - name: 应用容器
    image: nginx
    resources:
      requests:
        cpu: "250m"
      limits:
        cpu: "500m"

容器的资源配置通过CRI组件(例如containerdcri-o)通过底层运行时如runckata-container来实现,并应用到Linux的cgroups系统。

在 cgroup v1(目前比较主流的版本,而 v2 正在开发中):

  • requests.cpu 对应于 cgroup 中的 cpu.sharescpu.shares = 1024 表示一个 CPU 内核。对于 requests.cpu = 250m(0.25 个核心),等效的 cpu.shares1024 * 0.25 = 256。此配置仅在 CPU 资源竞争时生效,决定容器间如何按比例分配 CPU 时间。
  • limits.cpu 对应以下 cgroup 参数:
  • cpu.cfs_period_us:指定 CPU 调度周期,通常为 100000 微秒(100 毫秒)。
  • cpu.cfs_quota_us:表示容器在一个周期内最多能使用的 CPU 时间。对于 limits.cpu = 500m(0.5 个核心),对应的 cpu.cfs_quota_us100000 * 0.5 = 50000

这些设置可以通过在容器内的 /sys/fs/cgroup/cpu/ 或直接在主机的 /sys/fs/cgroup/cpu/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod<uid>.slice/cri-containerd-<uid>.scope/ 中查看。

因此,在容器环境中,CPU 限制是通过 Linux 的 CFS 机制来执行的。这就引出了一个自然的问题:应用程序或编程语言在容器内感知到的 CPU 核数是怎样的?

在容器环境下的编程语言

在使用CPU核心数量来设置协程、线程或进程时,可能会遇到意外的性能问题。

Go 中,goroutines 使用 GPM(Goroutine-Processor-Machine)模型中进行调度,其中处理器的数量由 GOMAXPROCS 决定。默认情况下,GOMAXPROCS 设置为 runtime.NumCPU(),这会根据主机的 CPU 核心数进行设置。这可能会增加应用程序的延迟,尤其是在容器的 CPU 配额较小时,而主机资源相对充裕时。

解决方法是设置 GOMAXPROCS = max(1, 取整(floor)(cpu_quota)),或者使用 uber-go/automaxprocs 这个库。更多细节可以在这里找到:https://github.com/golang/go/issues/33803

Java 中,JVM 的垃圾收集机制与 Linux 的 CFS 调度程序之间的交互可能导致长时间的 STW(Stop-The-World,停止世界)事件。LinkedIn 的工程师在其博文《在 Linux 控制组中运行 JVM 时的应用程序暂停》中建议,应分配足够的 CPU 配额,并根据具体情况调整 GC 线程。

更好的做法是通过显式设置与容器资源限制相关的配置来消除模糊性。

最后的总结

Kubernetes工作负载的CPU配额会指导Linux CFS的行为,这可能会导致意想不到的性能问题,特别是在应用程序的执行中。

参考:

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消