以下会介绍在 Linux 检查及设定开启档案数量的限制。
要检查目前系统最大开启档案的数量、可以透过查看档案 /proc/sys/fs/file-max, 例如:
# cat /proc/sys/fs/file-max
791176
791176
以上的数值 791176,是每个帐号的 login session 下最多可开启的档案数量。
对于一台服务器,有些服务需要很大量的档案,例如 Apache 及 MySQL 等、要更改这个数值,可以使用 sysctl 指令,sysctl 的作用是在系统执行时,设定 kernel 的参数。
例如想将开启档案限制设定为 500000, 指令是这样的:
# sysctl -w fs.file-max=500000
输入以上指令后,变更会立即生效,但当重新开机后,又会回复到原来的设定值,要永久改变这个数设,要开启档案 /etc/sysctl.conf:
# vi /etc/sysctl.conf
加下以下这行:
fs.file-max=500000
储存盘案后离开,这样下次开机后也会保留这个设定。
另一种情况是,想对个别帐号设定开启档案上限,需要开启档案 /etc/security/limits.conf:
# vi /etc/security/limits.conf
在档案最后, 以以下格式的设定帐号开启档案上限, 每行一个帐号:
例如想对帐号 account01 设定 soft 及 hard limits:
|
1 2 |
account01 hard nofile 4096 account01 soft nofile 1024 |
储存后离开编辑器。