IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> linux服务器高并发的极限和瓶颈 -> 正文阅读

[系统运维]linux服务器高并发的极限和瓶颈

最大并发数探究

Fancylee 2022.03.30

并发数

(同时发请求的用户数,一般以1s为单位),但实际到达服务器会依照网络环境发生变化,比如以100并发请求服务器,实际同时到达服务器的请求会低于100。

如何模拟并发

一台机器开多线程利用不同的port(socket客户端不指定port)发送请求,这样可以尽可能模拟并发效果。

带宽影响并发数

1Mb/s =128KB/s 减免12%的消息标头等 ,1Mb/s = 112KB/s:

在传输过程中的并发数计算 并发数=带宽(KB/S)/请求大小(KB)
时间含义是该带宽下,每秒最大发送到服务的请求数量

服务器能承载多少并发?

句柄

主流的服务器模式,是由单端口去建立监听套接字,通过线程或者进程去accept得到连接套接字,每一个连接套接字,占用进程空间中一个句柄(文件描述符),所以句柄数决定了服务端最多可以同时存在多少连接(处理多少请求)

/proc/sys/file_max

下 默认值为379400,这个值是由系统根据服务器性能自行计算的,可以修改

从用户层面来说使用ulimit -a 来查看该用户可以使用多少个句柄
从系统层面在proc/sys/file_max 查看最大的句柄数

线程

32位系统,
single processer 单进程下进程空间为4g(虚拟),其中用户使用3g,
stack size 线程栈空间 8m(ulimit -a查看),也就是单进程下最多开375个线程

6位系统,
用户进程空间128T,约可创建1000多w的线程,可以认为在内存足够大的情况下,线程数没有限制
但系统也提供了限制参数

/proc/sys/kernel/threads-max
				 pid-max 最大进程数
				 max-map-count 单个进程可用Vma(虚拟内存块)的数量,影响进程可用空间

线程的利用效率主要和所用的服务器范式有关,对线程的利用率越高,可承载并发越大
1.单进程
3.多进程 (frok策略)
3.单进程多线程(epoll模型+协程?)
4.多进程多线程 (frok+epoll)

目前服务器多采用3、4

硬件

cat /proc/cupinfo
grep 'processor' /proc/cpuinfo | sort -u | wc -l #查看单cpu线程数

cup的核心数和线程数决定了真并发效率

服务器使用Intel? Xeon? Gold 61xx CPU,8cup*8cores=64threads(服务器性能足够,没有使用intel的超线程技术即单核双线程)

假设一个线程处理的时间为40ms,秒级并发1000/40*64=16000 1.6w

取我们某天的数据

峰值并发调用量:1.21亿/天 ,803万/小时,13.8万/分(2022.3.19)

秒级高峰并发在0.23w/s,横向部署8台机器12.8w/s(cpu理论值),仅从cup角度分析是可以cover住。

小结

? 综上,从服务器端可以认为并发大小的实际决定因素是线程数量和句柄数量;
? 考虑如何开启更多线程,或者在有限的线程下提高线程使用效率;提高句柄数量,防止句柄数的限制使得承载能力成为瓶颈;检测网络带宽是否充裕,带宽利用率一般不超过70%为好;

? 实际上,长连接tcp并发数主要反映了承载量;短连接tcp并发数,主要看平均响应时间。
? 本文未考虑的因素,比如 平均响应时间,这个也对并发影响比较大,主要来源cup的计算,文件io,数据库io等,本文没有谈论其影响,只是从句柄和线程的数字上去讨论了并发承载能力,可用理解为长连接下的并发承载量。

? 另外,抛出一个问题,只考虑单机服务器下可以承载的tcp同时连接的数量,我认为的答案
? 连接数量是没有上限的,取决于你的机器性能,如果有上限那就是ipv4的最大承载和可用port的乘积。

参考:带宽与并发https://zhuanlan.zhihu.com/p/339624863
并发指标http://www.mobabel.net/%E6%80%BB%E7%BB%93%E6%B5%81%E9%87%8F%EF%BC%8C%E5%B8%A6%E5%AE%BD%EF%BC%8C%E7%AB%AF%E5%8F%A3%E8%AE%A1%E7%AE%97/

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 00:32:30  更:2022-04-01 00:33:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:42:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码