网站优化之服务器配置优化

小两口婚博

小两口婚博

2016-02-19 16:32

今天图老师小编给大家精心推荐个网站优化之服务器配置优化教程,一起来看看过程究竟如何进行吧!喜欢还请点个赞哦~

  网站的前台页面进行了优化,后端的数据库服务器也进行优化,cgi程序也根据服务器的配置进行了相关的优化,剩下的就是对应用的服务器进行相关的优化了。

  这些web服务器如果按照默认的配置来运行的话,可以满足大部分的需求,如果只需要根据业务的特性来更改几项配置就能获得较好的性能,用户能够得到更加良好的用户体验,那还是很值得的。

  常用的web类服务器有如下几个方面的:

  1 负载均衡类:haproxy nginx

  2 cgi服务器类:apache lighttpd nginx

  3 前端cache类:varnish squid

  本文主要讲讲apache 2.0的配置优化。

  1 apache

  apache1.3支持prefork进程模式,apache2.0支持multi thread模式。

  进程模式和线程模式的却别在于进程模式重量级一些,所以性能稍微低一些;但是,稳定一些,一个进程core掉不影响其它的进程。

  线程模式轻量级,性能较高;但是多个线程共享一个进程空间,一个线程的core就会影响当前的所有线程,稳定度低一些。

  至于选择线程模式还是进程模式需要根据自己的业务需要的选择了,还有就是开发写的程序是不是足够的稳定。

  httpd.conf中下面的几个参数需要注意:

  MaxClients:缺省值是256,描述了最多接受的客户端的数量,如果并发超过256个客户端的话,就会被阻塞住,放到等待的队列里,所以对大并发的网站将这个值设置大一些,如1024,不过这个值需要根据你的硬件的配置,如cpu和内存以及带宽来定,而且2.0的环境下还需要在这个值之前设置ServerLimit 2000,否则启动时会报错

  StartServers:缺省值5,意义是apache启动的时候创建的控制进程数目。

  这个值也可以设置大一些,这样的话,就可以从容处理一开始的大并发MinSpareServers:缺省值5,至少保留的空闲进程数目,如果空闲进程小于这个数目,然后创建1个,1秒后创建2两个,然后1秒后4个直到32个。

  MaxSpareServers:缺省值10,最多的空闲进程的数目,如果超过这个数目的进程数,将会被kill掉

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

  MaxRequestsPerChild:缺省值0,每一个子进程能够处理的请求数,设置为0表示从不终止子进程,不过最好设置为10000或稍大一点值,从而避免内存泄漏,尽早的释放占用的一些资源。

  SendBufferSize:缺省值为操作系统的设置,设置tcp中的缓冲区的大小,以字节为单位,设置这个值需要根据自己的应用来定,对于网络比较拥塞的情况,将值设置为下发包的最大的大小,不过需要注意,这个值会影响每个tcp链接;如果网络情况良好,可以将这个值设置小一些,从而浏览器这边可以较早的得到数据,尽早的开始渲染。

  KeepAlive:缺省值是On,http1.1的协议为了减少以前每次请求都要连接的情况,设置了keepalive这个属性,从而可以减少网络连接的负载;对于cgi的服务器建议将这个值设置为off,由于请求相对不连续,可以提高并发量;然而对于静态文件服务器,如js、css、图片等,由于请求频繁,数据量小,建议打开这个选项,减少网络的开销。

  KeepAliveTimeout:缺省值15,服务器保持连接存活的时间,对于大并发,建议关小一点这个值,从而可以接受更多的请求。建议设置为3~5秒。

  MaxKeepAliveRequests:缺省值100,如果服务器打开的连接接受的请求已经达到这个数目,连接将会被关闭,这个值的优先级高于MaxClients和ThreadsPerChild。

  TimeOut:缺省值300,连接空闲的时间,如果空闲时间大于这个值,连接会被关闭。对于网络延迟比较小,并发比较大,建议将这个值设置小一些,如10。

  LimitRequestBody:缺省值0,PUT或者POST模式请求时的最大包的大小,0值表示没有限制。根据自己的业务来设置这个值,避免一些恶意的过大的请求包导致服务器瘫痪。

  HostnameLookups:缺省值on,输出日志时是否吧用户的IP地址转换为域名,建议关闭这个值,设置为off,dns比较费时间的。

  AllowOverride:缺省值为打开,这样apache会对每个子目录检查htaccess文件,对性能有一定的影响,如果有必要,建议关闭这个值,设置为none

  Options:对于目录的操作设置,建议关闭SymLinksIfOwnerMatch,从而减少lsstat的调用,打开FollowSymLinks

  ServerTokens Prod,减少返回给客户端浏览器的包的大小

  在httpd.conf中注释掉你不需要的的module,一方面可以减少apache的内存占用,毕竟每个module需要一定的内存来保存其信息;另一方面,可以较少一些回调时的不必要的处理流程。

  如果并发很大的话,还需要调整apache服务器的listenbacklog数量。

  listenbacklog=511,缺省值是511(具体也要参考操作系统的相关设置),用于设置apache的等待连接队列的最大数量,如果并发很大,或者遭遇了SYN攻击,需要将这个值设置大一些,如4096,避免一些用户的连接在队列满后被丢弃。

  apache服务器尽量的开启压缩功能,由于传输的基本上都是一些html等文本数据,压缩比是很高的,开启压缩功能,能够将网络传输的字节数降到最少,一方面节约了带宽,毕竟带宽是要花钱的,一方面可以加速下载的时间,提升用户的体验

  通过添加mod_deflate模块,并进行最基本的压缩设置

  AddOutputFilterByType DEFLATE text/html text/plain text/xml后,通过httpwatch观察的测试结果如下:

GET /test.htm HTTP/1.1Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-silverlight, */*Accept-Language: zh-cnAccept-Encoding: gzip, deflateUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Foxy/1; WPS; TencentTraveler 4.0; Foxy/1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)Host: localhostConnection: Keep-AliveVary: Accept-EncodingContent-Encoding: gzipContent-Length: 565Keep-Alive: timeout=5, max=100Connection: Keep-AliveContent-Type: text/html

  1.5K大小的页面test.htm,传输到浏览器时的大小是565字节。压缩比例相当高!

  apache的配置与业务的类型有很大的关系的,所以我们在修改了配置后,最好能够进行一下并发和压力测试,从而能够得到一个较好的值:

  性能测试客户端工具:

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

  1 ab

  ab -n10000 -c100 http://****/php/my.php

  -n总共发起的请求数

  -c并发的请求数

  2 loadrunner

  3 服务器性能查看命令:

  1)iostat

  2)vmstat

  3)top

  4) netstat

  如Php的CGI这边也需要进行一下自身的性能统计,如果cgi性能已经很差了,apache的优化是很难看到。

  性能测试CGI:

  1 XDEBUG工具的使用

  2 CGI代码开启性能测试代码

function getmicrotime(){list($usec, $sec) = explode(" ",microtime());return ((float)$usec + (float)$sec);}$time = getmicrotime();//业务代码echo "p所用时间: ",getmicrotime() - $time, " seconds";

展开更多 50%)
分享

猜你喜欢

网站优化之服务器配置优化

Web开发
网站优化之服务器配置优化

优化SQL Server服务器内存配置的策略

SQLServer
优化SQL Server服务器内存配置的策略

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

基于Linux系统服务器优化及安全配置

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
基于Linux系统服务器优化及安全配置

优化SQL Server数据库服务器内存配置

SQLServer
优化SQL Server数据库服务器内存配置

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

网站优化之页面优化

Web开发
网站优化之页面优化

浅谈如何优化SQL Server服务器

编程语言 网络编程
浅谈如何优化SQL Server服务器

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

用VB制作IE工具条自定义按钮

用VB制作IE工具条自定义按钮

从库到经典资源管理器的修改技巧

从库到经典资源管理器的修改技巧
下拉加载更多内容 ↓