[转载]性能测试工具 2 步解决 too many open files 的问题,让服务器支持更多连接数

大话性能 · 2018年10月09日 · 最后由 大话性能 回复于 2018年10月09日 · 最后更新自管理员 恒温 · 29458 次阅读
 目录 

问题背景

我们在进行压测的时候,经常会遇到,当你的服务器在大并发达到一定数值时,就会报出“too many open files”的错误。

问题解析

这是因为,在Linux系统中任何一个对象都是一个文件,都需要占用一个文件句柄,我们在压测的时候,一个连接就是用到一个文件句柄,对于绝大部分 Linux 操作系统, 默认情况下只有1024个句柄数! 因为操作系统包含最大打开文件数(Max Open Files)限制, 分为系统全局的限制和进程级的限制。那么如何修改服务器本身的系统参数,让机器可以支撑百万的一个连接呢?

全局限制

首先是进行全局限制的一个修改。

在 Linux 下执行:

cat /proc/sys/fs/file-nr

会打印出类似下面的一行输出:

5100 0 101747

第三个数字 101747 就是当前系统的全局最大打开文件数(Max Open Files), 可以看到, 只有 10 万, 所以, 在这台服务器上无法支持百万,默认情况下很多系统的这个数值更小, 为了修改这个数值, 用 root 权限修改 /etc/sysctl.conf 文件:

fs.file-max = 1020000

net.ipv4.ip_conntrack_max = 1020000

net.ipv4.netfilter.ip_conntrack_max = 1020000

进程限制

然后是修改进程限制

可以在服务器上先执行:ulimit -n,观察下结果

输出:

1024

说明当前 Linux 系统的每一个进程只能最多打开 1024 个文件. 为了支持百万连接, 你同样需要修改这个限制.

若是临时修改,执行下面命令即可,比较快速。

ulimit -n 1020000

不过, 如果你不是 root, 可能不能修改超过 1024, 会报错:

-bash: ulimit: open files: cannot modify limit: Operation not permitted。

若是需要永久修改,就行需要在配置文件中修改。

编辑 /etc/security/limits.conf 文件, 加入如下行:

vi /etc/security/limits.conf

  • hard nofile 1020000
  • soft nofile 1020000

完成上述2处修改,你的服务器本身就可以支撑起百万的一个连接了,而不会出现“too many open files”的错误。
更多性能测试实战技能可以关注公众号大话性能,继续学习。
https://dwz.cn/R6s45buP

 
「原创声明:保留所有权利,禁止转载」

[转载]性能测试工具 2 步解决 too many open files 的问题,让服务器支持更多连接数的更多相关文章

  1. 服务端性能测试工具校验v1.1

    服务端性能测试工具校验v1.1 更新说明: 1.精简CRT运行库支持. 2.添加响应模拟测试,校验压力测试工具的响应时间统计准确性. 3.大并发请求请降低延迟时间 WEIMJSAM原创,转载请注明出处 ...

  2. 网络性能测试工具iperf详细使用图文教程【转载】

    原文:http://blog.163.com/hlz_2599/blog/static/142378474201341341339314/ 参考:http://man.linuxde.net/iper ...

  3. Apache性能测试工具ab使用详解~转载

    Apache自带性能测试工具ab使用详解 一. Apache的下载 1. http://www.apache.org/,进入Apache的官网 2. 将页面拖到最下方“Apache Project L ...

  4. 【转载】8.2.1 CPU性能测试工具

    (KVM连载) 8.2.1 CPU性能测试工具 01/08/2013master 1 Comment 8.2.1 CPU性能测试工具 CPU是计算机系统中最核心的部件,CPU的性能直接决定了系统的计算 ...

  5. c++性能测试工具:google benchmark进阶(一)

    这是c++性能测试工具教程的第四篇文章,从本篇开始我将逐步介绍一些性能测试的高级技巧. 前三篇教程可以看这里: c++性能测试工具:google benchmark入门(一) c++性能测试工具:go ...

  6. 性能测试工具 wrk 安装与使用

    介绍 今天给大家介绍一款开源的性能测试工具 wrk,简单易用,没有Load Runner那么复杂,他和 apache benchmark(ab)同属于性能测试工具,但是比 ab 功能更加强大,并且可以 ...

  7. 给CentOS6.3 + PHP5.3 安装PHP性能测试工具 XHProf-0.9.2

    一.什么是XHProf XHProf官网:http://pecl.php.net/package/xhprof XHProf是一个分层PHP性能分析工具.它报告函数级别的请求次数和各种指标,包括 阻塞 ...

  8. 安卓性能测试工具-GT,安测试

    GT: 是腾讯出品的一款APP的随身调测平台,它是直接运行在手机上的“集成调测环境”(IDTE,  Integrated  Debug&Test  Environment).利用GT,仅凭一部 ...

  9. pylot是一款开源的web性能测试工具

    pylot是一款开源的web性能测试工具,http://www.pylot.org/ 参考文档:http://www.pylot.org/gettingstarted.html很容易上手 使用分为以下 ...

随机推荐

  1. Logstash生产环境实践手册(含grok规则示例和ELKF应用场景)

    ELKF应用场景: 1) datasource->logstash->elasticsearch->kibana 2) datasource->filebeat->log ...

  2. B. 【例题2】移位包含

    解析 判断是否是子串,可以将这个一个环 #include <bits/stdc++.h> using namespace std; int f = 0; string a, b; int ...

  3. [树形DP]战略游戏

    战 略 游 戏 战略游戏 战略游戏 题目描述 Bob喜欢玩电脑游戏,特别是战略游戏.但是他经常无法找到快速玩过游戏的办法.现在他有个问题.他要建立一个古城堡,城堡中的路形成一棵树.他要在这棵树的结点上 ...

  4. [Fundamental of Power Electronics]-PART II-8. 变换器传递函数-8.3 阻抗和传递函数图形的构建

    8.3 阻抗和传递函数图形的构建 通常,我们可以通过观察来绘制近似的bode图,这样没有大量混乱的代数和不可避免的有关代数错误.使用这种方法可以对电路运行有较好的了解.在各种频率下哪些元件主导电路的响 ...

  5. [Fundamental of Power Electronics]-PART I-6.变换器电路-6.2 变换器简单罗列

    6.2 变换器简单罗列 变换器的数量可能有无穷种,因此将其全部列出是不可能的.这里给出了一个简单的罗列清单. 首先考虑含单个电感的单输入单输出变换器的类别.可以在电源和负载之间进行连接电感的方法数量是 ...

  6. JavaScript深入理解-正则表达式

    正则表达式 正则表达式是用于匹配字符串中字符组合的模式.在JavaScript中,正则表达式也是对象.这些模式被用于RegExp的 exec和 text方法,以及String中的 match.matc ...

  7. Qt获取一张图片的平均色(主色调)

    这两天在一个小工具中想做一个图标的发光效果,用固定颜色做出来效果很丑,于是想到此方法,得到图标的主色调后,将颜色调亮,并设置为阴影颜色,从而达到类似发光的效果. 本文章主要在于得到一张图片的平均色,并 ...

  8. Android Studio在android Emulator中运行的项目黑屏

    前言: 最近在做一个Android相关的小项目,因为之前这方面的项目做的比较的少.今天在使用虚拟机调试的时候经常出现一些莫名其妙的问题,经过自己多次的尝试和搜索终于解决了这些问题. 问题: 每次run ...

  9. 032- for循环语句

    问题 请在控制台里面打印10次HelloWorld. 这时可能你会这么写: System.out.println("helloworld"); System.out.println ...

  10. hdu4876 深搜+(随机枚举剪枝)

    题意:       给你n个数,让你从选择k个数,然后排成一个环(k个数的顺序随意,但是排成一个环后就不能变了),然后可以在这个环上任意的找连续w个数(w<=k),可以找多次,得到一个值等于当前 ...