您当前的位置: 首页 > 网站编程 > PHP教程 > PHP5配置memory_limit参数讲解

PHP5配置memory_limit参数讲解

作者:不详 来源:网络 发布时间: 2011-09-27 14:28 点击:
PHP5中,对于memory_limit的设定已经从以往的8M扩大到128M的上限。 对于配置中的定义解释是: memory_limit=128M;Maximum amount of memory a script may consume(128MB) 最大单线程的独立内存使用量。也就是一个web请求,给予线程最大的内存使用量的定义。 现有的大部

PHP5配置memory_limit参数讲解

  PHP5中,对于memory_limit的设定已经从以往的8M扩大到128M的上限。
  
  对于配置中的定义解释是:
  
  memory_limit=128M;Maximum amount of memory a script may consume(128MB)
  
  最大单线程的独立内存使用量。也就是一个web请求,给予线程最大的内存使用量的定义。
  
  现有的大部分网站或者论坛应用中,应用软件的配备一般都是以如下的形式搭建:
  
  Nginx(Apache)PHP Memcache Mysql
  
  对于以上的应用软件的采用,优点我就不再多说。但对于Memcache的使用就是为了减少对于数据库的访问的频率的降低,也是提高服务响应的一种办法。但是对于memcache和数据库的数据存储有区别的是,memcache的数据并不是以上数据的形式存储在内存中,而是抽象化了之后以字符的形式,hash表的形式存储在内存之中。这样的存储区别导致,每次memcache的数据抽取必须全部数据反序拟化一次,将所有的数据导入进独立的单一线程中,然后第二部才是进行过滤和抽取你所需要的数据。
  
  在应用过程中,如果是读取数据库的数据,大家应该知道,优化的办法应该是在SQL语句中比保证第一次过滤尽量是提高准确性,只取需要的字段,不要全部所有字段取出之后再在应用中过滤得到自己想要的字段,这样对于服务器的负载会有本质的区别。
  
  如果采用memcache,必然做不到数据库在在第一次就精确过滤这点目标。那么就需要在开始设计表的同时就需要考虑到这点,尽量保证被memcache数据表尽量保证数据的较少,可以多分表来完成。
  
  memory_limit的内存分配,标配是128M。
  
  一旦独立的线程超过了128M,那PHP会报错:
  
  Fatal error:Allowed memory size of33554432bytes
  
  对于8G内存的服务器,如果同时并发的响应达到50,每个都是128M的峰值,那估计也是服务器会卡死的时候。
  
  尽量降低128M的内存配置,如果调整至64M,服务器的负载基本能下降一半左右,如果能调整至32M效果更好。
  
  但是对于应用的要求就更高,很多表建立初期就没有考虑到这个问题,如果你要采用memcache作为数据的存储,必须提前完成优化数据表的设计部署,降低独立线程PHP的内存使用量,服务器的响应和负载降低的就不仅仅是几个百分点的效果了。

分享到:
本文"PHP5配置memory_limit参数讲解"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4