php.ini里面的memory_limit是什么?

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来缓存,合并线程,降低内存的占用,在此不表。

您的赞助将会支持作者创作及本站运维

发表评论


TOP