提高Linux系统应对短连接的负载能力

Linux 网络性能的 15 个优化建议 我要给出的第一个建议就是不必要用网络 IO 的尽量不用。是的,网络在现代的互联网世界里承载了很重要的角色。用户通过网络请求线上服务、服务器通过网络读取数据库中数据,通过网络构建能力无比强大分布式系统。网络很好,能降低模块的开发难度,也能用它搭建出更强大的系统。但是这不是你滥用它的理由!原因是即使是本机网络 IO 开销仍然是很大的。先说发送一个网络包,首先得从用户态切换到内核态,花费一次系统调用的开销。进入到内核以后,又得经过冗长的协议栈,这会花费不少的 CPU 周期,最后进入环回设备的“驱动程序”。接收端呢 阅读详情
在存在大量短连接的情况下,Linux的TCP栈一般都会生成大量的 TIME_WAIT 状态的socket。


你可以用下面的命令看到:


netstat -ant| grep -i time_wait


有时候,这个数目是惊人的:


netstat -ant|grep -i time_wait |wc -l


可能会超过三四万。这个时候,我们需要修改 linux kernel 的 tcp time wait的时间,缩短之,有个 sysctl 参数貌似可以使用,它是 /proc/sys/net/ipv4/tcp_fin_timeout,缺省值是 60,也就是60秒,很多网上的资料都说将这个数值设置低一些就可以减少netstat 里面的TIME_WAIT状态,但是这个说法是错误的。经过认真阅读Linux的内核源代码,我们发现这个数值其实是输出用的,修改之后并没有真正的读回 内核中进行使用,而内核中真正管用的是一个宏定义,在 $KERNEL/include/net/tcp.h里面,有下面的行:


#define TCP_TIMEWAIT_LEN (60*HZ) /* how long to wait to destroy TIME-WAIT

* state, about 60 seconds */


而这个宏是真正控制 TCP TIME_WAIT 状态的超时时间的。如果我们希望减少 TIME_WAIT 状态的数目(从而节省一点点内核操作时间),那么可以把这个数值设置低一些,根据我们的测试,设置为 10 秒比较合适,也就是把上面的修改为:


#define TCP_TIMEWAIT_LEN (10*HZ) /* how long to wait to destroy TIME-WAIT

* state, about 60 seconds */


然后重新编译内核,重启系统即可发现短连接造成的TIME_WAIT状态大大减少:


netstat -ant | grep -i time_wait |wc -l


一般情况都可以至少减少2/3。也能相应提高系统应对短连接的速度。
第十六届蓝桥杯大赛软件赛(编程类)知识点大纲 难度:[1-3]难度:[1-5]难度:[1-3]难度:[2-5]难度:[1-5] 阅读详情

相关推荐

MFC 修改CheckBox的文本颜色方法

设置主题 这一步是必须的,不可省略。 BOOL CMFCApplication1Dlg::OnInitDialog() { CDialogEx::OnInitDialog(); // 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动 // 执行此操作 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 // TODO: 在此添加额外的初始化代码 // 设置主题 HWND

Kim的博客 2249

Linux优化连接

报错 今天压力测试时, 刚开始出现了很多异常, 都是 java.net.NoRouteToHostException: Cannot assign requested address. 经网上查资料, 是由于linux分配的客户端连接端口用尽, 无法建立socket连接所致 虽然socket正常关闭,但是端口不是立即释放, 而是处于TIME_WAIT状态, 默认等待60s后才释放。 查看linux支持的客户端连接端口范围, 也就是28232个端口: cat /proc/sys/net/ipv4/

著名艺术家 475

windows中如何将已安装的nodejs高版本降级为低版本

第一步:先清空本地安装的node.js版本 1.按健win+R弹出窗口,键盘输入cmd,然后敲回车(或者鼠标直接点击电脑左面最左下角的win窗口图标弹出,输入cmd再点击回车键) 然后进入命令控制行窗口,并输入where node查看之前本地安装的node的路径 2.找到上面找到的路径,将node.exe所在的父目录里面的所有东西都删除 3.为了彻底删除之前安装的node.js,鼠标点击电脑左面最左下角的win窗口图标弹出,输入“控制面板”再点击回车键进入,进入控制面板后,找到所安装的node.js并

weixin_44582077的博客 9万+

如何提高Linux系统应对短连接的负载能力

在存在大量短连接的情况下,Linux的TCP栈一般都会生成大量的 TIME_WAIT 状态的socket。   你可以用下面的命令看到:   netstat -ant| grep -i time_wait     有时候,这个数目是惊人的:   ...

weixin_34160277的博客 171

千兆以太网PHY设计:PCB原理图完整示例

深入解析千兆以太网PHY电路设计要点,提供完整的PCB原理图设计实例,帮助工程师掌握高速信号布局与电源去耦等关键技术,提升设计稳定性与信号完整性。

weixin_30633869的博客 630

开关电源EMC整改案例-辐射骚扰

2.4.1 获得原始数据。同样的分析可以应用在差模电流的情况, 唯一不同的是, 两根导线的磁场分布是相反的, 磁 场互相抵消, 由于导线中的电流大小相等, 产生的磁场 H 大小相同, 在互相靠近的情况下, 在磁 环内的两个感应磁场大小相同、方向相反, 因此合成之后的感应磁场 B 几乎为 0,对任意一根导 线而言,相当于是一段“无感导线”,对差模电流不会产生任何抑制作用。众所周知, 共模电感的匝数越多, 感量越大, 按道 理来说对共模干扰电流的抑制也会越强烈,对抗辐射 也越有利,然而事实真的如此吗?

经营范围: CTA、SRRC、CCC、移动、电信、联通入库 3496

HTTP长连接、短连接、Linux网络优化

无连接 含义:每次传输完数据后就断开连接。 因为早期互联网规模小,并且http具有瞬时性,突发性,服务器同时处理着多个请求。所以采用无连接的方式。以便于腾出资源处理其他请求。 无状态 顺便说一说无状态 含义: 客户端向服务器请求完资源后断开连接,这个过程不记录任何东西。 产生的问题: 随着时间的推移,必须要记录用户的个人信息,而且需要登陆。 你不希望你前脚刚加入购物车的东西,后脚就...

NetRookieX的博客 1254

UOS忘记密码别慌!用LiveCD工具5分钟搞定,附命令行救援模式详细步骤

本文详细介绍了UOS系统密码遗忘时的两种解决方案:图形化LiveCD工具和命令行救援模式。针对普通用户,LiveCD工具提供5分钟快速重置密码的便捷操作;而技术人员可通过命令行深度解析系统分区挂载与密码修改流程。文章还包含安全加固建议,帮助用户预防类似问题发生。

weixin_27032989的博客 590

提高Linux系统应对短连接的负载能力的方法

在存在大量短连接的情况下,Linux的TCP栈一般都会生成大量的 TIME_WAIT 状态的socket。   你可以用下面的命令看到:   netstat -ant| grep -i time_wait     有时候,这个数目是惊人的:   netstat -ant|grep -i time_wait |wc -

benpaobagzb的博客 956

单细胞测序数据读取实战指南:从入门到精通

本文提供了单细胞测序数据读取的实战指南,涵盖从标准10X Genomics格式到通用表达矩阵及RDS文件的读取方法。文章重点解析了数据读取的核心步骤、常见问题解决方案及进阶技巧,旨在帮助用户夯实数据分析基础,确保后续分析流程的准确性。

weixin_29095587的博客 460

Qt —— 在Win11下“Qt for Android“开发环境,通过USB在真机(华为Meta60 PRO)上调试运行,并打包APK并在真实手机运行

Qt —— 在Win11下“Qt for Android“开发环境,打包APK并在真实手机运行

312

Linux内核参数

Linux内核参数 From PostgreSQL 中文维基, PostgreSQL 中文站, PostgreSQL 中国社区, PostgreSQL Chinese community Jump to: navigation, search ...

weixin_34392435的博客 91

【docker】第10篇 Failed with result ‘exit-code和Start request repeated too quickly和Failed to start Docker

【docker】解决 Failed with result 'exit-code'和Start request repeated too quickly和Failed to start Docker。

Fanjufei的博客 6819

提高Linux应对短连接的负载能力

提高Linux应对短连接的负载能力 在存在大量短连接的情况下,Linux的TCP栈一般都会生成大量的 TIME_WAIT 状态的socket。你可以用下面的命令看到: netstat -ant| grep -i time_wait  有时候,这个数目是惊人的: netstat -ant|grep -i time_wait |wc -l 可能会超过三四万。这个时候,我们

elton_xiao的专栏 568

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

系统负载能力浅析

那么,何为系统负载能力?怎么衡量?相关因素有哪些?又如何优化呢? 一. 衡量指标 用什么来衡量一个系统的负载能力呢?有一个概念叫做每秒请求数(Requests per second),指的是每秒能够成功处理请求的数目。比如说,你可以配置tomcat服务器的maxConnection为无限大,但是受限于服务器系统或者硬件限制,很多请求是不会在一定的时间内得到响应的,这并不作为一个成功的请求,

6113

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Linux系统中的负载均衡

在当今互联网时代,人们对计算机系统的性能和可靠性要求越来越高。为了实现系统的高效运行和充分利用服务器资源,负载均衡技术应运而生。负载均衡(Load Balancing)是一种将系统的负载均匀地分配给多个服务器或设备的技术,以提高系统的性能、可靠性和稳定性。

prop428的博客 1855

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

优化Linux的内核参数来提高服务器并发处理能力

PS:在服务器硬件资源额定有限的情况下,最大的压榨服务器的性能,提高服务器的并发处理能力,是很多运维技术人员思考的问题。要提高Linux系统下的负载能力,可以使用nginx等原生并发处理能力就很强的web服务器,如果使用Apache的可以启用其Worker模式,来提高其并发处理能力。除此之外,在考虑节省成本的情况下,可以修改Linux的内核相关TCP参数,来最大的提高服务器性能。当然,最基础的...

末末很爱 172

优化Linux下的内核TCP参数来提高服务器负载能力

原文地址 提高服务器的负载能力,是一个永恒的话题。在一台服务器CPU和内存资源额定有限的情况下,最大的压榨服务器的性能,是最终的目的。要提高Linux系统下的负载能力,可以先启用Apache的Worker模式(参考我写的《Ubuntu下配置Apache的Worker模式》一文),来提高单位时间内的并发量。但是即使这么做了,当网站发展起来之后,连接数过多的问题就会日益明显。在节省成本的情况下,

天天的专栏 980
上一篇: 如何制作迷你的linux
下一篇: 内核注册一个新的协议族
guowake
博客等级 码龄19年 62粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值