网站访问慢排查方法及解决方案

当出现网站慢的时候我们脑子中要映出几点原因:
  1.程序代码执行方面
  2.大量数据库操作
  3.域名DNS解析问题
  4.服务器环境
 
我也是这么解决的,下面说下解决中的步骤吧。
  1.打开访问慢的网站观察下情况,通过火狐的fixfox 插件或者 IE的元素查看工具,你网站里面加载的信息会一览无遗的展现出来,并且那些元素加载耗时多少秒等等情况,如何解决能,把远程耗时久的js下载到本地,或者直接删除。
 
  2.我看了下页面中有多处连接数据库操作的地方,并且有远程的数据库操作,并且还有多余的数据库连接代码,话不多说,改之,解决完了发现的确是快点了,但是还是不理想,于是我把页面执行数据库代码放到了数据库中执行没有耗慢的情况。
 
  3.关于域名DNS的情况只是其中一种情况,不要急着找域名商的问题,你可以写个没有数据操作的页面放在同台服务器域名下,看看是不是访问同样慢,如果是才有可能,你还要让你周围的人也看看,最好别是你同公司的人。
 
  4.我来看看服务器的情况吧,是不是CPU使用率过高造成的呢。
 
        a. top 发现cpu使用也不高啊,30% 左右,但是发现一个问题,sleeping 的进程数比较多。擦,最好别是僵尸进程,现在这样的东西不多了。
 
        b. 查看了下timewait的量: 发现有mysqld 和 httpd 的,大部分来自于httpd:命令 netstat -ae|grep TIME_WAIT
 
                如何来解决timewait的量问题呢?
 
TIME_WAIT解决办法:
    vi /etc/sysctl.conf
    编辑文件,加入以下内容:
    net.ipv4.tcp_syncookies = 1
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_tw_recycle = 1
    net.ipv4.tcp_fin_timeout = 30
    net.ipv4.tcp_keepalive_time = 30       保持连接的时间
    net.ipv4.tcp_max_tw_buckets = 100  这个是设置服务器同时保持的time_wait的数目
     然后执行 /sbin/sysctl -p 让参数生效。
 
设置APACHE 的配置文件:
    Timeout 10   与客户端连接超时的时间
    KeepAlive On   一次连接可以多次传输,使的一次连接中可以传递多个HTTP请求
    MaxKeepAliveRequests  50  设置一次连接内,可以进行多少次请求
    KeepAliveTimeout   15    如果服务器已经完成了一次请求,多长时间一直没有接受到下一次请求就会断开连接
 
保存重启APACHE
    设置完已上的操作后:
    netstat -n |awk ‘/^tcp/{++S[$NF]}END{for (i in S ) print i,S[i]}‘
    你会发现非常成功。
 
如果还不够满意可以 再设置下Ulimit参数
    cat >>/etc/security/limits.conf<<EOF
    * soft nofile 655350
    * hard nofile 655350
    EOF
    然后ulimit -SHn了 让生效。
 
    OK,当你再查看的时候 已经发现比较成功了。
 
如你发现mysqld 比较多的话,你可以优化下mysql的性能:见 mysql 性能调优
 
好,已上都做完了,查看了先time_wait 发现有很多 百度机器人作怪挺严重的。    netstat -agn
 
最后只能忍痛割爱,暂时把百度蜘蛛在 robots.txt 屏蔽下,这只是暂时的解决方案。
 
接下来只能赶紧把首页做成纯静态的,Mygod。 到这里就完了。

本文转自:http://www.myhack58.com/Article/sort099/sort0100/2013/41473.htm

时间: 2024-12-24 03:52:04

网站访问慢排查方法及解决方案的相关文章

如何有效减少网页加载时间?20个提高网站访问速度的方法

网友上网都不喜欢用太多的时间等待网页的打开,等待的越长,用户可能会直接关闭网页,这样就会损失很多流量!其次,关键字的排名与网页的打开速度也有关系,这个主要体现搜索引擎对用户体验度上,用户体验度好,排名相对其它网站就好些.因此我觉得我们有必要去提高网页的打开速度,这个不需要太多的成本投入,只需要平时多注意一些小技巧就行了!下面给出20种方法帮你提高网站访问速度缩短网页加载时间. 1.减少页面HTTP请求数量 比较直接的理解就是要减少调用其他页面.文件的数量. A.我们在使用css格式控制的时候,经

一种基于自定义代码的asp.net网站访问IP过滤方法!

对于一些企业内部核心系统,特别是外网访问的时候,为了信息安全,可能需要对外部访问的IP地址作限制,虽然IIS中也提供了根据IP地址或IP地址段进行限制或允许,但并没有提供根据IP地址所在的城市进行限制或允许.本文主要通过自定义扩展IHttpModule接口,考虑到性能IP数据库主要采用QQwry纯真IP数据库(但此数据库并非是官方的,我之前与ip138网站对比过,IP地址信息的准确性大概在90%左右),主要实现不仅可以根据IP地址或IP地址段进行限制或允许(与IIS的功能相同),而且可以根据IP

提高网站访问速度的方法汇总

以下方法都有在公司实际项目中应用,的确能够提升客户端体验和访问速度. 1.建议客户端使用Chrome或高版本IE浏览器: 2.能够实现静态化的页面尽量在服务器端保存静态页面,访问动态页面肯定会比静态页面慢. 3.减少HTTP请求 1)合并压缩js.css,可以使用前端自动化构建工具. 例如:grunt(使用说明:http://www.cnblogs.com/wangfupeng1988/p/4561993.html).gulp . 很不错的google在线js压缩工具:http://closur

Apache服务器网站访问伪静态内页出现No input file specified.的完美解决方案

原文地址:Apache服务器网站访问伪静态内页出现No input file specified.的完美解决方案 启用REWRITE的伪静态功能的时候,首页可以访问,而访问内页的时候,就提示:"No input file specified." 原因在于使用的PHP是fast_cgi模式,而在某些情况下,不能正确识别path_info所造成的错误,Wordpress的伪静态也有一样的问题. Wordpress程序默认的.htaccess里面的规则: 1 HTML " data

测试网站访问速度的5个方法(转)

网页载入速度对于一个网站来讲很关键,Google已经将一个网站的载入速度列入了网站关键字排名的考虑因素当中,也就是说如果你的网站有足够的内容,而且载入速度比别人的网站更快一步的话,那么你就是获得更好的排名.那么下面就赶快测试你的网站,提高网站访问速度吧. 1:用Ping命令简单测网站速度的方法 Ping可以用来检查网络是否通畅或者网络连接速度,点击开始→运行 在运行中输入“cmd”回车或点击确定,输入ping www.你的网址.com 就可以了. (新手只需注意本图红框里的含义即可) Ping结

分析dede网站首页访问慢的方法

今天碰到了一个关于DEDE的问题,dedecms打开首页非常的慢,慢的离谱,加载一个首页而已,竟然花了2分多钟,然后访问里面的内页,速度就非常的快,这是什么情况呢? 阿D处理完问题后,根据平时的处理经验,总结出了很多种原因会导致dede网站访问首页慢的方法.希望大家可以看一下,或许对大家有帮助. 1:没有生成静态html页面,会导致打开速度很慢.阿D建议把首页生成静态的HTML页面,这样可以加快访问速度,大家都知道的,静态的页面比动态有各种的优势对seo也是比较友好! 2:在安装dedecms网

网站访问慢,服务器负载高-系列查找问题方法

如果以后出现报警各网站无法ping通,或者服务器负载过高,可通过以下几条途径查找原因: 1,查看访问日志,查看是否有访问异常,如有,过滤IP,进行IP封装 cat access.log | awk '{print $1}' | sort | uniq –c | sort –n >/tmp/ip.txt netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort –n 2,查看网卡是否有严重丢包现象,ifconfig查

测试网站访问速度的5个方法

网页载入速度对于一个网站来讲很关键,Google已经将一个网站的载入速度列入了网站关键字排名的考虑因素当中,也就是说如果你的网站有足够的内容,而且载入速度比别人的网站更快一步的话,那么你就是获得更好的排名.那么下面就赶快测试你的网站,提高网站访问速度吧. 1:用Ping命令简单测网站速度的方法 Ping可以用来检查网络是否通畅或者网络连接速度,点击开始→运行 在运行中输入“cmd”回车或点击确定,输入ping www.你的网址.com 就可以了. (新手只需注意本图红框里的含义即可) Ping结

网站访问慢延迟高排查

今天早晨9点左右,手机app收到邮件报警,打开一看,提示某个ip上的站点访问异常, 尝试ssh连接,发现非常慢.无法正常连接上去.一会后能正常连接上去,但是延迟很高,基本上无法操作. 更换一下ssh方式,通过相同内网的其他机器ssh登陆后,发现正常.PS:其实在这里的时候就应该可以初步断定是外网网络的问题了. top查看,cpu,内存正常,netstat查看web连接数,并发数300左右.对于apache+php+mysql的站点来说,这样的并发毫无压力.io也正常. 停止httpd服务,网络恢