centos 7.x主機下的limits資源限制

寫此文章的原由是Centos 7.x環境安裝MySQL時遇到了問題,以前在Centos 6.x環境安裝MySQL,在/etc/security/limits.conf文件中對打開文件nofile作了限制,重啓MySQL後生效,可是在Centos 7.x環境卻沒用。php

分析發現/etc/security/limits.conf只對pam登陸用戶起做用,而若經過systemd啓動服務,此配置文件不起做用。對於systemd啓動的服務,按照優先級(後者覆蓋前者)起做用的是:mysql

  • /etc/systemd/system.conf :設置系統級服務全局默認值(PS:需重啓系統生效),如:
% vi /etc/systemd/system.conf 
...
DefaultLimitNOFILE=50000
...
  • 服務自己,如mysql進程:
% vi /usr/lib/systemd/system/mysqld.service
[Service]
...
LimitNOFILE = 20000
...
% systemctl deamon-reload
% systemctl restart mysqld

檢查:linux

% cat /proc/13010/limits 
Limit                     Soft Limit           Hard Limit           Units     
Max open files            20000                20000                files 
...

注意:上面只是爭對系統級服務,即便用systemctl start/stop管理的服務,而對於systemctl --user管理的用戶級服務(PS:很是少用,且須要特殊配置),環境變量或limits限制由以下文件限制:sql

  1. ~/.config/systemd/user.conf:對於有HOME的用戶,可再此目錄配置;
  2. /etc/systemd/user.conf:用戶級別默認配置;
  3. /etc/systemd/system/user@.service.d/:對於全部用戶級別管理的服務生效;
  4. /etc/systemd/system/user@<uid>.service.d:對於特定用戶生效;

參考文檔:shell

相關文章
相關標籤/搜索