centos7下以service配置文件啟動的服務ULIMIT資源受誰限制应民?

在bash中,有個ulimit命令夕吻,提供了對shell及該shell啟動的進程的可用資源控制诲锹。主要包括打開文檔描述符數量、用戶的最大進程數量涉馅、coredump文檔的大小等归园。

在centos 5/6 等版本中,資源限制的配置可以在 /etc/security/limits.conf 設置稚矿,針對root/user等各個用戶或者*代表所有用戶來設置庸诱。

當然捻浦,/etc/security/limits.d/ 中也可以配置,系統(tǒng)是先加載limits.conf然后按照英文字母順序加載limits.d目錄下的配置文檔桥爽,

后加載配置覆蓋之前的配置朱灿。

在centos7中/etc/security/limits.d/20-nproc.conf配置文件中默認設置了非root用戶的最大進程數為4096,會覆蓋/etc/security/limits.conf文件中的配置钠四。

一個配置示例如下:

* soft core 100000
* hard core 100000
* soft nofile 100000
* hard nofile 100000
* soft nproc 100000
* hard nproc 100000

格式如下:
username|@groupname type resource limit
username|@groupname:設置需要被限制的用戶名盗扒,組名前面加@和用戶名區(qū)別。也可以用通配符*來做所有用戶的限制缀去。

type:有 soft侣灶,hard 和 -,soft 指的是當前系統(tǒng)生效的設置值缕碎。hard 表明系統(tǒng)中所能設定的最大值褥影。soft 的限制不能比har 限制高。用 - 就表明同時設置了 soft 和 hard 的值

resource:
core - 限制內核文件的大小
date - 最大數據大小
fsize - 最大文件大小
memlock - 最大鎖定內存地址空間

nofile - 打開文件的最大數目

rss - 最大持久設置大小
stack - 最大棧大小
cpu - 以分鐘為單位的最多 CPU 時間

noproc - 進程的最大數目

as - 地址空間限制
maxlogins - 此用戶允許登錄的最大數目

在CentOS 7 / RHEL 7的系統(tǒng)中咏雌,使用Systemd替代了之前的SysV

因此 /etc/security/limits.conf 文檔的配置作用域縮小了伪阶。limits.conf這里的配置,只適用于通過PAM認證登錄用戶的資源限制处嫌,

它對systemd的service的資源限制不生效

登錄用戶的限制栅贴,與上面講的一樣,通過 /etc/security/limits.conf 和 limits.d 來配置即可熏迹。

對于systemd service的資源限制檐薯,是受誰限制呢?

全局的配置:放在文檔 /etc/systemd/system.conf 和 /etc/systemd/user.conf注暗。

與此同時坛缕,也會加載下面兩個對應的目錄中的所有.conf文檔
/etc/systemd/system.conf.d/
/etc/systemd/user.conf.d/

system.conf 是系統(tǒng)實例使用的
user.conf用戶實例使用的
一般的sevice,使用system.conf中的配置即可捆昏,在[Service]模塊下添加如下內容赚楚。
systemd.conf.d/*.conf中配置會覆蓋system.conf的配置。

#生產環(huán)境一般處于禁用狀態(tài)
#DefaultLimitCORE=infinity         
#核心轉儲文件大小不限制骗卜,它是進程運行時突然崩潰的那一刻的內存快照宠页。操作系統(tǒng)在程序發(fā)生異常而異常在進程內部又沒有被捕獲的情況下,會把進程此刻內存寇仓、寄存器狀態(tài)举户、運行堆棧等信息轉儲保存在一個文件里,可使用 gdb 工具來分析遍烦。core dump 生產環(huán)境一般處于禁用狀態(tài)俭嘁,對于內存消耗性的進程,core dump 時會占用很多系統(tǒng)資源服猪,磁盤空間也可能被寫滿。
DefaultLimitNOFILE=1048576
#服務進程可以打開文件的最大數目為1048576
DefaultLimitNPROC=65535
#進程可以打開的最大線程數目為65535

# cat /etc/systemd/system.conf | grep -v '^#' | grep -v '^$'
[Manager]
DefaultLimitCORE=infinity
DefaultLimitNOFILE=1048576
DefaultLimitNPROC=65535

# cat /etc/systemd/user.conf | grep -v '^#' | grep -v '^$'
[Manager]
DefaultLimitCORE=infinity
DefaultLimitNOFILE=1048576
DefaultLimitNPROC=65535

注:修改了system.conf后,需要重啟系統(tǒng)才會生效查吊。
測試中發(fā)現執(zhí)行以下命令也可以讓 systemd 加載最新配置,不過官方文檔說明該命令很少用慨丐,主要在 debugging 和 package upgrades 時使用。

 systemctl daemon-reexec

之前啟動的service服務也不會自動加載新的限制參數 泄私,需要重啟對應的service服務才會變更限制房揭。

daemon-reload重新加載的是所有單元文件,而不是systemd本身的配置。

daemon-reexec

Reexecute the systemd manager. This will serialize the manager state, reexecute the process and deserialize the state again. This command is of little use except for debugging and package upgrades. Sometimes, it might be helpful as a heavy-weight daemon-reload. While the daemon is being reexecuted, all sockets systemd listening on behalf of user configuration will stay accessible.

除了 LimitCORE晌端,還可以在 service 文件中配置 LimitNOFILE捅暴、LimitSTACK、LimitNPROC 等資源限制咧纠,配置時請注意單位蓬痒,詳見:

https://www.freedesktop.org/software/systemd/man/systemd.exec.htmlsystemd.execsystemd.exec

針對單個Service,也可以設置漆羔,以nginx為例梧奢。

編輯 /usr/lib/systemd/system/nginx.service 文檔在[Service]模塊下添加如下內容:

[Service]
LimitCORE=infinity
LimitNOFILE=1048576
LimitNPROC=65535

然后運行如下命令,才能生效演痒。

systemctl daemon-reload

systemctl restart nginx.service

查看一個進程的limit設置:cat /proc/YOUR-PID/limits

例如我的一個nginx service的配置效果:

$ cat /proc/$(cat /usr/local/nginx/logs/nginx.pid)/limits
 
Limit                     Soft Limit           Hard Limit           Units
Max cpu time              unlimited            unlimited            seconds
Max file size             unlimited            unlimited            bytes
Max data size             unlimited            unlimited            bytes
Max stack size            8388608              unlimited            bytes
Max core file size        unlimited            unlimited            bytes
Max resident set          unlimited            unlimited            bytes
Max processes             65535               65535               processes
Max open files            1048576               1048576               files
Max locked memory         65536                65536                bytes
Max address space         unlimited            unlimited            bytes
Max file locks            unlimited            unlimited            locks
Max pending signals       1030606              1030606              signals
Max msgqueue size         819200               819200               bytes
Max nice priority         0                    0
Max realtime priority     0                    0
Max realtime timeout      unlimited            unlimited            us

cat /proc/$(ps -ef | grep XXX.jar | grep -v grep | awk '{print $2}')/limits
cat /proc/$(ps -ef | grep jenkins.war | grep -v grep | awk '{print $2}')/limits

參考文獻 systemd service 如何開啟 core dump
https://zhuanlan.zhihu.com/p/41153588
https://www.wenjiangs.com/doc/systemd-systemd-system-conf#f0f093f535dca6ab3fc14deae410700b

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末亲轨,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子鸟顺,更是在濱河造成了極大的恐慌惦蚊,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件讯嫂,死亡現場離奇詭異蹦锋,居然都是意外死亡,警方通過查閱死者的電腦和手機欧芽,發(fā)現死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門莉掂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人千扔,你說我怎么就攤上這事憎妙。” “怎么了昏鹃?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵尚氛,是天一觀的道長。 經常有香客問我洞渤,道長,這世上最難降的妖魔是什么属瓣? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任载迄,我火速辦了婚禮讯柔,結果婚禮上,老公的妹妹穿的比我還像新娘护昧。我一直安慰自己魂迄,他們只是感情好,可當我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布惋耙。 她就那樣靜靜地躺著捣炬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪绽榛。 梳的紋絲不亂的頭發(fā)上湿酸,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天,我揣著相機與錄音灭美,去河邊找鬼推溃。 笑死,一個胖子當著我的面吹牛届腐,可吹牛的內容都是我干的铁坎。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼犁苏,長吁一口氣:“原來是場噩夢啊……” “哼硬萍!你這毒婦竟也來了?” 一聲冷哼從身側響起围详,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤襟铭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后短曾,有當地人在樹林里發(fā)現了一具尸體寒砖,經...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年嫉拐,在試婚紗的時候發(fā)現自己被綠了哩都。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡婉徘,死狀恐怖漠嵌,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情盖呼,我是刑警寧澤儒鹿,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站几晤,受9級特大地震影響约炎,放射性物質發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一圾浅、第九天 我趴在偏房一處隱蔽的房頂上張望掠手。 院中可真熱鬧,春花似錦狸捕、人聲如沸喷鸽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽做祝。三九已至,卻和暖如春鸡岗,著一層夾襖步出監(jiān)牢的瞬間混槐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工纤房, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留纵隔,地道東北人。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓炮姨,卻偏偏與公主長得像捌刮,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子舒岸,可洞房花燭夜當晚...
    茶點故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內容