分类: LINUX
2008-08-13 20:08:39
在重负荷下,影响apache性能的主要是mpm模块。现在可用的基本是两个,一个是传统(apache 1.3)的prefork,另外一种方式就是 apache2 引入的 worker模式了。据称worker可以降低负荷,根据我的测试,确实如此。但是woker毕竟比较新,所以稳定性需要认真考虑,如果不是有特别需求,用apache 1.3 + prefork是一个比较合适的选择, 2.0还是用worker吧。
worker的配置:
StartServers 2
ServerLimit 80
MaxClients 800
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 10
MaxRequestsPerChild 0
ThreadsPerChild : 每个线程最多接受的连接,这个数值乘以运行的服务器数就是 maxclients 的值了。 maxclients如果要超过256,需要在前面加一个 serverlimit参数,这个参数要在 worker模块前面。
ServerLimit 800
在linux下,mysql的最大连接数是100,如果站点比较大,这个数值肯定是不够的,典型的现象就是在一些论坛上经常出现的 Warning: MySQL Connection Failed: Too many connections
in xxxx.php。在 Debian Sarge中,要解决这个问题是很简单的。
debian的mysql设置全部放在 /etc/mysql/my.cnf 这个文件,只要用vim打开这个文件,加入max_connections参数就可以了,参考:
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
max_connections = 1000