欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

K8s內(nèi)存溢出問題剖析之排查與解決過程

 更新時間:2025年07月04日 10:07:57   作者:磐基Stack專業(yè)服務(wù)團(tuán)隊  
這篇文章主要介紹了K8s內(nèi)存溢出問題剖析之排查與解決過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

一、背景

做redis壓測過程中,發(fā)現(xiàn)paas環(huán)境的redis被OOMKill老是不斷重啟

在這里插入圖片描述

Pod日志:

在這里插入圖片描述

二、排查方案

1. 可能是數(shù)據(jù)量超出了限制的大小

檢查數(shù)據(jù)目錄大小

2. 查看是否是內(nèi)存溢出

開始排查

2.1 排查數(shù)據(jù)量(查看數(shù)據(jù)目錄大小是否超過limit限制)

limit限制為64G 查到數(shù)據(jù)目錄占用很少 忽略此問題

在這里插入圖片描述

2.2 查看pod詳情發(fā)現(xiàn)問題

在這里插入圖片描述

為了更準(zhǔn)確的定位問題,查看是否是內(nèi)存泄露問題,查看系統(tǒng)參數(shù)(正常是沒有輸出)

在這里插入圖片描述

確定是由于壓測導(dǎo)致的Cgroup內(nèi)存泄露問題

定位原因以后解決問題 :處理內(nèi)存泄露問題(試了三個方案才得以解決)

三、解決過程

方案一:(修改grub文件)

  • 修改/etc/default/grub 為:
GRUB_CMDLINE_LINUX=“crashkernel=auto net.ifnames=0 biosdevname=0 intel_pstate=disable cgroup.memory=nokmem”

是追加

GRUB_CMDLINE_LINUX=“console=tty0 console=ttyS0 crashkernel=512M-2G:128M,2G:512M rd.lvm.lv=bel/root rhgb quiet cgroup.memory=nokmem” 把 cgroup.memory=nokmem

追加到最后即可

  • 生成配置:
/usr/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg
  • 重啟機器:
reboot
  • 驗證:
cat /sys/fs/cgroup/memory/kubepods/burstable/pod*/*/memory.kmem.slabinfo 無輸出即可。

x版本cgroup.memory存在bug,docker或其他使用cgroup.memory中kmem功能的應(yīng)用會造成slab內(nèi)存泄漏 部分系統(tǒng)可以通過升級到4.x的修復(fù)版本來解決,或者通過 cgroup.memory=nokmem 啟動項來規(guī)避。 部分系統(tǒng)不支持cgroup.memory=nokmem 啟動項,可以通過 cgroup_disable=memory 啟動項來規(guī)避。(此方案解決部分機器,并未全部解決)

方案二:(升級內(nèi)核、Iaas建議)

由于服務(wù)器均為多系統(tǒng),可以進(jìn)行此操作

在這里插入圖片描述

既然是 3.x 的問題,直接升級內(nèi)核到 5.x 及以上即可,內(nèi)核問題解釋:

https://github.com/torvalds/linux/commit/d6e0b7fa11862433773d986b5f995ffdf47ce672

https://support.mesosphere.com/s/article/Critical-Issue-KMEM-MSPH-2018-0006

這種方式的缺點是: 需要升級所有節(jié)點,節(jié)點重啟的話已有 pod 肯定要漂移,如果節(jié)點規(guī)模很大,這個升級操作會很繁瑣,業(yè)務(wù)部門也會有意見,要事先溝通。

這個問題歸根結(jié)底是軟件兼容問題,3.x 自己都說了不成熟,不建議你使用該特性,k8s、docker卻 還要開啟這個屬性。(此方案并不奏效)

方案三:(grubby在線修改內(nèi)核參數(shù))

查看當(dāng)前內(nèi)核版本

在這里插入圖片描述

--update-kernel 為當(dāng)前內(nèi)核版本文件
grubby --args=cgroup.memory=nokmem --update-kernel=/boot/vmlinuz-3.10.0-1160.el7.x86_64

重啟主機 查看系統(tǒng)參數(shù) (顯示正常)

在這里插入圖片描述

查看pod正常運行

在這里插入圖片描述

附加知識點:(內(nèi)存buff占用清理 -hcache)

wget https://silenceshell-1255345740.cos.ap-shanghai.myqcloud.com/hcache
chmod 755 hcache && mv hcache /usr/local/bin/
hcache --top 10

查看內(nèi)存 free -h

在這里插入圖片描述

  • buffers: 用于塊設(shè)備數(shù)據(jù)緩沖,記錄文件系統(tǒng)metadata(目錄,權(quán)限,屬性等)
  • cached: 用于文件內(nèi)容的緩沖

分別查看

在這里插入圖片描述

清理緩存

僅清除頁面緩存(PageCache)

sync; echo 1 > /proc/sys/vm/drop_caches

清除目錄項和inode

# sync; echo 2 > /proc/sys/vm/drop_caches

清除頁面緩存,目錄項和inode

# sync; echo 3 > /proc/sys/vm/drop_caches

清理交換空間:

swapoff -a && swapon -a

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • kubernetes需要默認(rèn)的serviceaccount的原因解析

    kubernetes需要默認(rèn)的serviceaccount的原因解析

    這篇文章主要介紹了kubernetes為何需要默認(rèn)的serviceaccount,ServiceAccount 是 Kubernetes 中的一種重要概念,它的實際使用場景包括很多,本文給大家講解的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • Rainbond部署組件Statefulset的使用官方文檔

    Rainbond部署組件Statefulset的使用官方文檔

    這篇文章主要為大家介紹了官方文檔Rainbond部署組件Statefulset的使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • 自定義資源CRD使用介紹

    自定義資源CRD使用介紹

    這篇文章主要為大家介紹了自定義資源CRD的使用示例介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Kubernetes中crictl的詳細(xì)用法教程與應(yīng)用實戰(zhàn)記錄

    Kubernetes中crictl的詳細(xì)用法教程與應(yīng)用實戰(zhàn)記錄

    crictl作為Kubernetes的容器運行時接口(CRI)的命令行工具,為Kubernetes的調(diào)試和管理提供了強大的支持,通過本文的詳細(xì)介紹,你應(yīng)該已經(jīng)掌握了crictl的基本安裝、配置、常用命令以及高級用法,需要的朋友可以參考下
    2024-07-07
  • CentOS?8.2?k8s?基礎(chǔ)環(huán)境配置

    CentOS?8.2?k8s?基礎(chǔ)環(huán)境配置

    這篇文章主要介紹了CentOS?8.2?k8s?基礎(chǔ)環(huán)境配置,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • k8s如何給node添加標(biāo)簽(最新推薦)

    k8s如何給node添加標(biāo)簽(最新推薦)

    k8s集群如果由大量節(jié)點組成,可將節(jié)點打上對應(yīng)的標(biāo)簽,然后通過標(biāo)簽進(jìn)行篩選及查看,更好的進(jìn)行資源對象的相關(guān)選擇與匹配,這篇文章主要介紹了k8s如何給node添加標(biāo)簽,需要的朋友可以參考下
    2023-02-02
  • Kubernetes如何限制不同團(tuán)隊只能訪問各自namespace實現(xiàn)

    Kubernetes如何限制不同團(tuán)隊只能訪問各自namespace實現(xiàn)

    這篇文章主要為大家介紹了Kubernetes如何限制不同團(tuán)隊只能訪問各自namespace實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • k8s自動化安裝腳本(二進(jìn)制)的操作步驟

    k8s自動化安裝腳本(二進(jìn)制)的操作步驟

    Kubernetes?k8s安裝腳本,非常好用,下面這篇文章主要給大家介紹了關(guān)于k8s自動化安裝腳本(二進(jìn)制)的操作步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • 某集團(tuán)任意文件下載到虛擬主機getshell的方法

    某集團(tuán)任意文件下載到虛擬主機getshell的方法

    這篇文章主要介紹了某集團(tuán)任意文件下載到虛擬主機getshell的方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-01-01
  • k8s中容器創(chuàng)建的全過程實踐

    k8s中容器創(chuàng)建的全過程實踐

    這篇文章主要介紹了k8s中容器創(chuàng)建的全過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-07-07

最新評論