一.如何增大service进程的max open files

ulimit -n 只能改小max open files,不能改大。需要按照以下步骤:

  1. 修改/etc/security/limits.conf文件,将"soft nofile 655360"和"hard nofile 655360"这两行的655360改成期望的值
  2. 退出,重新ssh该机器(否则无效)
  3. 修改对service的启动脚本,增加"ulimit -n 950000",其中950000是期望改变的值
  4. 重启service进程(否则无效),通过"cat /proc/pid/limits"查看是否生效,其中pid是service的进程id
  5. 可以通过"cat /proc/sys/fs/file-max"查看系统允许的最大的max open files

二.如何修改系统的tcp端口限制

  1. 通过"cat /proc/sys/net/ipv4/ip_local_port_range"可以查看系统设置的可用端口
  2. 在/etc/sysctl.conf中增加"net.ipv4.ip_local_port_range = 1024 65000"这一行,执行"sysctl -p",若不报错则成功
  3. 再次通过"cat /proc/sys/net/ipv4/ip_local_port_range"可以查看系统设置的可用端口是否生效

三.测试方法

  1. 加强对测试系统的了解。例如:由于对系统的某些限制不了解造成测试方法错误,结果不可取。(同一级目录下不允许创建百万个文件)
  2. 复现问题,尽量模拟用户的用法。例如:协程or物理线程。
  3. 打破常规假设:理论判断不会走到的分支,则没有测试,链接数异常,则可能是走到了理论判断不会走到分支;
  4. Little's law法则:pthread_create并不是创建的线程越多越好,看测试重点,针对此问题,开几个线程,每个线程多干活即可达到期望的高链接数;
    N = X * E[T] ,N就是你的压力器线程数,X是IOPS ,E[T]是平均处理时间
    压不上去两个原因 1) N太小 2) E[T]太大
  5. 测试观察项。期望压力持续一个状态,而非瞬间状态,保证链接不复用且不释放或释放后立即重连。
  6. 测试性能结果,需要符合用户的用法。例如:QPS、Latency等,不要提供给用户一个用户不需要的性能报告。
  7. 善用工具。例如:能复用尽量复用,减少重复的无用功。多积累学习一些工具,较少工作量。

四.重要的事情说三遍

  1. 勿忘初衷
  2. 勿忘初衷
  3. 勿忘初衷

用户:我想要一辆跑得很快的马车。

重点是“快”,而不是“马车”。

参考:

Linux下高并发socket最大连接数

http://soft.chinabyte.com/os/285/12349285.shtml

Linux下高并发socket链接数测试的更多相关文章

  1. Linux下高并发socket最大连接数所受的各种限制(详解)

    1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每 ...

  2. [转载] Linux下高并发socket最大连接数所受的各种限制

    原文: http://mp.weixin.qq.com/s?__biz=MzAwNjMxNjQzNA==&mid=207772333&idx=1&sn=cfc8aadb422f ...

  3. Linux下高并发socket最大连接数所受的各种限制

    http://blog.csdn.net/guowake/article/details/6615728 1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行 ...

  4. Linux下高并发socket最大连接数

    http://soft.chinabyte.com/os/285/12349285.shtml (转载时原文内容做个修改) 1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是 ...

  5. Linux下高并发socket最大连接数各种限制的调优

    1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每 ...

  6. Linux下高并发socket最大连接数所受的各种限制(转)

    1.修改用户进程可打开文件数限制在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个 ...

  7. 教你修改Linux下高并发socket最大连接数所受的各种限制

    1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开 文件数量的限制(这是因为系统为 ...

  8. Linux下高并发网络编程

      Linux下高并发网络编程 1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时, 最高的并发数量都要受到系统对用户单一进程同时可打 ...

  9. linux下高并发网络应用注意事项

    本文转自:http://www.blogjava.net/bacoo/archive/2012/06/11/380500.html linux下高并发网络应用注意事项 vi /etc/sysctl.c ...

随机推荐

  1. vector容器使用总结 .xml

    pre{ line-height:1; color:#38ede1; background-color:#5b2814; font-size:16px;}.sysFunc{color:#008080; ...

  2. Chapter12&Chapter13:程序实例

    文本查询程序 要求:程序允许用户在一个给定文件中查询单词.查询结果是单词在文件中出现的次数及所在行的列表.如果一个单词在一行中出现多次,此行只列出一次. 对要求的分析: 1.读入文件,必须记住单词出现 ...

  3. DataGrid loadData loadFilter

    <!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>Cl ...

  4. c++builder 重载WindowProc、WndProc 截获消息

    c++builder 重载WindowProc.WndProc 截获消息 方法一WindowProc void __fastcall  myWindowProc(Messages::TMessage ...

  5. 树上的DP

    CF#196B http://codeforces.com/contest/338/problem/B 题意:在一颗树上,给m个点,求到所有m个点距离不超过d的点的个数,所有路径长度为1. 分析:问题 ...

  6. STM32F407存储器和总线架构

    http://www.cnblogs.com/ransn/p/5654068.html

  7. unigui unidbgrid显示列的合计值

    procedure TfrmClient.UniDBGrid1ColumnSummaryResult(Column: TUniDBGridColumn; GroupFieldValue: Varian ...

  8. mysql中间件研究(Atlas,cobar,TDDL)

    mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等,但其不支持大数据量的分库分表且性能较差.下面介绍几款能代替其的mysql开源中间件产品,Atlas ...

  9. java(2014版)连接数据库的工具类

    package util; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; ...

  10. 关于TabControl的Trigger【项目】

    我有一个TabControl <TabControl x:Name="ToolSystemSection" Grid.Row="4" ContentTem ...