• Linux下高并发socket链接数测试


    一.如何增大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. 善用工具。例如:能复用尽量复用,减少重复的无用功。多积累学习一些工具,较少工作量。
    8.  

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

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

     

    参考:

    Linux下高并发socket最大连接数

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

  • 相关阅读:
    51 nod 1109 01组成的N的倍数
    zoj 1530 Find The Multiple
    洛谷 P1124 文件压缩
    洛谷 P1270 “访问”美术馆(树形DP)
    洛谷 P1272 重建道路(树形DP)
    ♫【CSS】命名颜色
    【注释】
    -_-#【命名】BEM
    ☀【jQuery插件】DOM 延迟渲染
    ☀【组件】getRequest
  • 原文地址:https://www.cnblogs.com/-sunshine/p/5149565.html
Copyright © 2020-2023  润新知