如何提高apache+PHP+mysql的相应速度

如何提高apache+PHP+mysql的相应速度

一种课程管理软件(网络教学软件)Moodle,php+mysql的,服务器硬件为opteron 242(1.6G)+1GB+250GB(IDE),同时50位同学登录即宕机,30勉强维持,CPU接近100%,内存占满,网页打开速度缓慢。请问有没有什么办法优化一下。

如果把web的日志关闭是否有明显改善,看了一下access的log,似乎每个文件的访问都记录了

QUOTE:
192.168.90.140 - - [12/Sep/2007:15:01:25 +0800] "GET /theme/standard/styles.php HTTP/1.1" 200 66572
192.168.90.151 - - [12/Sep/2007:15:01:26 +0800] "GET /login/index.php HTTP/1.1" 200 7517
192.168.90.151 - - [12/Sep/2007:15:01:26 +0800] "GET /theme/standard/styles.php HTTP/1.1" 200 66572
192.168.90.151 - - [12/Sep/2007:15:01:26 +0800] "GET /theme/formal_white/styles.php HTTP/1.1" 200 10810
192.168.90.140 - - [12/Sep/2007:15:01:26 +0800] "POST /login/index.php HTTP/1.1" 200 7589
192.168.90.140 - - [12/Sep/2007:15:01:27 +0800] "GET /theme/formal_white/styles.php HTTP/1.1" 200 10810
192.168.90.156 - - [12/Sep/2007:15:01:27 +0800] "POST /user/edit.php HTTP/1.1" 200 35402
192.168.90.156 - - [12/Sep/2007:15:01:27 +0800] "GET /theme/standard/styles.php HTTP/1.1" 200 66572
192.168.90.156 - - [12/Sep/2007:15:01:28 +0800] "GET /theme/formal_white/styles.php HTTP/1.1" 200 10810
192.168.90.115 - - [12/Sep/2007:15:01:28 +0800] "POST /user/edit.php HTTP/1.1" 303 246
192.168.90.115 - - [12/Sep/2007:15:01:28 +0800] "GET /user/view.php?id=192&course=1 HTTP/1.1" 200 7836
192.168.90.115 - - [12/Sep/2007:15:01:29 +0800] "GET /theme/standard/styles.php HTTP/1.1" 200 66572
192.168.90.115 - - [12/Sep/2007:15:01:29 +0800] "GET /theme/formal_white/styles.php HTTP/1.1" 200 10810
192.168.90.115 - - [12/Sep/2007:15:01:29 +0800] "GET /pix/u/f1.png HTTP/1.1" 200 50067
192.168.90.141 - - [12/Sep/2007:15:01:29 +0800] "GET /course/category.php?id=1 HTTP/1.1" 200 10682
192.168.90.141 - - [12/Sep/2007:15:01:29 +0800] "GET /theme/standard/styles.php HTTP/1.1" 200 66572
192.168.90.141 - - [12/Sep/2007:15:01:30 +0800] "GET /theme/formal_white/styles.php HTTP/1.1" 200 10810
192.168.90.141 - - [12/Sep/2007:15:01:30 +0800] "GET /lib/javascript-mod.php HTTP/1.1" 200 34
192.168.90.140 - - [12/Sep/2007:15:01:27 +0800] "GET /theme/standard/styles.php HTTP/1.1" 200 66572
192.168.90.141 - - [12/Sep/2007:15:01:30 +0800] "GET /file.php/1/Screenshot.jpeg HTTP/1.1" 200 18888
192.168.90.124 - - [12/Sep/2007:15:01:31 +0800] "GET /help.php?module=moodle&file=text.html&forcelang= HTTP/1.1" 200 9423
192.168.90.124 - - [12/Sep/2007:15:01:31 +0800] "GET /theme/standard/styles.php HTTP/1.1" 200 66572
192.168.90.124 - - [12/Sep/2007:15:01:31 +0800] "GET /theme/formal_white/styles.php HTTP/1.1" 200 10810
192.168.90.124 - - [12/Sep/2007:15:01:32 +0800] "GET /lib/javascript-static.js HTTP/1.1" 304 -
192.168.90.124 - - [12/Sep/2007:15:01:32 +0800] "GET /theme/standard/styles_ie6.css HTTP/1.1" 304 -
192.168.90.124 - - [12/Sep/2007:15:01:32 +0800] "GET /lib/javascript-mod.php HTTP/1.1" 200 34
192.168.90.124 - - [12/Sep/2007:15:01:32 +0800] "GET /lib/overlib.js HTTP/1.1" 304 -
192.168.90.124 - - [12/Sep/2007:15:01:32 +0800] "GET /lib/cookies.js HTTP/1.1" 304 -
192.168.90.124 - - [12/Sep/2007:15:01:32 +0800] "GET /lib/ufo.js HTTP/1.1" 304 -
192.168.90.124 - - [12/Sep/2007:15:01:32 +0800] "GET /pix/s/smiley.gif HTTP/1.1" 200 2

如果增加一个服务器,也安装一个moodle,只是mysql仍然用原来服务器上面的,两个服务器一起提供web服务,应该会均衡一下负载吧?

除了增加硬件,有什么好办法?

从资源占用这么多判断应该不是带宽的问题吧?单位内部局域网,100/1000M的网络。

增加apache的MAX CLIENTS和ServerLimit会不会有明显的效果?

你说得比较含糊
CPU接近100% apche+php+mysql其他的php优化加速组件安装了吗?
看看负载最大的是apche吗?
光做数据分离
如果是apache的问题,意义不大。
满负载时的TOP发上来看看。


QUOTE:
原帖由 jqjyy 于 2007-9-13 16:38 发表
满负载时的TOP发上来看看。

如图:
不要用prework模式,改用worker模式试试看。

你的apache线程好多阿


QUOTE:
原帖由 chinayx 于 2007-9-17 01:19 发表
不要用prework模式,改用worker模式试试看。

你的apache线程好多阿

两种模式有什么区别?

是不是每个线程表示一个IP的连接?
不要把php编译为apache的module方式,尝试用fastcgi试试看。

100%竟然没有iowa?

那么厉害,我的xeon 3220+sata II跑到50%的时候就会有iowait。


QUOTE:
原帖由 wigeboy 于 2007-9-19 21:23 发表
不要把php编译为apache的module方式,尝试用fastcgi试试看。

100%竟然没有iowa?

那么厉害,我的xeon 3220+sata II跑到50%的时候就会有iowait。

没有编译安装,直接安装的rpm包

如何修改为fastcgi?


QUOTE:
原帖由 chinayx 于 2007-9-17 01:19 发表
不要用prework模式,改用worker模式试试看。

你的apache线程好多阿

把php建议到apache内肯定是很厉害的,随时都是一遍一遍的httpd,而且会不知道到底是php的问题,还是apache的问题。



http://forums.deftechgroup.com/archive/index.php/t-2103.html

如果你想使用fastcgi跑php,按照上面的自己要改的,因为上面的是for cpanel控制面板的,有些路径你要自行对比着改一改,关键就是mod_fcgid.so 这个apache的 mod。

我这边编译前是suphp的方式,编译为fastcgi后加eacc在最新的4核 xeon 3220下面的load 大约降低0.5-1左右,内存则至少减少一倍的占用。


如果你使用了fastcgi,最好再回馈一次给其他人知道结果,谢谢。

截图的时候80端口的连接数目大约在500-700之间,而且我可以知道是哪个见鬼的用户在狂用cpu等资源