当前位置: 首页 > news >正文

单位做网站备案用身份证有啥用外贸业务推广

单位做网站备案用身份证有啥用,外贸业务推广,四川省人民政府副秘书长名单,做一个app的成本连接数上限条件 文件句柄的限制 一个tcp连接就需要占用一个文件描述符,一旦文件描述符用完,新的连接就会返回给我们错误是:Can’topen so many files。linux系统出于安全角度的考虑,在多个维度对于可打开的文件描述符进行了限制…

连接数上限条件

文件句柄的限制

一个tcp连接就需要占用一个文件描述符,一旦文件描述符用完,新的连接就会返回给我们错误是:Can’topen so many files。linux系统出于安全角度的考虑,在多个维度对于可打开的文件描述符进行了限制,通常是系统限制、用户限制、进程限制。

限制维度描述查看默认修改
系统(fs.file-max)限制整个系统的文件句柄个数cat /proc/sys/fs/file-max-编辑 /etc/sysctl.conf 文件,加入:
fs.file-max=1000000
然后执行sysctl -p命令使其生效
进程(fs.nr_open)限制系统单个进程可打开的最大文件件句柄数量cat /proc/sys/fs/nr_open-编辑 /etc/sysctl.conf 文件,加入:
fs.nr_open=1000000
然后执行sysctl -p命令使其生效
用户进程(nofile)限制每个用户的进程可打开的最大文件句柄数量ulimit -n-临时修改:ulimit -n 1000000
永久修改:编辑 /etc/security/limits.conf 文件:
* soft nofile 55000
* hard nofile 55000
上面修改对所有用户生效。
注意!!!:hard nofile 一定要比 fs.nr_open 要小,否则可能导致用户无法登陆。

端口限制

操作系统采用 <客户端IP : 客户端端口> : <服务端IP : 服务端端口> 四元组来标识一条TCP连接。

端口范围

一个IP的端口范围是1024-65535。

查看方法
$ sysctl net.ipv4.ip_local_port_range

$ cat /proc/sys/net/ipv4/ip_local_port_range
修改方法

临时修改:

# 临时修改方法1
$ echo 1024 65535 > /proc/sys/net/ipv4/ip_local_port_range# 临时修改方法2
$ sysctl -w net.ipv4.ip_local_port_range="1024 64000"

永久修改:
编辑 /etc/sysctl.conf 文件,在其中加入:

net.ipv4.ip_local_port_range = 1024 65535

连接突破限制方法

服务端一般不会存在端口限制的问题,服务端开一个listen端口,只要文件句柄没达上限,就可以建立连接。
针对客户端的端口限制,有下面的方法:

  • 服务器端只开启一个进程,然后使用很多个客户端进程绑定不同的客户端 ip 来连接
  • 服务器开启多个进程,这样客户端就可以只使用一个 ip 即可

supervisor控制的程序

CentOS上使用系统自带的supervisor,使用systemd启动supervisord的服务。被supervisor管理、启动的进程,并不会使用 /etc/security/limits.conf 中配置的 nofile 数值,继承的是systemd对应的限制。

在supervisord 的配置文件 /etc/supervisor.conf中调整

检查 supervisord 的配置文件 /etc/supervisor.conf 中,会发现一个 minfds 的参数设置了 nofile 限制,默认为 1024。

[supervisord]minfds=100000                 ; (min. avail startup file descriptors;default 1024)
minprocs=100000                ; (min. avail process descriptors;default 200)

minprocs 参数,minprocs 对应的是 rlimit 中的 nproc, nproc 代表一个进程最多可以创建的线程数。

在启动.service文件里面修改对应的限制

$ vim /usr/lib/systemd/system/supervisord.service
[Unit]
Description=Process Monitoring and Control Daemon
After=network.target[Service]
Type=forking
LimitCORE=infinity
LimitNOFILE=100000 
LimitNPROC=100000
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
ExecReload=/usr/bin/supervisorctl reload
ExecStop=/usr/bin/supervisorctl shutdown[Install]
WantedBy=multi-user.target

重新加载

$ systemctl daemon-reload
$ systemctl restart supervisord.service

nginx 连接突破上限

首先参考上面的内容调整文件句柄数量。其次创建子网卡,将请求分配到不同的 ip上,最后调整nginx配置。

创建子网卡

ifconfig eth0:0 192.168.1.11/24 up
ifconfig eth0:1 192.168.1.12/24 up
ifconfig eth0:2 192.168.1.13/24 up
ifconfig eth0:3 192.168.1.14/24 up
ifconfig eth0:4 192.168.1.15/24 up
ifconfig eth0:5 192.168.1.16/24 up
ifconfig eth0:6 192.168.1.17/24 up
ifconfig eth0:7 192.168.1.18/24 up
ifconfig eth0:8 192.168.1.19/24 up
ifconfig eth0:9 192.168.1.10/24 up
ifconfig eth0:10 192.168.1.20/24 up
ifconfig eth0:11 192.168.1.21/24 up
ifconfig eth0:12 192.168.1.22/24 up
ifconfig eth0:13 192.168.1.23/24 up
ifconfig eth0:14 192.168.1.24/24 up

调整nginx配置

  1. 修改Nginx最大打开文件数为 100w
worker_rlimit_nofile 1000000;
  1. 修改Nginx事件处理模型
events {use epoll;worker_connections 1000000;
}

3.配置应用请求
后端 go应用程序监听在 9505 端口,nginx中配置 upstream

upstream go-ws {server 127.0.0.1:9505;keepalive 128;
}location /ws {proxy_redirect off;proxy_bind $split_ip;proxy_pass http://go-ws;proxy_bind $spl_set_header X-Forwarded-For $proxy_add_x_forwarded_for;# WebSocket 支持的核心配置proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection $http_connection;proxy_intercept_errors on;client_max_body_size 20m;}#将请求分配到不同ip上
split_clients "$remote_addr$remote_port" $split_ip {10%  192.168.1.11;10%  192.168.1.12;10%  192.168.1.13;10%  192.168.1.14;10%  192.168.1.15;10%  192.168.1.16;10%  192.168.1.17;10%  192.168.1.18;10%  192.168.1.19;10%  192.168.1.20;10%  192.168.1.21;10%  192.168.1.22;10%  192.168.1.23;10%  192.168.1.24;*    192.168.1.10;
}

如果句柄数并未达到100万就报http: Accept error: accept tcp [::]:9505: accept4: too many open files; retrying in 40ms

尝试调整 supervisorctl句柄数据试试。

netty 连接数设置

netty中跟连接数相关的参数是ChannelOption.SO_BACKLOG,对应的是tcp/ip协议, listen函数 中的 backlog 参数,用来初始化服务端可连接队列。

linux内核中的两个队列

在linux系统内核中维护了两个队列:syns queue和accept queue

服务端处理客户端连接请求是顺序处理的,所以同一时间只能处理一个客户端连接,多个客户端来的时候,服务端将不能处理的客户端连接请求放在队列中等待处理。

  • syns queue:保存一个SYN已经到达,但三次握手还没有完成的连接。

    用于保存半连接状态的请求,其大小通过/proc/sys/net/ipv4/tcp_max_syn_backlog指定,一般默认值是512。不过这个设置有效的前提是系统的syncookies功能被禁用。

    互联网常见的TCP SYN FLOOD恶意DOS攻击方式就是建立大量的半连接状态的请求,然后丢弃,导致syns queue不能保存其它正常的请求。

  • accept queue:保存三次握手已完成,内核正等待进程执行accept的调用的连接。

    用于保存全连接状态的请求,其大小通过/proc/sys/net/core/somaxconn指定。

    在使用listen函数时,内核会根据传入的backlog参数与系统参数somaxconn,取二者的较小值。

注意:

  • 如果未设置或所设置的值小于1,Java将使用默认值50。
  • 如果accpet queue队列满了,server将发送一个ECONNREFUSED错误信息Connection refused到client。

ChannelOption.SO_BACKLOG

服务器TCP内核 内维护了两个队列,称为A(未连接队列)和B(已连接队列)

如果A+B的长度大于Backlog时,新的连接就会被TCP内核拒绝掉。

如果backlog过小,就可能出现Accept的速度跟不上,A,B队列满了,就会导致客户端无法建立连接。

另外 backlog对程序的连接数没影响,但是影响的是还没有被Accept取出的连接。

在netty实现中,backlog默认通过NetUtil.SOMAXCONN指定;在ServerBootstrap中使用option()方法设置SO_BACKLOG参数,该参数表示等待接受的连接队列的最大长度。示例代码如下:

ServerBootstrap serverBootstrap = new ServerBootstrap();
serverBootstrap.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class).option(ChannelOption.SO_BACKLOG, 100) // 设置最大连接数为100.childHandler(new MyChannelInitializer());

TCP的连接状态 (SYN, FIN, ACK, PSH, RST, URG)

SYN 表示建立连接
FIN 表示关闭连接
ACK 表示响应
PSH 表示有 DATA数据传输
RST 表示连接重置。

参考

用Netty实现单机百万TCP长连接
让Netty Linux 突破100万的连接量
netty怎么设置最大连接数
单机器如何实现Nginx百万并发连接
linux - 文件句柄的限制,你知道吗?
实践单机实现百万连接
supervisord 中的 open files 数量限制
superversior 常用操作命令supervisorctl
Netty ChannelOption.SO_BACKLOG配置

http://www.shuangfujiaoyu.com/news/39111.html

相关文章:

  • 平原做网站北京百度推广代理
  • 变化型网页网站有哪些搜索引擎最新排名
  • 网站单页网络营销推广技巧
  • 代购网站怎么做的网站怎么找
  • web期末网站设计论文友情链接交换条件
  • wordpress这个博客seo关键词快速排名
  • 如何做优惠券运营网站淘宝店铺买卖交易平台
  • 怎么给网站添加站点统计郑州网站排名优化外包
  • 纯文本网站免费无代码开发平台
  • 建个个人网站一年多少钱营销型网站制作企业
  • 做电脑网站用什么软件好用吗网站推广软件免费版大全
  • 麻城网站建设鞍山seo优化
  • 图片瀑布流网站产品推广文案怎么写
  • wordpress 怎么上传视频东莞网站优化公司哪家好
  • 网站建设 天津seo技术自学
  • 义乌国贸学校网站建设网站制作厂家有哪些
  • 云龙微网站开发企业官网首页设计
  • 台州建设网站公司网络推广怎么收费
  • 怎么自己建设一个网站seo企业优化方案
  • 网站被做301跳转了怎么办电商网站建设 网站定制开发
  • 网站开发报告下载优化大师安装桌面
  • ps做网站 字体多大怎样推广app
  • 音响网站模板免费下载seo是什么职位的简称
  • 网站建设总结报告站长工具综合查询官网
  • 怎么做网站跳转网络营销的作用
  • 用织梦做视频网站好不好株洲网页设计
  • 湖南网络营销外包清理优化大师
  • 新闻网站建设源码网络推广员工作好做吗
  • 威海网站建设短信精准群发黄页引流推广网站入口
  • 建站abc论坛网络营销策划方案书