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

做网站找谁/刷关键词的平台

做网站找谁,刷关键词的平台,衡阳网站设计公司,免费的网站搭建平台原标题:漫画 | 一台Linux服务器最多能支撑多少个TCP连接?作者 l 张彦飞allen来源 l 开发内功修炼(ID:kfngxl)困惑很多人的并发问题在网络开发中,我发现有很多同学对一个基础问题始终是没有彻底搞明白。那就是一台服务器最大究竟能…

原标题:漫画 | 一台Linux服务器最多能支撑多少个TCP连接?

307997ed96a7caa0efaa0ac98209b70f.png

作者 l 张彦飞allen

来源 l 开发内功修炼(ID:kfngxl)

困惑很多人的并发问题

在网络开发中,我发现有很多同学对一个基础问题始终是没有彻底搞明白。那就是一台服务器最大究竟能支持多少个网络连接?我想我有必要单独发一篇文章来好好说一下这个问题。

很多同学看到这个问题的第一反应是65535。原因是:“听说端口号最多有65535个,那长连接就最多保持65535个了”。是这样的吗?还有的人说:“应该受TCP连接里四元组的空间大小限制,算起来是200多万亿个!”

如果你对这个问题也是理解的不够彻底,那么今天讲个故事讲给你听!

一次关于服务器端并发的聊天

9c2972b75ea55ff21731edba0807c6e5.png

"TCP连接四元组是源IP地址、源端口、目的IP地址和目的端口。任意一个元素发生了改变,那么就代表的是一条完全不同的连接了。拿我的Nginx举例,它的端口是固定使用80。另外我的IP也是固定的,这样目的IP地址、目的端口都是固定的。剩下源IP地址、源端口是可变的。所以理论上我的Nginx上最多可以建立2的32次方(ip数)×2的16次方(port数)个连接。这是两百多万亿的一个大数字!!"

0497b1c5815a82d2847607f9889e6f88.png

"进程每打开一个文件(linux下一切皆文件,包括socket),都会消耗一定的内存资源。如果有不怀好心的人启动一个进程来无限的创建和打开新的文件,会让服务器崩溃。所以linux系统出于安全角度的考虑,在多个位置都限制了可打开的文件描述符的数量,包括系统级、用户级、进程级。这三个限制的含义和修改方式如下:"

系统级:当前系统可打开的最大数量,通过fs.file-max参数可修改

用户级:指定用户可打开的最大数量,修改/etc/security/limits.conf

进程级:单个进程可打开的最大数量,通过fs.nr_open参数可修改

0f92ee88fedcf35030cbda9633a959c9.png

"我的接收缓存区大小是可以配置的,通过sysctl命令就可以查看。"

$ sysctl -a | grep rmem

net.ipv4.tcp_rmem = 4096 87380 8388608

net.core.rmem_default = 212992

net.core.rmem_max = 8388608

"其中在tcp_rmem"中的第一个值是为你们的TCP连接所需分配的最少字节数。该值默认是4K,最大的话8MB之多。也就是说你们有数据发送的时候我需要至少为对应的socket再分配4K内存,甚至可能更大。"

40571e7ed79343da613f6dd69f3f8f8a.png

"TCP分配发送缓存区的大小受参数net.ipv4.tcp_wmem配置影响。"

$ sysctl -a | grep wmem

net.ipv4.tcp_wmem = 4096 65536 8388608

net.core.wmem_default = 212992

net.core.wmem_max = 8388608

"在net.ipv4.tcp_wmem"中的第一个值是发送缓存区的最小值,默认也是4K。当然了如果数据很大的话,该缓存区实际分配的也会比默认值大。"

c3755807df9b3e001d933e8657470b4b.png

服务端百万连接达成记

d8a5b5b7b399b51856a7c26426b87a5e.png

“准备啥呢,还记得前面 说过Linux对最大文件对象数量有限制,所以要想完成这个实验,得在用户级、系统级、进程级等位置把这个上限加大。我们实验目的是100W,这里都设置成110W,这个很重要!因为得保证做实验的时候其它基础命令例如ps,vi等是可用的。“

84ea685504fc3bdc70690be657a7dfc5.png

47a74a2ee1208401d6d525bded2bde88.png

活动连接数量确实达到了100W:

$ ss -n | grep ESTAB | wc -l

1000024

当前机器内存总共是3.9GB,其中内核Slab占用了3.2GB之多。MemFree和Buffers加起来也只剩下100多MB了:

$ cat /proc/meminfo

MemTotal: 3922956 kB

MemFree: 96652 kB

MemAvailable: 6448 kB

Buffers: 44396 kB

......

Slab: 3241244KB kB

通过slabtop命令可以查看到densty、flip、sock_inode_cache、TCP四个内核对象都分别有100W个:

fe93b341979fdcd96db7f1f9446350e8.png

92c51433e6d2dac1334121d111609908.png

结语

互联网后端的业务特点之一就是高并发. 但是一台服务器最大究竟能支持多少个TCP连接,这个问题似乎却又在困惑着很多同学。希望今天过后,你能够将这个问题踩在脚下摩擦!

学习是一件痛苦的事情,尤其咱们号里很多读者朋友都是工作满一天了再来看我的技术号的文章的。我一直都在琢磨到底怎么样组织技术内容形式,能让大家理解起来更能省一点脑细胞呢。这篇服务器的最大并发数的文章是早就想发的,但是写了两三个版本都不满意。今天终于想出了一种让大家更容易理解的方式,算过了自己这关了。返回搜狐,查看更多

责任编辑:

http://www.lbrq.cn/news/930097.html

相关文章:

  • 小程序企业网站源码/北京seo排名服务
  • 专业网站建设设计装饰/保定网站建设方案优化
  • 国外哪些做问卷的网站/it培训学校
  • 自媒体人15种赚钱方法/宁波seo推荐
  • 驻马店重点项目建设网站/广告联盟app下载
  • 酒网站建设/重庆百度seo公司
  • 网站发的文章怎么做的/搜索引擎广告案例
  • 伪静态网站如何做/上海网络推广平台
  • 中石油网站建设/济南seo优化公司
  • 泰安平台公司/新余seo
  • wordpress 无法搜索结果/抖音seo怎么做
  • 校园网站建设策划书/抖音seo排名优化
  • 推广普通话的绘画作品有哪些/无锡网络优化推广公司
  • 网站免费一站二站四站/今日腾讯新闻最新消息
  • 深圳网站建设三把火/网站推广营销
  • 制作网站需要注意的细节/对网络营销的认识
  • 郑州网站网络营销/网站推广网络营销方案
  • 网站建设捌金手指花总六/广告推送平台
  • 公司免费网站建设/合肥seo公司
  • 做文案策划需要看什么网站/什么是网络营销与直播电商
  • 网站开发用什么技术asp/对seo的理解
  • 软件下载网站地址/上海网站制作公司
  • 爱润妍网站开发/湖南靠谱关键词优化
  • 大连住建部官网/外包seo公司
  • 本溪 网站建设 做网站/微信广告平台推广
  • 线上网站制作/巩义关键词优化推广
  • 网站建设需要哪些技术人员/网站排名推广
  • 上海网站建设公司费用/河北seo技术
  • 用阳寿做交易的网站/百度经验怎么赚钱
  • 卖钢材做哪个宣传网站/搜索引擎优化seo是什么
  • InfluxDB 与 Python 框架结合:Django 应用案例(三)
  • SpringBoot+SpringAI打造智能对话机器人
  • TTS语音合成|GPT-SoVITS语音合成服务器部署,实现http访问
  • 2419.按位与最大的最长子数组
  • VS Code中如何关闭Github Copilot
  • 简述:关于二轮承包地确权二轮承包输出数据包目录结构解析