在Linux下面部署应用的时候,有时候会遇上Socket/File: Can’t open so many files的问题,比如还有Squid做代理,当文件打开数到900多时速能就非常快的下降,有可能打不开网页.其实Linux是有文件句柄限制的,而且Linux默认不是很高,一般都是1024,生产服务器用其实很容易就达到这个数量
[root@mail data]# ulimit -a
core file size
data seg size
scheduling priority
file size
pending signals
max locked memory
max memory size
open files
pipe size
POSIX message queues
real-time priority
stack size
cpu time
max user processes
virtual memory
file locks
[separator]
[root@kyouwar data0]# cat /proc/sys/fs/file-max
372901
[root@kyouwar data0]# cat /proc/sys/fs/file-nr
3200
=====================================
ulimit 用于shell启动进程所占用的资源。
可以使用该命令查看进程占用资源的情况。
使用方法:ulimit [-acdfHlmnpsStvw] [size]
-H 设置硬件资源限制.
-S 设置软件资源限制.
-a 显示当前所有的资源限制.
-c size:设置core文件的最大值.单位:blocks
-d size:设置数据段的最大值.单位:kbytes
-f size:设置创建文件的最大值.单位:blocks
-l size:设置在内存中锁定进程的最大值.单位:kbytes
-m size:设置可以使用的常驻内存的最大值.单位:kbytes
-n size:设置内核可以同时打开的文件描述符的最大值【每个进程可以打开的文件数目】【也包含打开的SOCKET数量,可影响MySQL的并发连接数目】.单位:n
-p size:设置管道缓冲区的最大值.单位:kbytes
-s size:设置堆栈的最大值.单位:kbytes
-t size:设置CPU使用时间的最大上限.单位:seconds
-v size:设置虚拟内存的最大值.单位:kbytes 5
-u 设置各linux 用户的最大进程数
============================================
#暂时修改直接使用
如:
----------------------------------------------------
# 永久地,通过将一个相应的 ulimit 语句添加到由登录 shell 读取的文件中, 即特定于 shell 的用户资源文件,如
1)、解除 Linux 系统的最大进程数和最大文件打开数限制:
vi /etc/security/limits.conf
# 添加如下的行
* soft noproc 11000
* hard noproc 11000
* soft nofile 8192
* hard nofile 8192
#如此每次用户登录后就依照此值设置。
说明:* 代表针对所有用户
noproc 是代表最大进程数
nofile 是代表最大文件打开数
============================================
2)、让 SSH 接受 Login 程式的登入,方便在 ssh 客户端查看 ulimit -a 资源限制:
#新版本好像不用设置这个!也没有这个配置选项
============================================
3)、修改所有 linux 用户的环境变量文件:
vi /etc/profile
ulimit -u 10000
ulimit -n 4096
ulimit -d unlimited
ulimit -m unlimited
ulimit -s unlimited
ulimit -t unlimited
ulimit -v unlimited
============================================
4)、生效
----------------------------------------------------
============================================
特殊说明:
============================================
补充:可不设置
修改2个文件。
1./etc/security/limits.conf
vi /etc/security/limits.conf
加上:
* soft nofile 8192
* hard nofile 20480
----------------------------------------------------
2./etc/pam.d/login
session required /lib/security/pam_limits.so
session required /lib/security/$ISA/pam_limits.so
----------------------------------------------------
3.一般用户的.bash_profile
#ulimit -n 1024
重新登陆ok
ulimit命令优化linux进程连接数等…
最新推荐文章于 2024-04-04 23:13:22 发布