raksmart活动促销

分享

写回答

发帖

VPS优化求教

国外VPS云主机 国外VPS云主机 2572 人阅读 | 5 人回复

发表于 2010-5-13 13:15:03 | 显示全部楼层 |阅读模式

Linux菜鸟,刚刚购入VPS不久,遇到一些问题请各位高手不吝赐教。我用的LNMP方案,想做一些优化。
1. 在php-fpm.conf中,有个配置叫做<value name="max_children">5</value>。这个值是控制php-cgi的进程的个数。那么这个php-cgi的个数到底有什么用?例如,我启动了一个nginx,他这里启动5个php-cgi,是否意味着最多同时有5个连接?我觉得应该不是,因为我从监控宝中看到nginx的最大并发连接数远远超过这个值。所以,这个php-cgi的进程个数到底会怎样影响服务器的性能?
2. 我的每个php-cgi大概占用32M内存,这个值是否能修改?还是它在运行的时候根据运行的php脚本的状况自动分配出来的?如果可以修改,怎么修改,对于Discuz论坛来说,修改为多少合适?
3. 原来我的<value name="max_children">10</value>这个值设置为10,所以10个php-cgi总共占用大概320M内存,加上其他的进程。给page cache还有buffer cache留下的内存空间比较少。参见下图:
memory1.png

然后我把该值修改为5之后,内存占用情况如下图所示:
memory2.png

那种更合理一些?如果说php-cgi的个数决定了系统可以支撑的最大并发请求,而且我的服务器不用来做别的事情,是否设置它尽可能的高会比较好一些?
4. 对于设置为10的情况,swap交换区会使用200M+ 的空间,对于设置为5,基本上没有使用swap。从这里看来,如果php-cgi数值太高会导致内存紧张而大量使用swap,那么。。。是否应该设置php-cgi低一些好?
5.对于CentOS,我就是用来跑跑LNMP架构的应用(Wordpress, discuz),什么样的系统服务可以停掉?
6.大家怎样做异地数据备份的工作?我知道可以通过ftp或者rsync,前者占用流量太多,后者可以做同步,但是如果我想把数据回滚到特定的某天就不好办了。大家怎么做的?

问题比较多,谢谢大家了

回答|共 5 个

kamaka

发表于 2010-5-13 14:23:59 | 显示全部楼层

凭印像回答你:
1.意味着同时最多5个php请求。你可以试着修改为apache相似的动态模式。看情况,就知道开多少个合适了。一般用不了太多。
2.占用内存,应该是在php.ini中修改,每个进程占服的内存。
3.同一。可以试试动态方式,按实际需求设定数量。但是不推荐修改内存。
4.同一。按实际需求。开多开少都不好。开多浪费,开少可能会等待。超时多的话就必需多开了。一用swap。性能就直线下降。最好不要用。
5.干净系统的话,没有什么需要停的。
6.是备份数据库么?服务商不管的话.自己使用mysqldump.直接复制datadir目录可能会丢数据。
RAKSmart

breakstring

发表于 2010-5-13 15:26:13 | 显示全部楼层

非常感谢!!!只是这个动态模式怎么设置呢?不是很明白。

还有,Nginx,我在nginx.conf中设置了nginx worker_processes 的值为4
可是我在进程里面始终只能看到一个nginx的进程,这是为啥呢?是因为请求量还太小所以一个nginx就搞定了就没有启动其他进程?

对于备份来说,我是想备份数据库和所有的网站文件。我准备采用crontab把数据库备份成脚本文件,然后用RSync把它同步回家里的机器。毕竟需要回滚数据的时候比较少,还是用RSync来减少流量吧。

kamaka

发表于 2010-5-13 18:00:19 | 显示全部楼层

看了下,fpm的配置文件。 <value name="style">static</value>改成 <value name="style">apache_like</value>

                        Process manager settings
                        <value name="pm">

                                Sets style of controling worker process count.
                                Valid values are 'static' and 'apache-like'
                                <value name="style">static</value>

                                Sets the limit on the number of simultaneous requests that will be served.
                                Equivalent to Apache MaxClients directive.
                                Equivalent to PHP_FCGI_CHILDREN environment in original php.fcgi
                                Used with any pm_style.
                                <value name="max_children">2</value>

                                Settings group for 'apache-like' pm style
                                <value name="apache_like">

                                        Sets the number of server processes created on startup.
                                        Used only when 'apache-like' pm_style is selected
                                        <value name="StartServers">20</value>

                                        Sets the desired minimum number of idle server processes.
                                        Used only when 'apache-like' pm_style is selected
                                        <value name="MinSpareServers">5</value>

                                        Sets the desired maximum number of idle server processes.
                                        Used only when 'apache-like' pm_style is selected
                                        <value name="MaxSpareServers">35</value>

                                </value>

                        </value>

nginx的问题不清楚,按说应该是n+1个进程的,可能是名字不同吧。
root      2639     1  0 18:03 ?        00:00:00 nginx: master process /usr/sbin/nginx
www-data  2640  2639  0 18:03 ?        00:00:00 nginx: worker process
www-data  2641  2639  0 18:03 ?        00:00:00 nginx: worker process
www-data  2642  2639  0 18:03 ?        00:00:00 nginx: worker process

[ 本帖最后由 kamaka 于 2010-5-13 06:05 PM 编辑 ]
RAKSmart

breakstring

发表于 2010-5-14 07:51:50 | 显示全部楼层

太感谢了!看样子还得要仔细研究配置文件吖,hehe~~~

nginx可能是上次没有细看,今天看了看吗,的确是n+1个进程

vcbcvbxcv

发表于 2010-5-15 15:22:47 | 显示全部楼层

来了 又走了  对vps不太懂


fzlpic
qqkutu
您需要登录后才可以回帖 登录 | 注册

本版积分规则