Linux下高并发socket链接数测试
一.如何增大service进程的max open files
ulimit -n 只能改小max open files,不能改大。需要按照以下步骤:
- 修改/etc/security/limits.conf文件,将"soft nofile 655360"和"hard nofile 655360"这两行的655360改成期望的值
- 退出,重新ssh该机器(否则无效)
- 修改对service的启动脚本,增加"ulimit -n 950000",其中950000是期望改变的值
- 重启service进程(否则无效),通过"cat /proc/pid/limits"查看是否生效,其中pid是service的进程id
- 可以通过"cat /proc/sys/fs/file-max"查看系统允许的最大的max open files
二.如何修改系统的tcp端口限制
- 通过"cat /proc/sys/net/ipv4/ip_local_port_range"可以查看系统设置的可用端口
- 在/etc/sysctl.conf中增加"net.ipv4.ip_local_port_range = 1024 65000"这一行,执行"sysctl -p",若不报错则成功
- 再次通过"cat /proc/sys/net/ipv4/ip_local_port_range"可以查看系统设置的可用端口是否生效
三.测试方法
- 加强对测试系统的了解。例如:由于对系统的某些限制不了解造成测试方法错误,结果不可取。(同一级目录下不允许创建百万个文件)
- 复现问题,尽量模拟用户的用法。例如:协程or物理线程。
- 打破常规假设:理论判断不会走到的分支,则没有测试,链接数异常,则可能是走到了理论判断不会走到分支;
- Little's law法则:pthread_create并不是创建的线程越多越好,看测试重点,针对此问题,开几个线程,每个线程多干活即可达到期望的高链接数;
N = X * E[T] ,N就是你的压力器线程数,X是IOPS ,E[T]是平均处理时间
压不上去两个原因 1) N太小 2) E[T]太大 - 测试观察项。期望压力持续一个状态,而非瞬间状态,保证链接不复用且不释放或释放后立即重连。
- 测试性能结果,需要符合用户的用法。例如:QPS、Latency等,不要提供给用户一个用户不需要的性能报告。
- 善用工具。例如:能复用尽量复用,减少重复的无用功。多积累学习一些工具,较少工作量。
四.重要的事情说三遍
- 勿忘初衷
- 勿忘初衷
- 勿忘初衷
用户:我想要一辆跑得很快的马车。
重点是“快”,而不是“马车”。
参考:
Linux下高并发socket最大连接数
http://soft.chinabyte.com/os/285/12349285.shtml
Linux下高并发socket链接数测试的更多相关文章
- Linux下高并发socket最大连接数所受的各种限制(详解)
1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每 ...
- [转载] Linux下高并发socket最大连接数所受的各种限制
原文: http://mp.weixin.qq.com/s?__biz=MzAwNjMxNjQzNA==&mid=207772333&idx=1&sn=cfc8aadb422f ...
- Linux下高并发socket最大连接数所受的各种限制
http://blog.csdn.net/guowake/article/details/6615728 1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行 ...
- Linux下高并发socket最大连接数
http://soft.chinabyte.com/os/285/12349285.shtml (转载时原文内容做个修改) 1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是 ...
- Linux下高并发socket最大连接数各种限制的调优
1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每 ...
- Linux下高并发socket最大连接数所受的各种限制(转)
1.修改用户进程可打开文件数限制在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个 ...
- 教你修改Linux下高并发socket最大连接数所受的各种限制
1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开 文件数量的限制(这是因为系统为 ...
- Linux下高并发网络编程
Linux下高并发网络编程 1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时, 最高的并发数量都要受到系统对用户单一进程同时可打 ...
- linux下高并发网络应用注意事项
本文转自:http://www.blogjava.net/bacoo/archive/2012/06/11/380500.html linux下高并发网络应用注意事项 vi /etc/sysctl.c ...
随机推荐
- php codeigniter (CI) oracle 数据库配置-宋正河整理
database.php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 $active_group = 'default'; $active_record ...
- Vs2015 win10虚拟机启动问题:无法设置UDP端口 解决方法 合集(转载)
刚装的vs2015 社区版 出现这个问题,wp8.1和win10m模拟器都无法启动,找了好久找到的解决方案,放这儿供大家参考,免得大家像我一样走弯路: Windows Phone emulator n ...
- nagios为监控图像添加图片
1. 背景介绍 在监控web页面上显示主机都为问号,如下图所示: 本文的主要目的就是将监控的图片添加进去,让监控图像变得美观. 2. 图片的下载地址 图片的下载地址如下: https://exchan ...
- asp.net mvc源码分析-Action篇 IModelBinder
我们首先还是看看ReflectedParameterBindingInfo的Binder属性吧: public override IModelBinder Binder { ge ...
- CentOS7 安装 scala 2.11.1
wget http://downloads.typesafe.com/scala/2.11.6/scala-2.11.6.tgz?_ga=1.61986863.2013247204.144801902 ...
- 原型模式--prototype
C++设计模式——原型模式 什么是原型模式? 在GOF的<设计模式:可复用面向对象软件的基础>中是这样说的:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.这这个定义中,最 ...
- 【转】What's the difference between simulation and emulation
摘要:这2个单词 还是用英文解释,比较准确.按我的理解:simulation就是模拟,可以做些改变. emulation是仿真,是按照原来的样子进行部署,不可以改变. Yes, the concept ...
- TopFreeTheme精选免费模板【20130629】
今天给大家推荐9款最新精选的WordPress主题,它们涵盖了新闻.杂志.博客.房地产方面的主题.有些是商业模板,但现在都可以免费下载. GeoPlaces v4.6.2 – 来自Templatic的 ...
- 分析fork后多进程对文件的共享
fork函数是创建一个新的进程作为原进程的子进程,创建的子进程和父进程存在很多的相似性,首先父子进程的虚拟存储空间的用户空间是相同的,是将父进程的拷贝给子进程.同时父子进程对文件的操作是共享方式.因为 ...
- JVM性能优化,提高Java的伸缩性
很多程序员在解决JVM性能问题的时候,花开了很多时间去调优应用程序级别的性能瓶颈,当你读完这本系列文章之后你会发现我可能更加系统地看待这类的问题.我说过JVM的自身技术限制了Java企业级应用的伸缩性 ...