講講 Linux 下的一些資源限制
點(diǎn)擊上方“程序員大白”,選擇“星標(biāo)”公眾號(hào)
重磅干貨,第一時(shí)間送達(dá)
原文地址:https://adlternative.github.io/resource-limit/
前言

用戶(hù)層面資源限制
-----------------------------------------------------
該文件為通過(guò)PAM登錄的用戶(hù)設(shè)置資源限制。
它不會(huì)影響系統(tǒng)服務(wù)的資源限制。
-----------------------------------------------------
所以 ulimit 的確是觀(guān)察用戶(hù)層面的資源限制。
我們可以通過(guò) ulimit -a 查看我們所有的資源上限:

只說(shuō)其中我們比較關(guān)注的那些:
-s 棧大小:8MB
-u 進(jìn)程上限:30000多
-n 文件描述符上限:1024

實(shí)驗(yàn)1. 修改文件描述符上限
在/etc/security/limits.conf中添加以下片段:

重啟后,然后查看一下資源是否真的被修改了:



實(shí)驗(yàn)2. 修改??臻g上限
同樣還是在/etc/security/limits.conf添加這樣兩句:




系統(tǒng)層面資源限制
單個(gè)進(jìn)程打開(kāi)文件句柄數(shù)上限 最大文件描述符數(shù) 10億。

系統(tǒng)分配的pid上限是400多萬(wàn)。

file-max是在內(nèi)核級(jí)別強(qiáng)制執(zhí)行的最大文件描述符(FD),上限600萬(wàn)。

已分配的文件文件描述符數(shù),已分配但未使用的文件描述符數(shù)以及最大文件描述符數(shù)(不可調(diào))。

系統(tǒng)全局的總線(xiàn)程數(shù)限制為6萬(wàn)。

單個(gè)程序所能使用內(nèi)存映射空間的數(shù)量為6萬(wàn)。

可以創(chuàng)建的線(xiàn)程的總數(shù)和這些有關(guān):

一個(gè)進(jìn)程的資源限制

redis中文件描述符上限的調(diào)整
Increased maximum number of open files to 10032 (it was originally set to 1024).
其源碼中也不過(guò)是調(diào)用了api:
setrlimit(RLIMIT_NOFILE,&limit)
去進(jìn)行了資源上限的臨時(shí)調(diào)整,此處不細(xì)講。
prlimit
最后介紹另外一個(gè)類(lèi)似ulimit的命令prlimit:

結(jié)語(yǔ)
推薦閱讀
關(guān)于程序員大白
程序員大白是一群哈工大,東北大學(xué),西湖大學(xué)和上海交通大學(xué)的碩士博士運(yùn)營(yíng)維護(hù)的號(hào),大家樂(lè)于分享高質(zhì)量文章,喜歡總結(jié)知識(shí),歡迎關(guān)注[程序員大白],大家一起學(xué)習(xí)進(jìn)步!


