免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5957 | 回复: 15
打印 上一主题 下一主题

php+mysql+apache速度变慢? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-05 15:24 |只看该作者 |倒序浏览
有一个内部系统,数据量非常小,运行平台:Redhat linux+apache2.0+php+mysql,2G内存,4个CPU
以前速度一直都不慢,最近却打开页面很慢,请教一下,应该从那些方面入手?会不会是PHP代码的问题?(以前速度都还可以)。
PS:mysql打开了二进制日志记录功能。
麻烦大家指点一下,thanks!

论坛徽章:
0
2 [报告]
发表于 2007-01-05 16:18 |只看该作者
从慢的地方开始找

论坛徽章:
0
3 [报告]
发表于 2007-01-05 19:24 |只看该作者
第一,看看系统负载,是不是高,如果很高看是cpu的原因还是磁盘io的原因或者内存不够用。
第二,看看mysql processlist, 有没有什么查询把表锁住了。
第三,做mysql slow queries log, 看看有没有什么特别慢的查询。
第四,在php的程序中加入一些时间戳调试信息,看看那段程序慢了。

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
4 [报告]
发表于 2007-01-07 09:57 |只看该作者
原帖由 lifeistrue 于 2007-1-5 15:24 发表
有一个内部系统,数据量非常小,运行平台:Redhat linux+apache2.0+php+mysql,2G内存,4个CPU
以前速度一直都不慢,最近却打开页面很慢,请教一下,应该从那些方面入手?会不会是PHP代码的问题?(以前速度都 ...


打开所有的页面都慢,还是打开部分页面慢?
这样子可以逐步对比。

论坛徽章:
0
5 [报告]
发表于 2007-01-08 10:52 |只看该作者
感谢各位回复
是打开该系统部分的页面慢。而打开apache下其他的系统如blog等没有任何问题。
mysql已经开启慢查询日志,设定long_query_time = 5,但是在慢查询日志中没有任何内容。
查看apache的access日志的时候,发现有一个现象如下:
当打开一个页面(用了frame结构),内容如下:

  1. <?
  2.   include ("./inc/common.php");
  3.   ?>
  4. <html>
  5.   <title><?=$title?></title>
  6.   <frameset cols="160,*" frameborder="NO" border="0" framespacing="0">   
  7.     <frame src="./menu.php" name="menu" scrolling="NO" noresize>
  8.     <frame src="./content.php" name="main">
  9.   </frameset>
  10.     <noframes>
  11.       <body>  </body>
  12.    </noframes>
  13. </html>
复制代码

apache日志显示:


  1. 172.18.229.186 - - [08/Jan/2007:10:06:57 +0800] "GET /report/ HTTP/1.1" 200 1994  172.18.229.186 - - [08/Jan/2007:10:07:01 +0800] "POST /report/ HTTP/1.1" 200 2046  172.18.229.186 - - [08/Jan/2007:10:07:01 +0800] "GET /report/menu.php HTTP/1.1" 200 1556  172.18.229.186 - - [08/Jan/2007:10:07:01 +0800] "GET /report/content.php HTTP/1.1" 200 2860
复制代码

事实上,menu.php的内容显示很久后content.php的内容才显示。虽然日志显示是同时的。
感谢各位指点!

论坛徽章:
0
6 [报告]
发表于 2007-01-08 10:56 |只看该作者
原帖由 ttvast 于 2007-1-5 19:24 发表
第一,看看系统负载,是不是高,如果很高看是cpu的原因还是磁盘io的原因或者内存不够用。
第二,看看mysql processlist, 有没有什么查询把表锁住了。
第三,做mysql slow queries log, 看看有没有什么特别慢的查询。
第四,在php的程序中加入一些时间戳调试信息,看看那段程序慢了。

非常感谢指点,系统的负载并不高,而且数据库的数据也不是很多,不到1W条记录^_^
show processlist的时候,没有发现有锁住的表。慢查询也没有发现,第四条正在做~但系统只要登陆进去后就比较快了。而在此前系统一直正常,某一天突然就慢了,非常不解

再次感谢您的回复

论坛徽章:
0
7 [报告]
发表于 2007-01-08 10:57 |只看该作者
原帖由 ua 于 2007-1-5 16:18 发表
从慢的地方开始找

谢谢,正在一步一步的排查。。。

论坛徽章:
0
8 [报告]
发表于 2007-01-08 14:08 |只看该作者
如果慢的时间要在2分钟左右,可以参考一下我碰到的这个问题。
我的网站也曾经发生过这样的问题。登陆特别慢要等1分多钟。进去以后就快。后来反复查找后发现因为系统原因造成http连接没有正常关闭(tcp fin ack没有收到?),因此前面一个进程锁住了session文件,新的进程session_start的时候要等tcp超时才能继续下去。

我不知道这个问题除了和系统上的防火墙和其他设置相关,是不是还有可能和http keepalive有关,你看看关掉keepalive是不是可以解决。

论坛徽章:
0
9 [报告]
发表于 2007-01-08 14:15 |只看该作者
是不是长连接问题?

论坛徽章:
0
10 [报告]
发表于 2007-01-08 18:01 |只看该作者
原帖由 ttvast 于 2007-1-8 14:08 发表
如果慢的时间要在2分钟左右,可以参考一下我碰到的这个问题。
我的网站也曾经发生过这样的问题。登陆特别慢要等1分多钟。进去以后就快。后来反复查找后发现因为系统原因造成http连接没有正常关闭(tcp fin ack没 ...

非常感谢,我这边的时间也在2min左右,我试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP