PHP5中,对于memory_limit的设定已经从以往的8M扩大到128M的上限。
memory_limit是什么意思呢?
memory_limit,是最大单线程的独立内存使用量。也就是说用户发起一个web请求,这个线程中最大可以使用的内存是多少。
memory_limit默认配置是128M。也就是,一个线程最大只能占用128M的内存,如果这个线程超过了128M,那PHP会报错:
Fatal error: Allowed memory size of 33554432 bytes
如果一个服务器是4G内存,同时并发数达到32,每个线程都达到占用128M的峰值,内存就占用100%,服务器就死机了(当然可能不用达到32,因为一台服务器不只是web服务在使用内存)。
memory_limit配置的太低,就会影响php程序,导致报错,同样如果配置太高,就会给服务器带来压力,所以这个因地制宜。memory_limit写在php.ini里面,当然,我们可以在php程序文件里面单独定义该文件执行时的memory_limit,比如在php代码里面直接写ini_set("memory_limit","12M");就OK啦。
再进一步,我们可以使用memcache来缓存,合并线程,降低内存的占用,在此不表。
您的赞助将会支持作者创作及本站运维
发表评论