安装
最快安装:
yum install httpd-tools
源码安装:
yum install apr-util
yum -y install yum-utils
yumdownloader httpd-tools
rpm2cpio httpd-*.rpm | cpio -idmv
window安装:
- 进入http://httpd.apache.org/download.cgi
- 选择Files for Microsoft Windows
- 进去之后再选择ApacheHaus,第二个也是独立的Apache下载地址,另外三个是集成开发环境
- 在新页面会 发现VC9和VC11字样,VC9是指用VS2008编译的代码,而VC11是用VS2012编译的,而用VS2012编译的无法在windows xp和server 2003中使用。这里选择VC9编译的64位Apache
- 本人下载 解压 重命名 至 F:\Apache24
- 修改配置:F:\Apache24\conf\httpd.conf,
Define SRVROOT “F:/Apache24”
Listen 80 - 到 C:\Windows\System32 找到cmd.exe 使用管理员身份运行
打开CMD窗口,输入:”F:\Apache24\bin\httpd.exe” -k install -n apache
切记,包含引号。该命令的意思是,安装apache服务,并将该服务名称命名为apache(你也可以改成别的),回车。正常安装完毕如下图所示:
其中,Errors reported here must be corrected before the service can be started.意思是,若该句话后面有错误信息,则表示服务安装失败,需要先改正错误。若没有,则成功。
在安装目录中,找到F:\Apache24\bin\ApacheMonitor.exe可执行文件,双击运行,桌面右下角会出现图标。
- 点击图标会出现窗口,点击左侧start,启动apache服务。
异常
使用ab或者webbench做压力测试,如果并发数开到1000的时候,无法完成测试。到晚上查看资料发现是linux网络参数设置。
方法一:
longhao@longhao etc]# vi /etc/sysctl.conf
在kernel2.6之前的添加项:
net.ipv4.netfilter.ip_conntrack_max = 655360
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180
kernel2.6之后的添加项:
net.nf_conntrack_max = 655360 # net.nf_conntrack_max = 655360 也可以
net.netfilter.nf_conntrack_tcp_timeout_established = 1200
[longhao@longhao etc]# sysctl -p /etc/sysctl.conf
如果报错:error: “net.nf_conntrack_max” is an unknown key 则需要使用modprobe载入ip_conntrack模块,lsmod查看模块已载入。
[longhao@longhao etc]# modprobe ip_conntrack
方法二:
按如下修改 Apache 源码目录下 support/ab.c 文件,重新编译安装。
elseif(status != APR_SUCCESS) {
err_recv++;
if(recverrok) {
bad++;
close_connection(c);
if(verbosity >= 1) {
charbuf[120];
fprintf(stderr,"%s: %s (%d)\n", "apr_socket_recv", apr_strerror(status, buf, sizeofbuf), status);
}
return;
} else{
bad++; //添加
close_connection(c); //添加
//apr_err("apr_socket_recv", status); //注释
return; //添加
}
}
简单使用
模拟100个并发用户,对一个页面发送1000个请求
性能指标
- 吞吐率(Requests per second)
吞吐率和并发用户数相关
不同的并发用户数下,吞吐率一般是不同的 - 并发连接数(The number of concurrent connections)
- 并发用户数(Concurrency Level)
- 用户平均请求等待时间(Time per request)
- 服务器平均请求等待时间(Time per request:across all concurrent requests)