apache配置文件:
配置文件所在位置
./apache2/conf/httpd.conf
进入监控页面:
http://ip:端口/serverstatus
实例:http://localhost:8091/serverstatus
apache调优:
1.AllowOverride这个设置为有两种设置:All和none,如果设置为All,那么程序在运行时会所有的站点查找.htaccess这个文件,如果为了让性能达到最优一般建议设置为none。
2.HostnameLookups和其它DNS如果将这个选项设置为on,那么表示每次访问URL地址时都做NDS和主机查询的操作。一般设置为off。
3.Modul
删除不必须的模块内容,因为模块加载都所消耗时间,加载模块语法为:LoadModule,一般status_module这个监控模块都会在运行时取消。
MPM调优:
MPM全称:Multi-Processing Module(多线程处理模块)
MPM处理的模式有很多种:prefork MPM、worker MPM、BeOS MPM、NetWare MPM、OS/2 MPM、WinNT MPM
类UNIX常用的模式有三种:prefork、worker、event
对于windows的服务器一般使用的是winnt.c的模块对于类unix一般使用的是prefork、worker、
event三种模块中的一种。
下面我们介绍这三种模块的工作原理。
prefork模块
当apache启动之后,系统会生成一个httpd的进程,再由这个进程生成多个子进程,每个子进程只能生成一个线程,每个线程只能处理一个HTTP讲求,如果HTTP请求处理完成后,就会将这个线程和子进程销毁,那么如处理高并发请求时,即如果有很多的HTTP请求从客户端向上服务器时,就得不停的创建子进程和线程,这样会带更多的CPU资源的消耗。
worker模块
当apache启动之后,系统会生成一个httpd的进程,再由这个进程生成多个子进程,每个子进程只能生成多个线程,这个可以最大限度发挥并发作用。因为worker模块相当于prefork模块最大的优点是即使我们同时处理多HTTP请求,系统资源的消耗会降到最小化。但是其它最大的缺点:
一:由于同一个子进程生成的线程是共享相同的内存的,所以如果有某个线程出现异常时,会导致父子进程出现异常。
二:如果某线程出现长连接等待时,其它的线程必须也是在长时间等待。
event模块
为了解决worker模块存在的问题,event模块在worker模块的基础上添加了一个关于管理与分配线程的程序,这样来更的分配系统资源去处理我们的HTTP请求,避免worker模块存在的问题。
通常在类UNIX操作系统下的event的参数设置:
StartServers 10
MinSpareServers 10
MaxSpareServers 15
ServerLimit 20
MaxClients 1000
MaxRequestsPerChild 10000
StartServers,MinSpareServers,MaxSpareServers,ServerLimit,MaxClients,MaxRequestsPerChild
举报/反馈