压力测试以及编译安装httpd2.4
压力测试以及编译安装httpd2.4
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
[root@yinzhengjie ~]# ab -c -n http://www.yinzhengjie.org.cn/index.html ----->注意, -c 模拟的并发数,-n 模拟的总请求数, 一般并发数应该小于等于请求数。
This is ApacheBench, Version 2.3 <$Revision: $>
Copyright Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking www.yinzhengjie.org.cn (be patient)
Completed requests ----->告诉我们测试以及完成了5000个请求,下面一次是执行进度。
Completed requests
Completed requests
Completed requests
Completed requests
Completed requests
Completed requests
Completed requests
Completed requests
Completed requests
Finished requests ------->这就说明任务完成了。 Server Software: Apache/2.2. ----->服务器程序及版本;
Server Hostname: www.yinzhengjie.org.cn ----->服务器的主机名;
Server Port: ------>访问服务器的端口; Document Path: /index.html ------->请求资源的路径;
Document Length: bytes ------->请求资源的大小; Concurrency Level: -------->并发级别为100个;
Time taken for tests: 9.013 seconds --------->测试所经历的市场;
Complete requests: --------->完成的请求个数;
Failed requests: --------->失败的请求个数;
Write errors: ---------->发送的失败个数;
Total transferred: bytes ---------->一共传输的355M,默认单位为字节;
HTML transferred: bytes ---------->所传输的HTML大小为341M,上面的值包括请求首部等,因此上面的值会大于该值,该项只只包含文档实体本身;
Requests per second: 5547.74 [#/sec] (mean) ----------->每秒钟完成的请求数;
Time per request: 18.025 [ms] (mean) ----------->表示总的并发数需要的时间;
Time per request: 0.180 [ms] (mean, across all concurrent requests) ------>表示单个请求所需的时间。总的并发数是100,就用总的时间除以100就会得到这个数字;
Transfer rate: 40390.33 [Kbytes/sec] received -------->每秒钟传输的字节数; Connection Times (ms) ----->处理时间,单位是毫秒。
min mean[+/-sd] median max
Connect: 4.1 ---->连接时间
Processing: 4.1 ----->处理进程(请求)总的时间
Waiting: 3.6 ----->处理请求的等待的时间
Total: 4.4 ------>整体花费的时间 Percentage of the requests served within a certain time (ms)
% ------>表示完成50%的请求需要的时间是16ms,就是做一个评估。
%
%
%
%
%
%
%
% (longest request) ------>表示完成100%的请求需要的时间为68ms;
You have new mail in /var/spool/mail/root
[root@yinzhengjie ~]#
[root@yinzhengjie ~]# ulimit -n [root@yinzhengjie ~]#
[root@yinzhengjie ~]# ulimit -n ----->临时修改文件的打开数为65535
[root@yinzhengjie ~]# ulimit -n [root@yinzhengjie ~]#
[root@yinzhengjie ~]# ulimit -u [root@yinzhengjie ~]#
[root@yinzhengjie ~]# ulimit -u ------->临时修改进程打开的数为30000
[root@yinzhengjie ~]# ulimit -u [root@yinzhengjie ~]#
[root@yinzhengjie ~]# tail - /etc/security/limits.conf ------>修改配置文件可以永久修改但是但是不能立即生效。需要重启操作系统才好使,和关闭selinux机制很像。
#Add by yinzhengjie
apache hard nofile
apache hard nproc
[root@yinzhengjie ~]#
[root@yinzhengjie httpd]# service httpd stop
Stopping httpd: [ OK ]
[root@yinzhengjie httpd]# chkconfig httpd off
[root@yinzhengjie ~]# lsof -i :
[root@yinzhengjie ~]# netstat -untalp | grep
[root@yinzhengjie ~]#
[root@yinzhengjie ~]# cat /etc/redhat-release
CentOS release 6.6 (Final)
[root@yinzhengjie ~]#
[root@yinzhengjie ~]# uname -r
2.6.-.el6.x86_64
[root@yinzhengjie ~]#
[root@yinzhengjie ~]# uname -m
x86_64
[root@yinzhengjie ~]#
[root@yinzhengjie ~]# rpm -qi pcre
Name : pcre Relocations: (not relocatable)
Version : 7.8 Vendor: CentOS
Release : .el6 Build Date: Fri Sep :: AM PDT
Install Date: Fri Oct :: PM PDT Build Host: c6b8.bsys.dev.centos.org
Group : System Environment/Libraries Source RPM: pcre-7.8-.el6.src.rpm
Size : License: BSD
Signature : RSA/SHA1, Fri Sep :: AM PDT, Key ID 0946fca2c105b9de
Packager : CentOS BuildSystem <http://bugs.centos.org>
URL : http://www.pcre.org/
Summary : Perl-compatible regular expression library
Description :
Perl-compatible regular expression library. ------>Perl兼容的正则表达式库,Apache和Nginx都依赖于CGI,而CGI又通常是以Perl为基准的。
PCRE has its own native API, but a set of "wrapper" functions that are based on
the POSIX API are also supplied in the library libpcreposix. Note that this
just provides a POSIX calling interface to PCRE: the regular expressions
themselves still follow Perl syntax and semantics. The header file
for the POSIX-style functions is called pcreposix.h.
[root@yinzhengjie ~]#
[root@yinzhengjie ~]# yum -y install pcre-devel
[root@yinzhengjie httpd]# pwd
/yinzhengjie/httpd
[root@yinzhengjie httpd]# ll
total
-rw-r--r--. root root Oct : apr-1.6..tar.bz2
-rw-r--r--. root root Oct : apr-util-1.6..tar.bz2
-rw-r--r--. root root Oct : httpd-2.4..tar.bz2
[root@yinzhengjie httpd]# tar xf apr-1.6..tar.bz2
[root@yinzhengjie httpd]# cd apr-1.6.
[root@yinzhengjie apr-1.6.]# ./configure --prefix=/yinzhengjie/apr ---->编译时需要指定安装路径,你可以自定义。
[root@yinzhengjie apr-1.6.]# make -j && make install ----->开始安装
[root@yinzhengjie apr-1.6.]# ls /yinzhengjie/apr/ -----检查是否安装成功
bin build- include lib
[root@yinzhengjie apr-1.6.]#
[root@yinzhengjie apr-util-1.6.]# yum -y install expat-devel ----这个包是安装apr-util时所依赖的。
[root@yinzhengjie apr-1.6.]# cd ..
[root@yinzhengjie httpd]# tar xf apr-util-1.6..tar.bz2
[root@yinzhengjie httpd]# cd apr-util-1.6.
[root@yinzhengjie apr-util-1.6.]# ./configure --prefix=/yinzhengjie/apr-util --with-apr=/yinzhengjie/apr/ ------>因为apr-util是apr的工具,因此我们需要告诉它apr的安装路径
[root@yinzhengjie apr-util-1.6.]# make -j && make install
[root@yinzhengjie ~]# wget https://www.openssl.org/source/openssl-1.0.2l.tar.gz --->如果你的OpenSSL太老了可能会导致没法配置httpd的步骤,我们可以直接安装一下新版本的OpenSSL即可,然后在安装的时候指定安装的路径
[root@yinzhengjie ~]# tar xf openssl-1.0.2l.tar.gz
[root@yinzhengjie ~]# cd openssl-1.0.2l
[root@yinzhengjie ~]# ./config --prefix=/usr/local/openssl ----配置OpenSSL的安装路径
[root@yinzhengjie ~]# make -j ---->编译OpenSSL(最多允许4个编译命令同时执行)
[root@yinzhengjie ~]# make install ---->开始安装
[root@yinzhengjie ~]# mkdir /yinzhengjie/etc
[root@yinzhengjie ~]# cd /yinzhengjie/httpd/
[root@yinzhengjie httpd]# tar xf httpd-2.4..tar.bz2
[root@yinzhengjie httpd]# cd httpd-2.4.
[root@yinzhengjie httpd-2.4.]# ./configure --prefix=/yinzhengjie/apache --sysconfdir=/yinzhengjie/etc/http24 --enable-so --enable-ssl=/usr/local/openssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/yinzhengjie/apr --with-apr-util=/yinzhengjie/apr-util/ --enable-modules=most --enable-mpms-shared=all --with-event
[root@yinzhengjie httpd-2.4.]# make -j && make install
[root@yinzhengjie httpd-2.4.]# cd
[root@yinzhengjie ~]# cd /yinzhengjie/apache/ ---->检查是否安装成功。
[root@yinzhengjie apache]# ll
total
drwxr-xr-x. root root Oct : bin ---->可以使用的工具,基本上都是可执行脚本
drwxr-xr-x. root root Oct : build ----->编译时的一些工具;
drwxr-xr-x. root root Oct : cgi-bin ------>存放CGI执行脚本的目录;
drwxr-xr-x. root root Oct : error ------->存放错误页面的目录;
drwxr-xr-x. root root Oct : htdocs ------>存放网页的目录;
drwxr-xr-x. root root Oct : icons ------->存放一些二进制文件的目录;
drwxr-xr-x. root root Oct : include ------->存放头部文件的目录;
drwxr-xr-x. root root Oct : logs -------->存放日志的目录;
drwxr-xr-x. root root Oct : man -------->存放帮助文档目录;
drwxr-xr-x. root root Oct : manual -------->存放手册的目录;
drwxr-xr-x. root root Oct : modules -------->存放模块的目录;
You have new mail in /var/spool/mail/root
[root@yinzhengjie apache]#
.导出头文件(有人易于它二次开发需要导出,或是后期编译PHP可能也会用到)
[root@yinzhengjie ~]# ln -sv /yinzhengjie/apache/include /usr/include/httpd
`/usr/include/httpd' -> `/yinzhengjie/apache/include'
[root@yinzhengjie ~]#
.导出库文件(由于没有库,我们这里了解一下该命令即可)
[root@yinzhengjie ~]# vim /etc/ld.so.conf.d/http.conf
[root@yinzhengjie ~]# ldconfig -p ------>查看当前系统已经缓存的库文件列表
.导出man手册
[root@yinzhengjie ~]# more /etc/man.config | grep yinzhengjie ----->可以在man路径里面帮助文档路径
MANPATH /yinzhengjie/apache/man
[root@yinzhengjie ~]#
[root@yinzhengjie ~]# man -M /yinzhengjie/apache/man httpd ----->指定目录获取man帮助信息
.添加程序的path环境
[root@yinzhengjie ~]# more /etc/profile.d/httpd.sh
export PATH=/yinzhengjie/apache/bin:$PATH
[root@yinzhengjie ~]#
[root@yinzhengjie ~]# . /etc/profile.d/httpd.sh ----->重新加载一下该配置文件
[root@yinzhengjie ~]#
[root@yinzhengjie ~]# httpd -V ---->查看Apache当前的版本
Server version: Apache/2.4. (Unix)
Server built: Oct ::
Server's Module Magic Number: 20120211:68
Server loaded: APR 1.6., APR-UTIL 1.6.
Compiled using: APR 1.6., APR-UTIL 1.6.
Architecture: -bit
Server MPM: event
threaded: yes (fixed thread count)
forked: yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=
-D HTTPD_ROOT="/yinzhengjie/apache"
-D SUEXEC_BIN="/yinzhengjie/apache/bin/suexec"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="/yinzhengjie/etc/http24/mime.types"
-D SERVER_CONFIG_FILE="/yinzhengjie/etc/http24/httpd.conf"
[root@yinzhengjie ~]#
.启动新版的Apache。
[root@yinzhengjie ~]# apachectl start
[root@yinzhengjie ~]# lsof -i :
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd root 4u IPv6 0t0 TCP *:http (LISTEN)
httpd daemon 4u IPv6 0t0 TCP *:http (LISTEN)
httpd daemon 4u IPv6 0t0 TCP *:http (LISTEN)
httpd daemon 4u IPv6 0t0 TCP *:http (LISTEN)
You have new mail in /var/spool/mail/root
[root@yinzhengjie ~]#
[root@yinzhengjie ~]#
[root@yinzhengjie ~]# curl http://www.yinzhengjie.org.cn ---->验证服务是否启动成功。
<html><body><h1>It works!</h1></body></html>
[root@yinzhengjie ~]# .查看配置文件的目录;
[root@yinzhengjie ~]# cd /yinzhengjie/etc/http24/
[root@yinzhengjie http24]# ll
total
drwxr-xr-x. root root Oct : extra ------>是httpd.conf主配置的补充文件目录;
-rw-r--r--. root root Oct : httpd.conf
-rw-r--r--. root root Oct : magic
-rw-r--r--. root root Oct : mime.types
drwxr-xr-x. root root Oct : original
[root@yinzhengjie http24]#
[root@yinzhengjie http24]# cp httpd.conf{,bak} ----->备份配置文件
[root@yinzhengjie http24]# grep mpm_event_module httpd.conf
LoadModule mpm_event_module modules/mod_mpm_event.so
[root@yinzhengjie http24]#
[root@yinzhengjie ~]# ll /yinzhengjie/etc/http24/extra/
total
-rw-r--r--. root root Oct : httpd-autoindex.conf
-rw-r--r--. root root Oct : httpd-dav.conf
-rw-r--r--. root root Oct : httpd-default.conf
-rw-r--r--. root root Oct : httpd-info.conf
-rw-r--r--. root root Oct : httpd-languages.conf
-rw-r--r--. root root Oct : httpd-manual.conf ------>配置手册是否启动;
-rw-r--r--. root root Oct : httpd-mpm.conf ------>配置httpd的工作模式文件;
-rw-r--r--. root root Oct : httpd-multilang-errordoc.conf
-rw-r--r--. root root Oct : httpd-ssl.conf ------->配置https的文件;
-rw-r--r--. root root Oct : httpd-userdir.conf
-rw-r--r--. root root Oct : httpd-vhosts.conf -------->配置虚拟主机的文件;
-rw-r--r--. root root Oct : proxy-html.conf
[root@yinzhengjie ~]# .自定义启动脚本
其实也不用自定义,直接把之前较低版本的脚本拿来改一下路径即可。
[root@yinzhengjie ~]# cd /etc/init.d/
[root@yinzhengjie init.d]# cp httpd httpd24
[root@yinzhengjie init.d]# more httpd24 | grep httpd=
httpd=/yinzhengjie/apache/bin/httpd ----->指定httpd服务存放处
[root@yinzhengjie init.d]# more httpd24 | grep apachectl=
apachectl=/yinzhengjie/apache/bin/apachectl ----->指定该命令的位置
[root@yinzhengjie init.d]#
[root@yinzhengjie init.d]# more httpd24 | grep pidfile= | grep -v LANG
pidfile=${PIDFILE-/yinzhengjie/apache/logs/httpd.pid} ------>指定进程存放pid的文件
[root@yinzhengjie init.d]#
[root@yinzhengjie ~]# chkconfig --add httpd24
[root@yinzhengjie ~]# chkconfig httpd24 on ------>让其开启开机自启即可;
[root@yinzhengjie ~]# chkconfig httpd24 --list
httpd24 :off :off :on :on :on :on :off
[root@yinzhengjie ~]#
[root@yinzhengjie ~]# service httpd24 restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
[root@yinzhengjie ~]#
压力测试以及编译安装httpd2.4的更多相关文章
- CentOS 6.8编译安装httpd2.2.31+MySQL5.6.31+PHP5.3.27
CentOS 6.8编译安装httpd2.2.31+MySQL5.6.31+PHP5.3.27 说明: 操作系统:CentOS 6.8 32位 准备篇: 一.系统约定 软件源代码包存放位 ...
- Linux压力测试软件Stress安装及使用指南2
stress工具使用指南和结果分析 Linux压力测试软件Stress安装及使用指南 一.Stress是什么 stress是一个linux下的压力测试工具,专门为那些想要测试自己的系统,完全高 ...
- CentOS7编译安装httpd-2.4.41 php7.3
CentOS7编译安装httpd-2.4.41 php7.3 安装参考环境: CentOS Linux release 7.5.1804 (Core) 一.安装依赖包 httpd安装的依赖包 # yu ...
- CentOS7编译安装httpd-2.4.41
安装参考环境: CentOS Linux release 7.5.1804 (Core) 一.安装依赖包 httpd安装的依赖包 # yum -y install pcre-devel # yum - ...
- 网站压力测试工具webbench 安装与使用
webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好用,安装使用也特别方便,并且非常小. 主要是 -t 参数用着比较爽,下面参考了张宴的文章 ...
- Linux压力测试软件Stress安装及使用指南
一.Stress是什么 stress是一个linux下的压力测试工具,专门为那些想要测试自己的系统,完全高负荷和监督这些设备运行的用户. 二.安装 将stress的安装包上传并解压到linux服务 ...
- 在centos6中编译安装httpd-2.4/搭建LAMP
首先确保centos6安装平台安装一下环境: #yum groupinstall "Development Tools" "Server Platform Develo ...
- [笔记] centos6.6编译安装httpd2.4.10
系统安装包是CentOS-6.6-x86_64-minimal.iso 查看一下uname信息 [root@localhost ~]# uname -a Linux localhost.localdo ...
- 编译安装-httpd-2.2.15.tar.gz
编译安装(又称源代码安装) 找到httpd-2.2.15.tar.gz安装包并拖到桌面root文件夹里 解包阶段 tar zxf httpd-2.2.15.tar.gz -C /usr/src 配置阶 ...
随机推荐
- 如何干净的卸载docker
先上服务器环境信息: 卸载的原因: 宿主机过段时间就磁盘100%了,导致continart异常退出,后来找了很多解决方案,才发现是安装docker的时候有个配置文件错误(正常的应该是|Storage ...
- idou老师教你学Istio :如何用istio实现监控和日志采集
大家都知道istio可以帮助我们实现灰度发布.流量监控.流量治理等功能.每一个功能都帮助我们在不同场景中实现不同的业务.那Istio是如何帮助我们实现监控和日志采集的呢? 这里我们依然以Bookinf ...
- commitizen和cz-customizable配置git commit message
起因 团队对提交的commit message格式有约定俗称的要求,但是没有一个统一的规范,导致大家提交的commit message或多或少不太一样.因此,需要一个工具来帮助大家统一commit m ...
- 深入浅出Spark的Checkpoint机制
1 Overview 当第一次碰到 Spark,尤其是 Checkpoint 的时候难免有点一脸懵逼,不禁要问,Checkpoint 到底是什么.所以,当我们在说 Checkpoint 的时候,我们到 ...
- A1046. Shortest Distance(20)
17/20,部分超时. #include<bits/stdc++.h> using namespace std; int N,x,pairs; int a,b; vector<int ...
- Linux内核分析(第二周)
操作系统是如何工作的? 一.总结:三大法宝 1.存储程序计算机 + 函数调用堆栈 + 中断机制 2.堆栈:C语言程序运行时候必须的一个记录调用路径和参数的空间(函数调用框架/提供局部变量/传递参数/保 ...
- 20135327郭皓--Linux内核分析第五周 扒开系统调用的三层皮(下)
Linux内核分析第五周 扒开系统调用的三层皮(下) 郭皓 原创作品转载请注明出处 <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/U ...
- 第二个Sprint ------第七天、第八天、第九天、第十天,第十一天
这几天我们主要讨论界面的设计,也终于有了个初步的界面: 主界面截图
- bash基本功能 -命令的别名和快捷键
命令的别名 == 人的小名 如何查看和设定别名 alias 查看系统中的所有别名 ls --color=auto alias ll = 'ls - l --color=auto' touch abc ...
- Python面向对象高级编程:@property--把方法变为属性
为了限制score的范围,可以通过一个set_score()方法来设置成绩,再通过一个get_score()来获取成绩,这样,在set_score()方法里,就可以检查参数: >>> ...