-
给某网站Windows主机下Discuz!论坛的一些优化建议 发表于 2010年01月6日 2 条评论近期由于网络方面的问题,该网站双线之一被和谐,故此另外一条线路承受了过多的压力,时不时会出现以下的错误:

看到之后第一反应是调整MySQL连接数,这个数字可以通过show variables like 'max_connections';获得,并在my.cnf中修改。(根据错误的出现频度,下面例子中的数字建议修改为服务器上当前设置的2倍为宜)
[mysqld]
set-variable=max_connections=500不过印象中MySQL连接数不够报的错误应该是“Too many connections”,查了一下,是Windows主机,这也就更怀疑是由于TCP连接过多造成的,这和该网站近期单线访问翻倍的情况也是吻合的。 这个情况应该可以通过修改注册表“ HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersTcpTimedWaitDelay ”,将这个值修改为DWORD值30-60后重启机器来缓解,其默认值240(XP)是为宽带用户普通上网而设定的,并非为服务器而设。这里有这个参数的详细说明。该值在Windows Server 2003下默认是120, Exchange Server则为60。
再看了一下页面的打开速度,见下图:

从图表上看,生成数据的过程并不长,可见数据库负载并不算高(当然,这并不能说明服务器连接数设置一定够用了),但接收时间很长除了说明“世界上最远的距离不是生和死,也不是天涯海角,而是网通到电信”之外,也说明服务器正承受远高于平时双倍的并发连接,因为跨网连接需要更多的时间来进行传输。 这也再次说明需要修改TcpTimedWaitDelay的值。
另外,查看了除html正文外的另外两个导致页面呈现很慢的css和js,发现既没有gzip,也没有做代码优化。 从size上看,就可以知道,这两个文件的下载时间是版面首页的7倍左右,综合js会引发DOM解析等待的因素,十足就是一个典型的性能瓶颈。 恩,建议启用一下gzip压缩,查过响应头得知服务器是IIS6,正好是内置有gzip压缩的版本。 css和js最好能用YUI-Compressor或者Google Colsure优化一下。
最后再上一个图,建议为静态文件设置一下过期时间,也可以稍微降低连接数,同时提高页面展现速度。

相关日志:
相关日志:



淘宝购物返现 2010年01月24日 12:43