socket开发网络设置

1. 进程级别设置(fs.nr_open)

  • 查看
$ cat /proc/sys/fs/file-nr
8928    0       100000

输出三个值的意思是:

  1. 已经分配的文件句柄数
  2. 已经分配但没有使用的文件句柄数
  3. 最大文件句柄数
  • 设置
$ 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

posted on 2023-04-09 14:37  Netsharp  阅读(28)  评论(0编辑  收藏  举报

导航