pid cgroup

1、為了避免系統(tǒng)資源被耗光,需要對(duì)進(jìn)程的最大進(jìn)程數(shù)進(jìn)行限制,通過(guò)向?qū)?yīng)進(jìn)程所在 cgroup 的 pid.max 文件中寫(xiě)入具體的數(shù)字來(lái)限制其進(jìn)程數(shù)。默認(rèn)值為 ‘max’ 也就是不限制,和 cgroup 最上層中的限制數(shù)保持一致。pids.current 表示 cgroup 該層路徑下已經(jīng)使用 pid 數(shù)量。如果 pid 已經(jīng)達(dá)到上限,再創(chuàng)建進(jìn)程會(huì)出現(xiàn) Resource temporary unavailable 報(bào)錯(cuò);

2、pid 被大量使用的原因:每一個(gè)進(jìn)程都需要一個(gè) pid,也會(huì)占用一定的資源,如果不限制進(jìn)程數(shù),可能會(huì)出現(xiàn)類(lèi)似 fork bomb 耗光系統(tǒng)資源的問(wèn)題。通常來(lái)說(shuō)容器中可能由于 init 進(jìn)程沒(méi)有回收子進(jìn)程而出現(xiàn)大量僵尸進(jìn)程導(dǎo)致 pid 被耗光,當(dāng)子進(jìn)程退出時(shí)父進(jìn)程沒(méi)有回收子進(jìn)程時(shí),子進(jìn)程就會(huì)成為僵尸進(jìn)程;

3、系統(tǒng) pid 最大值設(shè)置:pid 最大值可以在系統(tǒng)文件 /proc/sys/kernel/pid_max 中看到,系統(tǒng)在初始化時(shí)默認(rèn)會(huì)設(shè)置最大值,一般小于等于 32 核的機(jī)器,pid_max 會(huì)被默認(rèn)設(shè)置為 32768,大于32核的默認(rèn)被設(shè)置為 核數(shù)*1024;

參考:
https://www.kernel.org/doc/Documentation/cgroup-v1/pids.txt

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 認(rèn)識(shí)容器 Namespace幫助容器來(lái)實(shí)現(xiàn)各種計(jì)算資源的隔離,Cgroups主要限制的是容器能夠使用的某種資源量。...
    一生逍遙一生閱讀 1,054評(píng)論 0 1
  • 容器是鏡像的一個(gè)運(yùn)行實(shí)例。比較大的不同的是,鏡像是靜態(tài)的只讀文件,而容器帶有運(yùn)行時(shí)需要的可寫(xiě)文件層。 本文記錄容器...
    wean_a23e閱讀 1,107評(píng)論 0 1
  • Android進(jìn)程管理三部曲[3]-內(nèi)存的回收 http://www.itdecent.cn/p/c170f17...
    Kevin_Junbaozi閱讀 1,749評(píng)論 2 2
  • 1 進(jìn)程的概念 Linux內(nèi)核把進(jìn)程稱(chēng)為任務(wù)(task),進(jìn)程的虛擬地址空間分為用戶(hù)虛擬地址空間和內(nèi)核虛擬地址空間...
    CHCD閱讀 1,511評(píng)論 0 0
  • 轉(zhuǎn)載:淺談Cgroups 說(shuō)起容器監(jiān)控,首先會(huì)想到通過(guò)Cadvisor, Docker stats等多種方式獲取容...
    meng_philip123閱讀 969評(píng)論 0 2

友情鏈接更多精彩內(nèi)容