「这是我参与11月更文挑战的第28天,活动详情查看:2021最后一次更文挑战」。
前言
客户端采用wrk压测工具,服务端安装httpd服务。具体的httpd配置详见历史文章:# 关于Apache HTTP Serve你应该知道的!使用wrk对服务端进行压测,检测wrk的压测性能。
修改 httpd 的最大连接数
我们测试的后端服务采用httpd,为了能够承载更多的客户端连接,我们需要对httpd的默认配置进行修改。
直接将如下代码加到 httpd
的配置文件中
1 | xml复制代码<IfModule mpm_prefork_module> |
wrk
关于wrk
wrk是一款简单的HTTP压测工具,托管在Github上,github.com/wg/wrk,当然国内的码云Gitee上也有其资源,gitee.com/why168/wrk。
wrk 的一个很好的特性就是能用很少的线程压出很大的并发量。原因是它使用了一些操作系统特定的高性能 io 机制, 比如 select, epoll, kqueue 等。其实它是复用了 redis 的 ae 异步事件驱动框架。确切的说 ae 事件驱动框架并不是 redis 发明的,它来至于 Tcl的解释器 jim,这个小巧高效的框架,因为被 redis 采用而更多的被大家所熟知。
依赖
1 | arduino复制代码# wrk 依赖gcc |
安装
1 | bash复制代码# clone wrk 源码到测试机 |
测试前解除客户端和服务端的限制
sysctl.conf
1 | ini复制代码# ===向/etc/sysctl.conf中增加以下几行配置=== |
端口限制放开
1 | bash复制代码# 打开端口范围 |
文件句柄放开
使用命令:ulimit -n 1048576
或:修改配置文件
1 | bash复制代码cat /etc/security/limits.conf |
执行测试
1 | bash复制代码➜ ok git:(master) ./wrk -t12 -c100 -d30s http://www.baidu.com |
12 线程 100 个连接(并发)。QPS:996.72。
本文转载自: 掘金