今天用apache 自带的ab工具测试,当并发量达到1000多的时候报错如下:
[root@aa~]# This is ApacheBench, Version 2.3 <Revision:655654>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.1.176 (be patient)
Completed 300 requests
Completed 600 requests
Completed 900 requests
apr_socket_recv: Connection reset by peer (104)
Total of 1085 requests completed

查看应用服务器和数据库均未报错,连接被重置,bingyi了以下,apr_socket_recv这个是操作系统内核的一个参数,在高并发的情况下,内核会认为系统受到了SYN flood攻击,会发送cookies(possible SYN flooding on port 80. Sending cookies),这样会减慢影响请求的速度,所以在应用服务武器上设置下这个参数为0禁用系统保护就可以进行大并发测试了:

# vim /etc/sysctl.conf 
net.ipv4.tcp_syncookies = 0
# sysctl -p

然后就可以超过1000个并发测试了。

另附其他系统内核参数说明:

net.ipv4.tcp_syncookies = 0  
#此参数是为了防止洪水攻击的,但对于大并发系统,要禁用此设置net.ipv4.tcp_max_syn_backlog
#参数决定了SYN_RECV状态队列的数量,一般默认值为512或者1024,即超过这个数量,系统将不再接受新的TCP连接请求,一定程度上可以防止系统资源耗尽。可根据情况增加该值以接受更多的连接请求。net.ipv4.tcp_tw_recycle
#参数决定是否加速TIME_WAIT的sockets的回收,默认为0。net.ipv4.tcp_tw_reuse
#参数决定是否可将TIME_WAIT状态的sockets用于新的TCP连接,默认为0。net.ipv4.tcp_max_tw_buckets
#参数决定TIME_WAIT状态的sockets总数量,可根据连接数和系统资源需要进行设置。 

另外ab中自带参数
-r Don’t exit on socket receive errors.
可以避免并发过大出现错误,从而实现大并发测试,建议使用此方法。

ab 的各种参数

    -n requests     Number of requests to perform-c concurrency  Number of multiple requests to make at a time-t timelimit    Seconds to max. to spend on benchmarkingThis implies -n 50000-s timeout      Seconds to max. wait for each responseDefault is 30 seconds-b windowsize   Size of TCP send/receive buffer, in bytes-B address      Address to bind to when making outgoing connections-p postfile     File containing data to POST. Remember also to set -T-u putfile      File containing data to PUT. Remember also to set -T-T content-type Content-type header to use for POST/PUT data, eg.'application/x-www-form-urlencoded'Default is 'text/plain'-v verbosity    How much troubleshooting info to print-w              Print out results in HTML tables-i              Use HEAD instead of GET-x attributes   String to insert as table attributes-y attributes   String to insert as tr attributes-z attributes   String to insert as td or th attributes-C attribute    Add cookie, eg. 'Apache=1234'. (repeatable)-H attribute    Add Arbitrary header line, eg. 'Accept-Encoding: gzip'Inserted after all normal header lines. (repeatable)-A attribute    Add Basic WWW Authentication, the attributesare a colon separated username and password.-P attribute    Add Basic Proxy Authentication, the attributesare a colon separated username and password.-X proxy:port   Proxyserver and port number to use-V              Print version number and exit-k              Use HTTP KeepAlive feature-d              Do not show percentiles served table.-S              Do not show confidence estimators and warnings.-q              Do not show progress when doing more than 150 requests-l              Accept variable document length (use this for dynamic pages)-g filename     Output collected data to gnuplot format file.-e filename     Output CSV file with percentages served-r              Don't exit on socket receive errors.-h              Display usage information (this message)-Z ciphersuite  Specify SSL/TLS cipher suite (See openssl ciphers)-f protocol     Specify SSL/TLS protocol(SSL3, TLS1, TLS1.1, TLS1.2 or ALL)
- n请求执行的请求数
- c多次请求的并发数
- t限时秒到最大值。花在基准测试
这意味着- n 50000
- s超时秒到最大值。等待每个响应
默认值为30秒
- b窗口大小的TCP发送/接收缓冲区,以字节为单位
- b地址地址在发送连接时绑定
-p postfile文件,包含要发布的数据。记住也要设置- t
-u putfile文件中包含的数据。记住也要设置- t
- t内容类型的内容类型标题用于POST / PUT数据。
“应用程序/ x-www -表单- urlen编码”
默认是“text / plain”
-v verbosity有多少故障排除信息打印
- w打印结果在HTML我用HEAD代替GET
- x属性字符串作为表属性插入
- y属性字符串作为tr属性插入
- z属性字符串作为td或th属性插入
- c属性添加cookie。Apache = 1234。(重复)
- h属性添加任意标题行。“接受编码:gzip插入所有正常的标题行。(重复)
属性添加基本的WWW认证,属性
是一个冒号分隔的用户名和密码。
- p属性添加基本代理身份验证,属性
是一个冒号分隔的用户名和密码。
- x代理:使用端口Proxyserver和端口号
- v打印版本号,退出
- k使用HTTP KeepAlive功能
- d不显示百分比表。
- s不显示置信估计者和警告。
当超过150个请求时,q没有显示进展
- l接受可变文档长度(用于动态页面)
- g文件名输出数据到gnuplot格式文件。
- e文件名输出CSV文件的百分比
- r不退出套接字接收错误。
- h显示使用信息(此消息)
- z ciphersuite指定SSL / TLS密码套件(见openssl密码)
- f协议指定SSL / TLS协议
(SSL3,TLS1,TLS1.1,TLS1.2或全部)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/536144.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/536144.shtml
英文地址,请注明出处:http://en.pswp.cn/news/536144.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ngOnInit与constructor的区别

前世今生 Angular会管理一个组件的生命周期,包括组件的创建、渲染、子组件创建与渲染、当数据绑定属性变化时的校验、DOM移除之前毁销。 Angular提供组件生命周期钩子便于我们在某些关键点发生时添加操作。 组件生命周期钩子 指令和组件实例有个生命周期用于创建、更新和销…

Nginx配置性能优化

大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装&#xff0c;修改这里或那里的几行配置&#xff0c;好了&#xff0c;你已经有了一个Web服务器了。而且&#xff0c;在大多数情况下&#xff0c;一个常规安装的nginx对你的网站来说已经能很好地工作了。然而&#xf…

Angular的@Output与@Input理解

@Output与@Input理解 Output和Input是两个装饰器,是Angular2专门用来实现跨组件通讯,双向绑定等操作所用的。 @Input Component本身是一种支持 nest 的结构,Child和Parent之间,如果Parent需要把数据传输给child并在child自己的页面中显示,则需要在Child的对应 directiv…

腾讯云CDN配置

第一步&#xff1a;先去领取腾讯云CDN免费包23333333 以下为正式步骤&#xff1a; 在这里体现大家&#xff0c;域名一定要备案&#xff0c;另外要明白域名如何解析 前边问题不大&#xff0c;一切跟着腾讯云的套路来即可&#xff0c;需要注意的是网上后优化的配置大家可以自行…

Promise.all的深入理解

异步之Promise Promise.all Promise.all接收的promise数组是按顺序执行的还是一起执行的&#xff0c;也就是说返回的结果是顺序固定的吗&#xff1f; 目前有两种答案&#xff1a; 应该是同步执行的&#xff0c;但是这样就有效率问题了&#xff0c;如果想改成异步执行怎么办…

wordpress后台无法登录问题

之前给自己的WordPress加了个标签云&#xff0c;今天登录的时候突然发现网站后台进不去了&#xff0c;无奈各种找材料&#xff0c;这算是皇天不负有心人&#xff0c;总算是给我找到了&#xff0c;现在做一下记录 登录不上的原因在于&#xff1a;wp-admin和wp-admin/是不同的&a…

深入理解Angular订阅者模式

深入理解Angular订阅者模式 如果正在读此篇文章的你学过java,c++等面向对象语言,知道两个模式观察者模式和订阅者模式,分别为:Observer pattern,Pub-sub pattern(Subscriber) 接下来我们结合Angular来说明这两个模式。 Observer pattern This is a pattern of developme…

Ubuntu中安装python3

通过命令行安装Python3.*&#xff0c;只需要在终端中通过命令行安装即可&#xff1a; sudo apt-get install python3 Ubuntu的底层大多数采用的是Python2.*&#xff0c;Python3和Python2是互相不兼容的&#xff0c;完全没法通用的&#xff08;也不知道他们怎么想的o(TヘTo)&a…

Angular深入理解之指令

Angular深入理解之指令 指令有什么功能 Attribute directives 属性指令Structural directives 结构指令自定义属性指令自定义结构指令Angular深入理解之指令 对于初学Angular的同学来说,指令无疑是最痛苦的,那么我们怎么使用自定义的指令呢?指令到底怎么实现呢?为什么要写…

windows下Apache虚拟主机配置

找到host文件&#xff1a;C:\Windows\System32\drivers\etc\hosts 在hosts这么增加&#xff1a; 127.0.0.1 666.666.com 127.0.0.1 777.777.com 修改httpd.conf文件&#xff1a; 打开文件&#xff1a;xxx\xampp\apache\conf\httpd.conf 找到#LoadModule vhost_…

Angular深入理解基本组成

Angular深入理解基本组成 在讲指令时,我们先来了解一下Angular的基本概念和结构。 Module 模块 Angular 是模块化的.Modules 导出 classes, function, values , 以便在其他模块导入使用.angular应用由模块组成,每个模块都做此模块相关的事情组件、方法、类、服务等,他们都…

1607: 字符棱形

1607: 字符棱形 根据读入的字符和边长&#xff0c;勾画字符棱形。 Input 输入数据含有不超过50组的数据&#xff0c;每组数据包括一个可见字符c和一个整数n&#xff08;1≤n≤30&#xff09;。 Output 输出以c为填充字符&#xff0c;边长为n的棱形&#xff0c;勾画每个棱形…

Angular深入理解管道Pipe

Angular深入理解管道 纯管道与非纯管道区别的本质 Pure FunctionImpure Function内置Pipe pipe使用自定义Pipe 管道性能优化Angular深入理解管道 管道的链接 有学过linux shell的同学,应该知道管道,在shell中的管道是IPC,linux的进程间通讯有pipe,FIFO,signal。这里只是简单…

1959: 图案打印

1959: 图案打印 Description 一年一度的植树节就要到了&#xff0c;计算机学院学生准备在学院教学楼门前的空地上种植树木。为使树木排列得更加美观&#xff0c;大家决定把树木排列成菱形。现在告诉你我们所拥有的树木能排列成边长为N的菱形&#xff0c;请你编程输出树木所排…

JS事件的捕获和冒泡阶段

JS事件的捕获和冒泡阶段 这里介绍两个事件模型&#xff1a;IE事件模型与DOM事件模型 IE内核浏览器的事件模型是冒泡型事件&#xff08;没有捕获事件过程&#xff09;&#xff0c;事件句柄的触发顺序是从ChildNode到ParentNode。 <div id"ancestor"> <butt…

2016: C语言实验——打印金字塔

2016: C语言实验——打印金字塔 Description 输入n值&#xff0c;打印下列形状的金字塔&#xff0c;其中n代表金字塔的层数。 Input 输入只有一个正整数n。 Output 打印金字塔图形&#xff0c;其中每个数字之间有一个空格。 Sample Input 3 Sample Output 11 2 1 1 2 …

Anuglar中正确导入RxJS库

Anuglar中正确导入RxJS库 目前Angular2中的已经内建支持RxJS,所以我们在使用的时候可以直接导入使用了。 理解操作符导⼊ 在使用创建依赖于 RxJS 组件,服务,指令等等时, 你可能遇到处理运算符导⼊的问 题。 在项⽬中引⼊操作符最主要的⽅式像下⾯这样导⼊: import rxj…

1495: 蛇行矩阵

1495: 蛇行矩阵 Description 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。 Input 本题有多组数据&#xff0c;每组数据由一个正整数N组成。&#xff08;N不大于100&#xff09; Output 对于每一组数据&#xff0c;输出一个N行的蛇形矩阵。两组输出之间不要额…

递归基础之N皇后问题

递归基础之N皇后问题 Description 在nn 格的棋盘上放置彼此不受攻击的n 个皇后。按照国际象棋的规则&#xff0c;皇后可以攻击与之 处在同一行或同一列或同一斜线上的棋子。n后问题等价于在nn格的棋盘上放置n个皇后&#xff0c; 任何2 个皇后不放在同一行或同一列或同一斜线上…

X86和X86_64和AMD64的由来

为什么叫X86和X86_64和AMD64 为什么大家叫x86为32位系统呢 相信大家在大学里面有很多人都玩过8086&#xff08;微处理器&#xff09;&#xff0c;这是一个可编程的系统&#xff0c;他是由intel开发的&#xff0c;英特尔出了划时代的8086之后&#xff0c;后来使用该架构出了80…