编程技术分享平台

网站首页 > 技术教程 正文

高并发nginx错误(高并发 nginx)

xnh888 2024-09-19 06:22:55 技术教程 20 ℃ 0 评论

一、安装nginx

参考地址:安装nginx

二、安装ab命令

yum -y install httpd-tools

三、ab命令使用说明

-n 即requests,用于指定压力测试总共的执行次数。

-c 即concurrency,用于指定的并发数。

-t 即timelimit,等待响应的最大时间(单位:秒)。

-b 即windowsize,TCP发送/接收的缓冲大小(单位:字节)。

-p 即postfile,发送POST请求时需要上传的文件,此外还必须设置-T参数。

-u 即putfile,发送PUT请求时需要上传的文件,此外还必须设置-T参数。

-T 即content-type,用于设置Content-Type请求头信息,例如:application/x-www-form-urlencoded,默认值为text/plain。

-v 即verbosity,指定打印帮助信息的冗余级别。

-w 以HTML表格形式打印结果。

-i 使用HEAD请求代替GET请求。

-x 插入字符串作为table标签的属性。

-y 插入字符串作为tr标签的属性。

-z 插入字符串作为td标签的属性。

-C 添加cookie信息,例如:"Apache=1234"(可以重复该参数选项以添加多个)。

-H 添加任意的请求头,例如:"Accept-Encoding: gzip",请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个)。

-A 添加一个基本的网络认证信息,用户名和密码之间用英文冒号隔开。

-P 添加一个基本的代理认证信息,用户名和密码之间用英文冒号隔开。

-X 指定使用的和端口号,例如:"126.10.10.3:88"。

-V 打印版本号并退出。

-k 使用HTTP的KeepAlive特性。

-d 不显示百分比。

-S 不显示预估和警告信息。

-g 输出结果信息到gnuplot格式的文件中。

-e 输出结果信息到CSV格式的文件中。

-r 指定接收到错误信息时不退出程序。

-h 显示用法信息,其实就是ab -help。

四、出现Too many open files (24)错误,解决方案?

1、cpu个数和每个cpu核数

2、修改nginx配置文件,重启

3、修改系统限制

这两个值的修改命令

临时修改,立即生效,无需重启。

ulimit -Hn 50000 #临时有效,重启后恢复默认值1024

ulimit -Sn 50000 #临时有效,重启后恢复默认值1024

-H:硬修改,修改后打开文件数不能超过这个数

-S:软修改,修改后打开文件数可以超过这个数

-n:这个上图中50000数值钱那个括号里面的-n

永久修改,重启生效,需重启服务器。

修改配置文件,/etc/security/limits.conf

4、重启服务器

shutdown now -r

5、查看配置是否生效

五、如果出现apr_socket_recv: Connection reset by peer (104) 错误的解决方法

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

2、修改vim /etc/sysctl.conf禁用系统保护 (加:net.ipv4.tcp_syncookies = 0)并保存

3、查看配置是否成功:sysctl -p

六、Invalid Concurrency [Range 0..20000]错误原因?

1、并发数默认不能大于20000个

2、需要修改apache源代码support目录下ab.c文件,找到:

#define MAX_CONCURRENCY 20000

将宏定义的值改大,重新编译安装apache。

七、并发数不能大于请求数(Cannot use concurrency level greater than total number of requests)

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表