高并发情况下修改系统参数

2023-10-30

单进程最大打开文件数限制

一般的发行版,限制单进程最大可以打开1024个文件,这是远远不能满足高并发需求的,调整过程如下:

在#号提示符下敲入:

ulimit–n 65535

限制修改失败了,会显示 “Operationnotpermitted”,就需要修改Linux系统对用户的关于打开文件数的软限制和硬限制。

第一步,修改limits.conf文件,并添加:

vim /etc/security/limits.conf

  • softnofile 65536

  • hard nofile65536

其中’*'号表示修改所有用户的限制;soft或hard指定要修改软限制还是硬限制;65536则指定了想要修改的新的限制值,即最大打开文件数(请注意软限制值要小于或等于硬限制)。修改完后保存文件。

第二步,修改/etc/pam.d/login文件,在文件中添加如下行:

vim /etc/pam.d/login

sessionrequired /lib/security/pam_limits.so

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

第三步,查看Linux系统级的最大打开文件数限制,使用如下命令:

cat/proc/sys/fs/file-max

32568

这表明这台Linux系统最多允许同时打开(即包含所有用户打开文件数总和)32568个文件,是Linux系统级硬限制,所有用户级的打开文件数限制都不应超过这个数值。

调整下Linux的TCP内核参数,让系统更快的释放TIME_WAIT连接
查看当前TCP连接的状态和对应的连接数量:

#netstat-n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’

编辑配置文件:/etc/sysctl.conf,在这个文件中,加入下面的几行内容:

vim /etc/sysctl.conf

net.ipv4.tcp_syncookies= 1

net.ipv4.tcp_tw_reuse= 1

net.ipv4.tcp_tw_recycle= 1

net.ipv4.tcp_fin_timeout= 30

输入下面的命令,让内核参数生效:

sysctl-p

简单的说明上面的参数的含义:

net.ipv4.tcp_syncookies= 1

表示开启SYNCookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;

net.ipv4.tcp_tw_reuse= 1

表示开启重用。允许将TIME-WAITsockets重新用于新的TCP连接,默认为0,表示关闭;

net.ipv4.tcp_tw_recycle= 1

表示开启TCP连接中TIME-WAITsockets的快速回收,默认为0,表示关闭;

net.ipv4.tcp_fin_timeout

修改系統默认的TIMEOUT 时间。

优化一下TCP的可使用端口范围,进一步提升服务器的并发能力。依然是往上面的参数文件中,加入下面这些配置:

net.ipv4.tcp_keepalive_time= 1200

net.ipv4.ip_local_port_range= 1024 65535

net.ipv4.tcp_max_syn_backlog= 8192

net.ipv4.tcp_max_tw_buckets= 5000

这几个参数,建议只在流量非常大的服务器上开启,会有显著的效果。一般的流量小的服务器上,没有必要去设置这几个参数。

net.ipv4.tcp_keepalive_time= 1200

表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。

ip_local_port_range= 1024 65535

表示用于向外连接的端口范围。缺省情况下很小,改为1024到65535。

net.ipv4.tcp_max_syn_backlog= 8192

表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。

net.ipv4.tcp_max_tw_buckets= 5000

表示系统同时保持TIME_WAIT的最大数量,如果超过这个数字,TIME_WAIT将立刻被清除并打印警告信息。默认为180000,改为5000。此项参数可以控制TIME_WAIT的最大数量,只要超出了。

更多介绍 :高并发情况下Linux系统及kernel参数优化 :https://mp.weixin.qq.com/s/6AsEsLlZHfozXI__-VKZdQ

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

高并发情况下修改系统参数 的相关文章

  • Django Vue corsheaders跨域问题

    跨域问题 记录一下在我自己的django vue项目里面出现的跨域问题 我的项目之前一直是在本地跑的 因为需要上线测试 所以我就运行在同一个vlan里面 ip段 192 168 1 0 24 突然发现存在跨域问题 我django的接口访问被
  • [转载]QT框架的一个截图工具

    原文标题 Snipaste 开发了三年的截图工具 但不只是截图 原文作者 levie 一直以来都想要入门QT 但是却一直没有付诸行动 昨天在无意间发现了 这个开发者的截图工具 虽然我还没有使用 但是看上去却很能吸引目光 便重新激发了我开始学
  • C/C++中浮点数的存储方式

    原文地址 C C 中浮点数的存储方式 作者 andyhzw 根据国际标准IEEE 754 任意一个二进制浮点数V可以表示成下面的形式 V 1 s M 2 E 1 1 s表示符号位 当s 0 V为正数 当s 1 V为负数 2 M表示有效数字
  • 什么是to B 业务

    引言 To B or Not to B there is not a question 对于企业而言 数据分析的作用主要体现在三大领域 1 是对业务的改进优化 2 是帮助业务发现机会 3 是创造新的商业价值 数据分析最重要的是基于对业务的理
  • Cache 和 Buffer 有什么区别

    Cache 和 Buffer 有什么区别 转载 talkwithtrend https mp weixin qq com s YsEOBVS7fXgrGXnXH1I0MQ Cache和Buffer简单的说 Cache是加速 读 而buffe
  • Python真的能杀死Excel吗?它能实现哪些Excel功能?

    在大家的印象里 想进入金融行业或者数据岗位 首先需要精通Excel 而且现在招聘条件也是明确表示 要精通Excel等办公软件 后面还会加一句 有Python经验的优先 野村证券副首席数字官马修 汉普森在上周五的伦敦Quant Confere
  • 零基础学完Python的7大就业方向,原来赚钱的路子这么多?

    我想学 Python 但是学完 Python 后都能干啥 现在学 Python 哪个方向最简单 哪个方向最吃香 相信不少 Python 的初学者 都会遇到上面的这些问题 大家都知道 Python 很吃香 薪资高 就业面广 但具体的 有哪些方
  • Python爬虫该怎么学习?学习步骤是什么?

    学Python 想必大家都是从爬虫开始的吧 python爬虫即 网络爬虫 网络爬虫是一种程序 主要用于搜索引擎 它将一个网站的所有内容与链接进行阅读 并建立相关的全文索引到数据库中 然后跳到另一个网站 搜索引擎 SearchEngine 是
  • 玩转 Numpy 的精选习题

    玩转 Numpy 的精选习题 一 1 打印 numpy 版本 import numpy as np print np version gt 1 16 5 2 创建 10 个元素空向量 Z np zeros 10 print Z gt 0 0
  • GitHub十大Python项目推荐,Star最高26.4k

    编写 Python 代码的乐趣应该是看到简短 简洁 易读的类 这些类用少量清晰的代码来执行大量的操作 而不是那些让读者厌烦的大量琐碎代码 在相当长的一段时间内 世界各地的开发人员在他们的大多数项目中都倾向于使用 Python 编程语言的易用
  • 使用ctypes模块进行键盘钩取

    原理 使用user32 dll提供的SetWindowsHookExA函数 可以设置钩子 当有消息到来或发生鼠标 键盘输入事件时 操作系统提供了中间拦截机制 这称为 钩子 从功能上实现这种机制的函数称为钩子过程 回调函数 操作系统支持为一个
  • Python面试题

    Python语言特性 1 Python的函数参数传递 看两个如下例子 分析运行结果 代码一 a 1 def fun a a 2 fun a print a 1 代码二 a def fun a a append 1 fun a print a
  • 解密蓝牙mesh系列

    转载自 蓝牙技术联盟 蓝牙mesh网络基本概念 本周跟大家分享解密蓝牙mesh系列第四篇 点这里查看第一篇 第二篇和第三篇文章 同时也是蓝牙mesh网络基本概念的第二部分 借助蓝牙mesh 您将能够创建大型网络并支持成千上万的设备之间进行安
  • Java/JDK 21正式发布!15个特性一览

    订阅专栏 JDK 21已经于2023年9月19日正式发布 本文总结了JDK 21发布的新特性 发布版本说明 根据发布的规划 这次发布的 JDK 21 将是一个长期支持版 LTS 版 LTS 版每 2 年发布一个 上一次长期支持版是 21 年
  • 【转载】探索推荐引擎内部的秘密

    原网址 https www ibm com developerworks cn web 1103 zhaoct recommstudy1 index html icomments 这是2011年ibm发布的文章 较为通俗易懂 适合想入门推荐
  • python编程基础-task4-FOR、IF以及while

    一 IF语句 avg 90 math 95 Chinese 85 if math lt Chinese print 语文更好 if math gt Chinese print 数学更好 Chinese 5 if avg Chinese pr
  • 38个MySQL数据库的小技巧

    1 如何快速掌握MySQL 培养兴趣 兴趣是最好的老师 不论学习什么知识 兴趣都可以极大地提高学习效率 当然学习MySQL 5 6也不例外 夯实基础 计算机领域的技术非常强调基础 刚开始学习可能还认识不到这一点 随着技术应用的深 入 只有有
  • 探索第三方 API 服务的身份验证方法:优点和缺点

    探索第三方 API 服务的身份验证方法 优点和缺点 赛斯 法特的相片 赛斯法特 2023 年 3 月 18 日 4分钟阅读 嗨 大家好 我们中的大多数人已经使用多个第三方 API 服务来实现您的业务逻辑 是的 他们中的大多数都有不同的身份验
  • Python中的any()和all()

    any any 函数采用iterable作为参数 any iterable 迭代器可以是列表 元组或字典 如果iterable中的所有元素为true 则any 函数将返回 True 但是 如果传递给该函数的Iterable为空 则返回 Fa
  • python 文件、文件夹和路径操作笔记

    记录python关于文件夹 文件和路径的一些常用操作 方便用时查询 常用的函数备注 os listdir 列出文件夹中所有文件 os path splitext 获取文件的后缀名 返回list 后缀在list 1 中 os path joi

随机推荐

  • 内核空间和应用空间的数据拷贝(copy_to_user & copy_from_user)

    1 copy to user copy from user long copy to user void user to const void from unsigned long n long copy from user void to
  • 【C++学习笔记(五十一)】之Qt中的信号和槽机制

    一 信号和槽机制 信号和槽机制分为信号和槽函数 用于处理事件 当某个事件发生时 比如说某个按钮被点击后 它就会发出一个信号 signal 如果有对象对这个信号感兴趣 那么它就会使用连接 connect 函数 将该信号与自己的一个槽函数 sl
  • ubuntu 18.04安装pycharm及编译环境配置

    PyCharm介绍 PyCharm是一种Python IDE 其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具 比如 调试 语法高亮 Project管理 代码跳转 智能提示 自动完成 单元测试 版本控制等等 此外 该ID
  • 网络编程六--UDP服务器客户端

    写在前面 UDP User Datagram Protocol 称为用户数据报协议 是一种无连接的传输协议 UDP的主要应用在即使丢失部分数据 也不影响整体效果的场景 例实时传输视频或音频时 即使丢失部分数据 也不会影响整体效果 只是会有轻
  • 74-Maven的简单介绍和使用(70-73是项目的修改和创建)

    Maven 专家 管理项目 1 理解Maven 在以前的项目编写中 jar包管理令人头疼 SSM框架 30 的jar包 所以在项目的发展中 产生一系列的新技术Maven Gradle 高新 Maven项目对象模型 可以通过一小段的描述信息来
  • 【Python】数据加密解密技术

    Python如何加密解密 感兴趣的小伙伴可以举一下脚 我看看有多少 咳咳咳 正式开始了 今天给大家分享的是Python如何加密解密 感兴趣的小伙伴要认真学起来 前言 加密算法主要分为 哈希算法 对称加密算法 非对称加密算法 哈希算法 MD5
  • Hostname/IP doesn't match certificate's altnames

    背景 一直用Docker Toolbox on VirtualBox在Windows上开发 创建的boot2docker镜像IP地址是192 168 99 100 这两天因为工作需要 想装一个minikube 安装的时候没有启动Docker
  • JavaSE复习:集合

    一方面 面向对象语言对事物的体现都是以对象的形式 为了方便对多个对象的操作 就要对对象进行存储 另一方面 使用Array存储对象方面具有一些弊端 而Java 集合就像一种容器 可以动态地把多个对象的引用放入容器中 集合与数组的比较 首先说下
  • Web3.0是什么?带你解析Web3.0

    有人还在研究什么是元宇宙和NFT 那个概念已经过时了 据说现在流行的是Web3 0和DAO 如果你只想了解关于Web3 0的观点 那么先简明扼要的告诉你 Web3 0是未来 但就2022年人类科技水平的发展来看 你目前接触到的 向你兜售通过
  • Ubuntu最大连接数

    使用ulimit n查看连接数或ulimit a查看详细信息 1 配置 etc security limits conf sudo vim etc security limits conf 文件尾追加 hard nofile 40960 s
  • pagehelper源码分析

    pagehelper不用说 只要是用过的就会爱上他 Maven依赖
  • 最大降雨量

    import os import sys 请在此输入您的代码 第四周的降雨量最大 1 2 3 46 47 48 49 4 5 6 42 43 44 45 7 8 9 38 39 40 41 10 11 12 34 35 36 37 13 1
  • C#与C++数据类型对应表

    C 调用DLL文件时参数对应表 Wtypes h 中的非托管类型 非托管 C 语言类型 托管类名 说明 HANDLE void System IntPtr 32 位 BYTE unsigned char System Byte 8 位 SH
  • Shopify开发入门-前端保姆级教程

    Shopify开发入门 前端保姆级教程 本文旨在介绍Shopify开发入门 环境 配置等 帮助开发者配置环境 了解各个开发模式的区别及用途 已有Shopify开发经验者可退出 以免浪费你的宝贵时间 本文5k字 图片 链接 代码块较多 请耐心
  • OSPF的防环机制

    文章目录 域间防环 域内防环 有向图转化 有向图的画法 示例 SPF算法 OSPF将整个OSPF域划分为多个区域 区域内部通过拓扑信息计算路由 区域间传递路由信息 实现全网可达 OSPF防环机制主要是体现在域内防环和域间防环 域间防环 OS
  • 并发锁分析

    锁 为什么加锁 并发会造成数据混乱 事务 原子性a 一致性c 隔离性i 持久性d 加锁的影响和优化点 线程切换的开销 缓存命中率 加锁失败会进行线程切换 用户态和内核态的切换开销 栈的切换 寄存器切换 synchronized重量锁的实现是
  • 管螺纹如何标注_螺纹基础知识,搞机械的必须懂这些

    螺纹是零件上常见的一种结构 它被广泛地用于零件之间的连接 也可以起传递运动和动力的作用 主要介绍国家标准对螺纹的结构 尺寸 画法和标注的规定 一 螺纹种类 按牙型可分为三角形 梯形 矩形 锯齿形和圆弧螺纹 按螺纹旋向可分为左旋和右旋 按螺旋
  • 基于CEEMDAN集合经验模态分解算法Python程序

    基于CEEMDAN集合经验模态分解算法Python程序 可用于时间序列和其他领域 特色 1 基于Python 2 数据从excel文件中读取 更换简单 全部完整的代码 保证可以运行的代码看这里 http t csdn cn obJlChtt
  • springboot整合quartz项目使用(含完整代码)

    前言 quartz是一个定时调度的框架 就目前市场上来说 其实有比quartz更优秀的一些定时调度框架 不但性能比quartz好 学习成本更低 而且还提供可视化操作定时任务 例如xxl Job elastic Job这两个算是目前工作中使用
  • 高并发情况下修改系统参数

    单进程最大打开文件数限制 一般的发行版 限制单进程最大可以打开1024个文件 这是远远不能满足高并发需求的 调整过程如下 在 号提示符下敲入 ulimit n 65535 限制修改失败了 会显示 Operationnotpermitted