################################################################################
极限测试4 - 系统能创建的最大tcp连接数
################################################################################
系统参数查询: sysctl -a,  
系统参数修改:  
修改/etc/sysctl.conf, 然后调用sysctl -p
临时修改:
    sysctl -w xxxx=xx,  
    或直接用echo 命令修改对应文件内容。
 
遇到的问题及解决办法:
1.  打开文件失败, "Too many open files"
解决办法: 修改用户进程可打开文件数限制
临时修改(本终端有效): ulimit -n xxxxx
永久修改: 例如: hjj 用户20万文件句柄
root@hjj /home/hjj]# cat /etc/security/limits.conf  
hjj        soft    nofile          204800
hjj        hard    nofile          204800
 
 
 
查看Linux系统级的最大打开文件数限制,使用如下命令:
[root@hjj /home/hjj]# cat /proc/sys/fs/file-max
186381
不满足要求时,可以修改该值。
 
2.  connect()调用返回失败,
不能分配请求地址.  "Can't assign requested address"
如果现有的TCP客户端连接已将所有的本地端口号占满,则此时就无法为新的TCP客户端连接分配一个本地端口号了
 
修改/etc/sysctl.conf文件,添加如下行:
    默认:net.ipv4.ip_local_port_range = 32768    61000
  修改为:net.ipv4.ip_local_port_range = 1024 65535
  请注意,小于1024的端口为系统保留
修改完后调用 sysctl -p
 
临时修改:
sysctl -w net.ipv4.ip_local_port_range=1024 65535   
也可以用echo 命令直接修改内核文件
 
 
如果统计发现time_wait 状态过多, 需要修改如下参数,使得可以快速释放端口并重新利用
net.ipv4.tcp_timestamps = 1            开启对于TCP时间戳的支持,
net.ipv4.tcp_tw_recycle = 1            回收
net.ipv4.tcp_tw_reuse = 1            利用
 
3. "Connection reset by peer"
 
原因。(主动端(客户端))
NOT Connected, error:Connection reset by peer
客户端不经过close 而直接退出连接时。系统发reset 包
 
 
原因。(被动端(服务器))
NOT Connected, error:Connection reset by peer
NOT Connected, error:Connection timed out
NOT Connected, error:Broken pipe
 
服务器已经不堪重负。调优参数,减轻负载
1. 减少运行负载。(包括优化程序执行代码负载,例如不要加log)
2. 增加内核backlog
    net.ipv4.tcp_max_syn_backlog = 4096
 
3. 增加 net.ipv4.tcp_mem 值
    tcp_mem[0]:低于此值,TCP没有内存压力.
    tcp_mem[1]:在此值下,进入内存压力阶段.
    tcp_mem[2]:高于此值,TCP拒绝分配socket.
    net.ipv4.tcp_mem = 176448    235264    352896
 
关于内存及缓存大小,适当的修改,有效果保留,无效果可以放弃。
还有很多项可如此设置。摘录一些目前我的tcp 内核设置,供参考。
可以满足无负载时10万连接,重负载时3万连接。
机器配置:  
1. cpu (双核3G cpu)
[root@hjj /home/hjj]# cat /proc/cpuinfo |grep cpu
cpu family    : 6
cpu MHz        : 2925.705
cpu cores    : 2
cpuid level    : 13
cpu family    : 6
cpu MHz        : 2925.705
cpu cores    : 2
cpuid level    : 13
 
2. mem  (2G)
[root@hjj /home/hjj]# free
             total       used       free     shared    buffers     cached
Mem:       1903204    1328016     575188          0     143100     768496
-/+ buffers/cache:     416420    1486784
Swap:      4095992          0    4095992
 
 
[root@hjj /home/hjj]# sysctl -a |grep ipv4.tcp
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_retrans_collapse = 1
net.ipv4.tcp_syn_retries = 5
net.ipv4.tcp_synack_retries = 5
net.ipv4.tcp_max_orphans = 131072
net.ipv4.tcp_max_tw_buckets = 131072
net.ipv4.tcp_keepalive_time = 7200
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_intvl = 75
net.ipv4.tcp_retries1 = 3
net.ipv4.tcp_retries2 = 15
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_abort_on_overflow = 0
net.ipv4.tcp_stdurg = 0
net.ipv4.tcp_rfc1337 = 0
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_orphan_retries = 0
net.ipv4.tcp_fack = 1
net.ipv4.tcp_reordering = 3
net.ipv4.tcp_ecn = 2
net.ipv4.tcp_dsack = 1
net.ipv4.tcp_mem = 176448    235264    352896
net.ipv4.tcp_wmem = 4096    16384    4194304
net.ipv4.tcp_rmem = 4096    87380    4194304
net.ipv4.tcp_app_win = 31
net.ipv4.tcp_adv_win_scale = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_frto = 2
net.ipv4.tcp_frto_response = 0
net.ipv4.tcp_low_latency = 0
net.ipv4.tcp_no_metrics_save = 0
net.ipv4.tcp_moderate_rcvbuf = 1
net.ipv4.tcp_tso_win_divisor = 3
net.ipv4.tcp_congestion_control = cubic
net.ipv4.tcp_abc = 0
net.ipv4.tcp_mtu_probing = 0
net.ipv4.tcp_base_mss = 512
net.ipv4.tcp_workaround_signed_windows = 0
net.ipv4.tcp_challenge_ack_limit = 100
net.ipv4.tcp_limit_output_bytes = 131072
net.ipv4.tcp_dma_copybreak = 4096
net.ipv4.tcp_slow_start_after_idle = 1
net.ipv4.tcp_available_congestion_control = cubic reno
net.ipv4.tcp_allowed_congestion_control = cubic reno
net.ipv4.tcp_max_ssthresh = 0
net.ipv4.tcp_thin_linear_timeouts = 0
net.ipv4.tcp_thin_dupack = 0
net.ipv4.tcp_min_tso_segs = 2

极限测试4 - 系统能创建的最大tcp连接数相关推荐

  1. 精读-软件测试的艺术之调试,极限测试和因特尔应用系统的测试

    本文是关于精读书籍<软件测试的艺术>的一些学习笔记和分享 本书共有九章包括测试思想(心理,经济),代码检查,测试用例设计,模块测试,更高级别的测试,调试,极限测试和因特尔应用系统的测试. ...

  2. 软件测试基础-更高级别的测试、调试、极限测试

    更高级别的测试 开发过程和测试过程存在一一对应关系 模块测试的目的是发现程序模块与其接口规格说明之间的不一致 功能测试的目的是为了证明程序未能符合其外部规格说明 系统测试的目的是为了证明软件产品与其初 ...

  3. 树莓派2代B型性能极限测试

    一.树莓派2代简介 树莓派基金会于2015年2月2号发布了最新版本的树莓派,型号为2代B型.此次新品并非简单的升级而已,而是在这款单板机上赋予了翻天覆地的变化.从2012年问世以来,树莓派经历了多次更 ...

  4. 性能测试——负载测试、容量测试、极限测试、压力测试

    1.负载测试(Load Test):负载测试是一种性能测试,指数据在超负荷环境中运行,程序是否能够承担. 关注点:how much 2.压力测试(Stress Test): 压力测试(又叫强度测试)也 ...

  5. 逐步攻略:使用Matlab音频系统工具箱创建自己的VST插件,让音乐编程在Nashville崭新绽放

    第一部分:引言与Matlab音频系统工具箱概览 尊敬的读者,欢迎阅读这篇文章.我作为一个热爱音乐和编程的人,十分激动地在这里和大家分享我最近的一次学习经验.正如标题所述,我们将探索一种崭新的方式来创建 ...

  6. Python win10系统下创建发布

    Python win10系统下创建发布 最近开始学习Python,用head First Python入门. 看到书中构建发布部分,自己练习时,出了几个错误.这里把解决方法写出来,以方便自已以后温习. ...

  7. 压力测试时软件崩溃怎么办,完善压力测试 避免系统崩溃恶果

    压力测试对系统的重要作用 我们对应用程序进行压力测试时经常会出现这种情况,就是测试到了最后却发现不明白测试结果有什么意义?实际上,当我们都不明白压力测试的意义时,我们就不能设计出各种极限测试用例. 压 ...

  8. 华为回应俄罗斯公司测试鸿蒙系统;​小米辞退不能胜任工作员工终审败诉;Ubuntu有了滚动发行版|极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  9. win7计算机创建新用户,win7系统无法创建新用户的解决方法

    很多小伙伴都遇到过win7系统无法创建新用户的困惑吧,一些朋友看过网上零散的win7系统无法创建新用户的处理方法,并没有完完全全明白win7系统无法创建新用户是如何解决的,今天小编准备了简单的解决办法 ...

最新文章

  1. 这是我看过最全的工业机器人知识介绍 !
  2. 你不知道的三种在for循环中使用setTimeout的方法
  3. 「DB」数据库事务的隔离级别
  4. java 与 php lajp_LAJP
  5. Java transient关键字使用小记
  6. 循环队列之舞伴问题(含源码详解)
  7. 对于Activity的理解
  8. 使用 WPF + Chrome 内核实现 在线客服系统 的复合客服端程序
  9. Android 基础性能数据获取(/proc/)
  10. 扩展坞可以把手机投到显示器吗_解锁4K 60Hz毕亚兹USB Type-C扩展坞体验
  11. python sqlite row
  12. 因使用五年前的老旧代码,Azure 容器险遭黑客接管,微软已修复
  13. 《面向模式的软件体系结构2-用于并发和网络化对象模式》读书笔记(10)--- 接受器 - 连接器...
  14. java.lang.UnsatisfiedLinkError: Library not loaded: @rpath/libo.dylib Reason: image not found
  15. 微信戴圣诞帽的一个简易实现程序
  16. 记录FinalShell退格键
  17. 在web上面显示地图并定位
  18. python+adb 控制安卓手机拍照并传电脑
  19. 1990-2019年地级市地方财政收支数据(全市)
  20. pojFilp Game2965 翻转棋子

热门文章

  1. java cas logout无效_CAS logout 解决方案
  2. PHP开发API接口代码展示
  3. Linux系统之管道符
  4. C语言例题100道(1~20)
  5. 小程序模拟表格-可左右滑动
  6. Hmmer using Guide
  7. Anchor Based和Anchor Free的相爱相杀与ATSS的诞生
  8. 教你win7下如何删除微软拼音输入法~!
  9. 全国计算机等级考试四级笔试样卷网络工程师
  10. Binding的详细说明