网站服务器的搭建与优化笔记

经过一段时间的学习,总结网站服务器的搭建优化的若干笔记。

两台虚拟机:Red Hat Enterprise Linux Server release 5.4 (Tikanga) 内核:2.6.18-164.el5

kangta01=192.168.1.142

kangta02=192.168.1.141

nginx前端=192.168.1.141:80(负载均衡)

varnish中间缓存=192.168.1.141:9090(kangta02)

varnish中间缓存=192.168.1.142:80(kangta01)

nginx后端=192.168.1.141:7070

nginx后端=192.168.1.142:7070

mysql数据库=192.168.1.142:3306


Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,并且在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用,这次我网站后端采用nginx-0.8.53+php-5.2.14(FastCGI)+mysql-5.5.3-m3

服务器上的并发连接测试(因为webbench会耗掉本身的内存与负载)

效果是500个并发连接在20秒内,nginx的负载只去到20%,对于虚拟机600M的内存相当可观的


每分钟可以打开2250个页面的速度,负载跟并发连接功能起到很好的作用
图片
nginx-0.8.53+php-5.2.14(FastCGI)+mysql-5.5.3-m3 的配置可参考另一篇日记

中间采用varnish做缓存代理

Varnish采用了“Visual Page Cache”技术,在内存的利用上,Varnish比Squid具有优势,它避免了Squid频繁在内存、磁盘中交换文件,性能要比Squid高

(因为本人在squid的配置上认识不深,日后再配置用squid做缓存代理的实验)

Varnish的配置请看另一篇日记

 

搭好实验环境

做压力测试,采用另一台客户机做并发连接

客户机的并发连接数为800,持续时间为1分30秒


服务器的IP为192.168.1.141,试的Web连接方式,这里的方式Verb选择 get,path选择要测试的Web页面路径,这里填写/Index.php即动网的首页文件



客户机与服务器建立的连接


服务器端的负载top图

综合以上的测试效果,并发数800,连接时间为1分30秒时

kangta02的负载只达到5-6左右

kangta01上有mysql,负载较高,去到20左右

因为nginx前端做了负载均衡,根据两台虚拟机上应用不同,为了达到性能上的平均

nginx前端分发到192.168.1.142的并发连接少于192.168.1.141的并发连接

weight值与访问量成正比


从varnish的命中率上来看

192.168.1.141这台接受的客户端并发连接请求去到了两万多个(因为综合多次压力测试)

 

192.168.1.142因为前端负载的设置,客户端的并发连接只有一万四千多个

 

在压力测试过程,用浏览器去访问,varnish的命中率也有50%的命中率,在800连接数的压力下,访问的速度也很快(命中率只是拿几个测试而已)

这就是网站架构的优化,各层功能展开后的效果,仅供参考

消耗是CPU,内存只占相当一部分

并发连接数为3000,持续时间为2分钟的压力测试

nginx+php+varnish的负载只去到15左右

nginx+php+varnis+mysql的负载去到了80,可见mysql对内存及cpu的消耗是很大的,建议单独使用一台服务器装mysql

压力测试下的访问速度一般,但varnish下的缓存命中率依然可以达到50%以上

因为机子的性能问题,便不再做压力测试了

你可能感兴趣的:(nginx,Web,网站,varnish,休闲)