socket开发网络设置
1. 进程级别设置(fs.nr_open)
- 查看
$ cat /proc/sys/fs/file-nr
8928 0 100000
输出三个值的意思是:
- 已经分配的文件句柄数
- 已经分配但没有使用的文件句柄数
- 最大文件句柄数
- 设置
$ echo "fs.nr_open = 6553560" >> /etc/sysctl.conf
$ sysctl -p
2. 用户级别设置(nofile)
查看默认进程句柄最大数量
$ ulimit -n
1024
可通过这个命令临时修改,重启后无效
$ ulimit -n 1024000
ulimit命只对“该shell进程”及随后新产生的子进程有效。就是你在shell中使用了ulimit命令,在别的shell中打开的进程中ulimit设置是无效的。
通过修改配置文件/etc/security/limits.conf
来修改最大句柄,修改成下面内容
* soft nofile 6553500
* hard nofile 6553500
- 前面的*星号代表全局,针对所有的用户
- nofile代表文件句柄数量
- soft nofile的值不能超过hard nofile的值
注意:/etc/security/limits.conf
文件修改后需要重启
3. 系统级别设置(fs.file-max)
$ echo "fs.file-max = 6553560" >> /etc/sysctl.conf
$ sysctl -p
4. 阿里云ECS使用ubuntu22镜像后/etc/sysctl.conf的默认配置
vm.swappiness = 0
kernel.sysrq = 1
net.ipv4.neigh.default.gc_stale_time = 120
# see details in https://help.aliyun.com/knowledge_detail/39428.html
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
# see details in https://help.aliyun.com/knowledge_detail/41334.html
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_slow_start_after_idle = 0
作者 :秋时
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。