在CentOS系统中,ulimit命令用于控制shell进程及其子进程可以使用的系统资源。以下是ulimit在CentOS中的配置技巧:
ulimitulimit设置:ulimit -a
ulimit -f <size_in_kb>
ulimit -u <number_of_processes>
ulimit -n <number_of_open_files>
ulimit -t <seconds>
ulimit -v <size_in_kb>
ulimit -s <size_in_kb>
ulimit -n 4096
ulimit临时设置只对当前shell会话有效。要永久设置ulimit,需要修改系统配置文件。
/etc/security/limits.conf文件:sudo vi /etc/security/limits.conf
<username> soft <resource> <limit>
<username> hard <resource> <limit>
例如,为username用户设置最大打开文件数为4096:username soft nofile 4096
username hard nofile 4096
如果你需要为特定的服务(如Apache、Nginx等)设置ulimit,可以在服务的启动脚本中添加ulimit命令。
例如,对于Apache:
/etc/httpd/conf/httpd.conf文件:sudo vi /etc/httpd/conf/httpd.conf
<IfModule prefork.c>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 400
</IfModule>
<IfModule worker.c>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxClientsPerChild 100
</IfModule>
# 设置 ulimit
ulimit -n 4096
sudo systemctl restart httpd
根据CentOS版本不同,优先级也不同。以下是CentOS 6和CentOS 7的优先级比较:
CentOS 6:
ulimit命令设置/etc/security/limits.d//etc/security/limits.conf/etc/systemd/system.conf、/etc/systemd/user.confCentOS 7:
ulimit命令设置/etc/security/limits.conf/etc/security/limits.d//etc/systemd/system.conf、/etc/systemd/user.conf通过以上步骤,你可以在CentOS系统中灵活地设置ulimit,以满足不同应用和服务的需求。