0

0

修改 Linux 系统最大 TCP 连接和 UDP 数限制的方法与前提

PHPz

PHPz

发布时间:2024-07-12 08:07:13

|

1196人浏览过

|

来源于ITcool

转载

更改Linux系统最大TCP联接和UDP数限制

前提:拥有Root权限

系统的默认配置是足以满足日常使用的,并且在进列宽并发的网路编程时,超出联接个数会碰到最大打开文件数限制报错、无法创建新联接(超出最大进程数)、系统资源分配报错

1、修改最大用户进程数和最大文件数限制ulimit的作用

ulimit:显示(或设置)用户可以使用的资源的限制(limit)中文linux操作系统linux空间,这限制分为软限制(当前限制)和硬限制(上限),其中硬限制是软限制的上限值,应用程序在运行过程中使用的系统资源不超过相应的软限制,任何的赶超都造成进程的中止。

-<span class="token operator">></span> <span class="token function">ulimit</span> -a												<span class="token comment"># -a 列出所有当前资源极限</span>
core <span class="token function">file</span> size<span class="token punctuation">(</span>blocks, -c<span class="token punctuation">)</span> 0						<span class="token comment">#-c 设置core文件的最大值.单位:blocks</span>
data seg size <span class="token punctuation">(</span>kbytes, -d<span class="token punctuation">)</span> unlimited				<span class="token comment">#-d 设置一个进程的数据段的最大值.单位:kbytes</span>
scheduling priority <span class="token punctuation">(</span>-e<span class="token punctuation">)</span> 0						<span class="token comment">#</span>
<span class="token function">file</span> size <span class="token punctuation">(</span>blocks, -f<span class="token punctuation">)</span> unlimited				<span class="token comment">#-f Shell 创建文件的文件大小的最大值,单位:blocks</span>
pending signals <span class="token punctuation">(</span>-i<span class="token punctuation">)</span> 385862					<span class="token comment">#</span>
max locked memory <span class="token punctuation">(</span>kbytes, -l<span class="token punctuation">)</span> unlimited				<span class="token comment">#-l 可以锁住的物理内存的最大值</span>
max memory size <span class="token punctuation">(</span>kbytes, -m<span class="token punctuation">)</span> unlimited				<span class="token comment">#-m 可以使用的常驻内存的最大值,单位:kbytes</span>
<span class="token function">open</span> files<span class="token punctuation">(</span>-n<span class="token punctuation">)</span> 300000					<span class="token comment">#-n 每个进程可以同时打开的最大文件数</span>
pipe size<span class="token punctuation">(</span>512 bytes, -p<span class="token punctuation">)</span> 8						<span class="token comment">#-p 设置管道的最大值,单位为block,1block=512bytes</span>
POSIX message queues <span class="token punctuation">(</span>bytes, -q<span class="token punctuation">)</span> 819200					<span class="token comment">#</span>
real-time priority<span class="token punctuation">(</span>-r<span class="token punctuation">)</span> 0						<span class="token comment">#</span>
stack size<span class="token punctuation">(</span>kbytes, -s<span class="token punctuation">)</span> 8192					<span class="token comment">#-s 指定堆栈的最大值:单位:kbytes</span>
cpu <span class="token function">time</span> <span class="token punctuation">(</span>seconds, -t<span class="token punctuation">)</span> unlimited				<span class="token comment">#-t 指定每个进程所使用的秒数,单位:seconds</span>
max user processes<span class="token punctuation">(</span>-u<span class="token punctuation">)</span> 655360					<span class="token comment">#-u 可以运行的最大并发进程数</span>
virtual memory<span class="token punctuation">(</span>kbytes, -v<span class="token punctuation">)</span> unlimited				<span class="token comment">#-v Shell可使用的最大的虚拟内存,单位:kbytes</span>
<span class="token function">file</span> locks<span class="token punctuation">(</span>-x<span class="token punctuation">)</span> unlimited				<span class="token comment">#</span>

更改最大线程数和最大文件数限制

-<span class="token operator">></span> vim /etc/security/limits.conf 
 <span class="token comment"># 添加如下的行</span>
 * soft noproc 65535
 * hard noproc 65535
 * soft nofile 65535
 * hard nofile 65535

其中:

对于最大打开文件数限制只须要修改前面的参数即可linux tcp连接数限制,但对于用户最大线程数限制还须要依照系统不同更改以下文件

linux tcp连接数限制_限制连接数有什么用_限制连接数量多少合适

centos7系统下操作

在centos7系统中,ulimit下边的nproc的数值是通过/etc/security/limits.d/20-nproc.conf来控制的

-<span class="token operator">></span> <span class="token function">cat</span> /etc/security/limits.d/20-nproc.conf
*softnproc 1024
root softnproc unlimited

须要编辑/etc/security/limits.d/20-nproc.conf文件将限制值改大

限制连接数有什么用_限制连接数量多少合适_linux tcp连接数限制

2、设置系统对该用户的资源限制

在更改/etc/pam.d/login文件中加入如下内容:

-<span class="token operator">></span> <span class="token function">sudo</span> vim /etc/pam.d/login
<span class="token comment"># 加入如下内容</span>
session required /lib/security/pam_limits.so

这是告诉Linux在用户完成系统登陆后,应当调用pam_limits.so模块来设置系统对该用户可使用的各类资源数目的最大限制(包括用户可打开的最大文件数限制),而pam_limits.so模块都会从/etc/security/limits.conf文件中读取配置来设置这种限制值。更改完后保存此文件。

限制连接数量多少合适_linux tcp连接数限制_限制连接数有什么用

3、修改网路内核对TCP/UDP联接的限制

在Linux上编撰支持高并发TCP联接的顾客端通信处理程序时,有时会发觉虽然早已解除了系统对用户同时打开文件数的限制,但仍会出现并发TCP联接数降低到一定数目时,再也未能成功构建新的TCP联接的现象。

Linux内核编译时默认设置的本地端标语范围可能太小,因而须要更改此本地端口范围限制。

内核参数的优化

限制连接数量多少合适_linux tcp连接数限制_限制连接数有什么用

更改/etc/sysctl.conf文件,/etc/sysctl.conf是拿来控制linux网路的配置文件,对于依赖网路的程序(如web服务器和cache服务器)十分重要

-<span class="token operator">></span> <span class="token function">sudo</span> vim /etc/sysctl.conf 
<span class="token comment"># 将原内容批注并写入如下内容</span>
net.ipv4.ip_local_port_range <span class="token operator">=</span> 1024 65535
net.core.rmem_max <span class="token operator">=</span> 16777216
net.core.wmem_max <span class="token operator">=</span> 16777216
net.ipv4.tcp_rmem <span class="token operator">=</span> 4096 87380 16777216
net.ipv4.tcp_wmem <span class="token operator">=</span> 4096 65536 16777216
net.ipv4.tcp_fin_timeout <span class="token operator">=</span> 10
net.ipv4.tcp_tw_recycle <span class="token operator">=</span> 1
net.ipv4.tcp_timestamps <span class="token operator">=</span> 0
net.ipv4.tcp_window_scaling <span class="token operator">=</span> 0
net.ipv4.tcp_sack <span class="token operator">=</span> 0
net.core.netdev_max_backlog <span class="token operator">=</span> 30000
net.ipv4.tcp_no_metrics_save <span class="token operator">=</span> 1
net.core.somaxconn <span class="token operator">=</span> 10240
net.ipv4.tcp_syncookies <span class="token operator">=</span> 0
net.ipv4.tcp_max_orphans <span class="token operator">=</span> 262144
net.ipv4.tcp_max_syn_backlog <span class="token operator">=</span> 262144
net.ipv4.tcp_synack_retries <span class="token operator">=</span> 2
net.ipv4.tcp_syn_retries <span class="token operator">=</span> 2

更改完之后执行:

sysctl -p /etc/sysctl.conf

sysctl -w net.ipv4.route.flush<span class="token operator">=</span>1

致使配置生效(亲测对TCP和UDP都适用)

至此操作完成。假如没有生效linux tcp连接数限制,这么就reboot。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
线程和进程的区别
线程和进程的区别

线程和进程的区别:线程是进程的一部分,用于实现并发和并行操作,而线程共享进程的资源,通信更方便快捷,切换开销较小。本专题为大家提供线程和进程区别相关的各种文章、以及下载和课程。

765

2023.08.10

tcp和udp的区别
tcp和udp的区别

TCP和UDP的区别,在连接性、可靠性、速度和效率、数据报大小以及适用场景等方面。本专题为大家提供tcp和udp的区别的相关的文章、下载、课程内容,供大家免费下载体验。

126

2023.07.25

udp是什么协议
udp是什么协议

UDP是OSI参考模型中一种无连接的传输层协议。本专题为大家带来udp是什么协议的相关文章,免费提供给大家。

302

2023.08.08

tcp和udp有什么区别
tcp和udp有什么区别

tcp和udp的区别有:1、udp是无连接的,tcp是面向连接的;2、udp是不可靠传输,tcp是可靠传输;3、udp是面向报文传输,tcp是面向字节流传输。想了解更多tcp相关的内容,可阅读本专题下面的相关文章。

399

2024.11.14

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1564

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

716

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

300

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

800

2023.07.05

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

26

2026.03.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 10.6万人学习

Git 教程
Git 教程

共21课时 | 4.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号