TCP/IP参数配置
修改文件/etc/sysctl.conf
,配置网络参数。
1
2
3
|
net.ipv4.
tcp_wmem = 4096 87380 4161536
net.ipv4.
tcp_rmem = 4096 87380 4161536
net.ipv4.
tcp_mem = 786432 2097152 3145728
|
数值根据需求进行调整。更多的参数可以看以前整理的一篇文章: Linux TCP/IP 协议栈调优 。
执行/sbin/sysctl -p
即时生效。
最大文件描述符
Linux内核本身有文件描述符最大值的**,你可以根据需要更改:
- 系统最大打开文件描述符数:/proc/sys/fs/file-max
- 临时性设置:
echo 1000000 > /proc/sys/fs/file-max
- 永久设置:修改
/etc/sysctl.conf
文件,增加fs.file-max = 1000000
- 临时性设置:
- 进程最大打开文件描述符数
使用ulimit -n
查看当前设置。使用ulimit -n 1000000
进行临时性设置。
要想永久生效,你可以修改/etc/security/limits.conf
文件,增加下面的行:
1
2
3
4
|
* hard nofile 1000000
* soft nofile 1000000
root hard nofile 1000000
root soft nofile 1000000
|
还有一点要注意的就是hard limit不能大于/proc/sys/fs/nr_open
,因此有时你也需要修改nr_open的值。
执行echo 2000000 > /proc/sys/fs/nr_open
查看当前系统使用的打开文件描述符数,可以使用下面的命令:
1
2
|
[root@localhost ~]# cat
/proc/sys/fs/file-nr
1632 0 1513506
|
其中第一个数表示当前系统已分配使用的打开文件描述符数,第二个数为分配后已释放的(目前已不再使用),第三个数等于file-max。
总结一下:
- 所有进程打开的文件描述符数不能超过/proc/sys/fs/file-max
- 单个进程打开的文件描述符数不能超过user limit中nofile的soft limit
- nofile的soft limit不能超过其hard limit
- nofile的hard limit不能超过/proc/sys/fs/nr_open