网站改版完成之后,切换服务器。共有3台WEB服务器,2台数据库服务器(一个是MySQL,另一个是Oracle),前面1台
F5负载均衡服务器。切换完成之后,每秒一台服务器请求在120左右的时候,访问的速度相当慢,而且而是静态页面,所以有
了这次的优化之说。(大部分是运维部的人员分析,自己只是参与其中)
情况 :访问静态页面速度很慢,且数据库服务器和WEB服务器的load average: 1.48, 1.65, 1.74,httpd进程出现很多,有堆积的现象。
首先分析页面发送请求个数及请求那些资源是比较费时的。在Firefox中使用httpfox比较方便,数据很直观。
对与那些请求时间比较长的CSS/JS发现原因。
第二个,分析服务器的信息。比如日志信息,dmesg信息,其中dmesg信息中有如下:
ip_conntrack: table full, dropping packet.
ip_conntrack: table full, dropping packet.
ip_conntrack: table full, dropping packet.
printk: 893 messages suppressed.
ip_conntrack: table full, dropping packet.
printk: 11164 messages suppressed.
ip_conntrack: table full, dropping packet.
解决方法:
IP_conntrack 表示连接跟踪数据库(conntrack database),代表NAT机器跟踪连接的数目,连接跟踪表能容纳多少记录是被一个变量控制的,可由内核中的ip- sysctl函数配置。每一个跟踪连接表会占用350字节的内核存储空间,时间一长就会把默认的空间填满。 修改ip_conntrack(重启后不保存): echo "81920" > /proc/sys/net/ipv4/ip_conntrack_max 要重启后保存能够在/etc/sysctl.conf中加: net.ipv4.ip_conntract_max =81920
第三服务器架构之间的问题。服务器配置参数做优化,依然很慢。这时想到可能是域名解析来回在几个服务器之间进行
导致数度在解析时间。这时绑定域名和IP地址。速度一下子提升上来了 -^_^-
其实很多时候,不在实际的环境中,有些问题是想不到的。这时就需要你的耐心和细心了。