当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 本站的php的一些高压力下的配置。
帖子发表于 : 2008-11-10 16:56 
论坛管理员

注册: 2005-03-27 0:06
帖子: 10116
系统: Ubuntu 12.04
送出感谢: 7
接收感谢: 128
前端采用 lighttpd 提供HTTP的服务。
比较重要的,开了 expire 模块。

代码:
server.max-connections = 4096

server.max-read-idle = 10
server.max-worker = 8
connection.kbytes-per-second = 300
server.stat-cache-engine = "fam"
server.max-fds = 4096
server.max-keep-alive-requests = 4
server.max-keep-alive-idle = 4

server.max-write-idle = 10
server.event-handler = "linux-sysepoll"
server.network-backend = "linux-sendfile"

$HTTP["url"] =~ "\.(jpg|gif|png|gz|deb|bmp|svg|rar)$" {
     expire.url = ( "" => "access 1 months" )
}

$HTTP["url"] =~ "\.(css|js)$" {
     expire.url = ( "" => "access 6 hours" )
}

expire.url = (
     "/files/" => "access 1 months",
     "/images/"  => "access 1 months",
     "/download/" => "access 1 months",
     "/styles/"  => "modification 7 days",
     "/skins/" => "access 1 months",
     "/themes/" => "access 1 months",
     "/wp-content/themes/" => "access 1 months",

)


php由三个fastcgi轮询提供:

代码:
fastcgi.server    = ( ".php" =>
   (
                ( "host" => "127.0.0.1", "port" => 1026 ),
                ( "host" => "127.0.0.1", "port" => 1027 ),
                ( "host" => "127.0.0.1", "port" => 1028 ),
))


轮询的php进程。
代码:
#!/bin/bash
SPAWNFCGI="/usr/bin/spawn-fcgi"
FCGIPROGRAM="/usr/bin/php-cgi"
FCGIPORT="1026"
FCGISOCKET="/tmp/php-fastcgi1.sock"
PIDFILE="/tmp/php-fastcgi1.pid"
PHP_FCGI_CHILDREN=10
PHP_FCGI_MAX_REQUESTS=5000
FCGI_WEB_SERVER_ADDRS="127.0.0.1"
ALLOWED_ENV="HOME PATH USER"
USERID=www-data
GROUPID=www-data
if test x$PHP_FCGI_CHILDREN = x; then
  PHP_FCGI_CHILDREN=5
fi
export PHP_FCGI_MAX_REQUESTS
export FCGI_WEB_SERVER_ADDRS
ALLOWED_ENV="$ALLOWED_ENV PHP_FCGI_MAX_REQUESTS FCGI_WEB_SERVER_ADDRS"
if test x$UID = x0; then
  EX="$SPAWNFCGI -p $FCGIPORT -f $FCGIPROGRAM -u $USERID -g $GROUPID -C $PHP_FCGI_CHILDREN -P $PIDFILE"
else
  EX="$SPAWNFCGI -p $FCGIPORT -f $FCGIPROGRAM -C $PHP_FCGI_CHILDREN -P $PIDFILE"
fi
$PHP_FCGI_CHILDREN -P $PIDFILE"
E=
for i in $ALLOWED_ENV; do
  E="$E $i=${!i}"
done
env - $E $EX



关于lighttpd在高压力下崩溃的检测程序,5分钟检测一次:
代码:
#!/bin/bash
Line=`w3m -dump_source forum.ubuntu.org.cn|grep phpbbchina|wc -l`
if [ $Line -eq 0 ]
then
  echo "Lighttpd Server is down "
  /etc/init.d/lighttpd stop
  killall -9 lighttpd
  sleep 10
  /etc/init.d/lighttpd start
fi


启动php-cgi开启了xcache支持:
代码:
zend_extension = xcache.so
extension = xcache.so

[xcache.admin]
xcache.admin.auth = Off

[xcache]
xcache.shm_scheme =        "mmap"
xcache.size  =                64M
xcache.count =                 2
xcache.slots =                8K
xcache.ttl   =                 0
xcache.gc_interval =           0
xcache.var_size  =            16M
xcache.var_count =             2
xcache.var_slots =            8K
xcache.var_ttl   =             0
xcache.var_maxttl   =          0
xcache.var_gc_interval =     300
xcache.test =                Off
xcache.readonly_protection = Off
xcache.mmap_path =    "/dev/zero"
xcache.coredump_directory =   "/tmp/phpcore/"
xcache.cacher =               On
xcache.stat   =               On
xcache.optimizer =           Off

[xcache.coverager]
xcache.coverager =          Off

xcache.coveragedump_directory = ""


php-cgi开启了memcache支持
代码:
extension=memcache.so

[memcache]
memcache.dbpath="/var/lib/memcache"
memcache.maxreclevel=0
memcache.maxfiles=0
memcache.archivememlim=0
memcache.maxfilesize=0
memcache.maxratio=0


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 本站的php的一些高压力下的配置。
帖子发表于 : 2008-11-10 17:20 

注册: 2005-03-26 0:02
帖子: 92
送出感谢: 0 次
接收感谢: 0 次
偶不用php啊,偶不用


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 本站的php的一些高压力下的配置。
帖子发表于 : 2008-11-10 18:29 
头像

注册: 2007-07-11 21:43
帖子: 3382
地址: 东江边
系统: archlinux
送出感谢: 15
接收感谢: 7
偶只听说过PHP。嘿嘿。 :em11


_________________
我来了,我看见了,我征服了!
求勾搭,不管饭。


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 本站的php的一些高压力下的配置。
帖子发表于 : 2008-11-14 21:36 
头像

注册: 2007-09-14 21:03
帖子: 1143
地址: 浙江
送出感谢: 1
接收感谢: 1
要收藏,说不定以后用到,,,

以前用phpbb2的时候不是都没问题的吗,,为什么换phpbb3了,就要进行这么多的配置,

phpbb部分还有一个地方可以优化下,,,

看这个图片附件链接
http://forum.ubuntu.org.cn/download/file.php?id=49752&mode=view/so.jpg
这个好像是用php读取文件后,再发送给浏览器,虽然这样防盗链比较好,但是比直接用物理的链接要耗资源,
而且论坛大概有三分之一的帖子都是有图片附件的,很多同学提问时用的错误提示都是以图片的形式给出的,
每个附件都很大,有的甚至快到1M的,为了发送这1M够php忙的了

对了,这几行代码是不是也包括了我说的问题,
代码:
$HTTP["url"] =~ "\.(jpg|gif|png|gz|deb|bmp|svg|rar)$" {
     expire.url = ( "" => "access 1 months" )
}

$HTTP["url"] =~ "\.(css|js)$" {
     expire.url = ( "" => "access 6 hours" )
}

expire.url = (
     "/files/" => "access 1 months",
     "/images/"  => "access 1 months",
     "/download/" => "access 1 months",
     "/styles/"  => "modification 7 days",
     "/skins/" => "access 1 months",
     "/themes/" => "access 1 months",
     "/wp-content/themes/" => "access 1 months",

)


_________________
Say hello to everyday!


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 4 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译