博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 1099 bytes)
阅读量:5776 次
发布时间:2019-06-18

本文共 1237 字,大约阅读时间需要 4 分钟。

解释是可用内存已耗尽,这关系到PHP的memory_limit的设置问题。

这里有两种方法解决

1、修改php.ini

  memory_limit = 128

这种方法需要重启服务器,很显然,此方法对虚拟机有限制。

2、通过ini_set函数修改配置选项值(本人推荐,亲测有用)

  ini_set ('memory_limit', '128M')  

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 of 33554432 bytes对于8G内存的服务器,如果同时并发的响应达到50,每个都是128M的峰值,那估计也是服务器会卡死的时候。
 尽量降低128M的内存配置,如果调整至64M,服务器的负载基本能下降一半左右,如果能调整至32M效果更好。但是对于应用的要求就更高,很多表建立初期就没有考虑到这个问题,如果你要采用memcache作为数据的存储,必须提前完成优化数据表的设计部署,降低独立线程PHP的内存使用量,服务器的响应和负载降低的就不仅仅是几个百分点的效果了。

转载于:https://www.cnblogs.com/lanbei-2018/p/10288369.html

你可能感兴趣的文章
Linux下搭建MySQL集群
查看>>
物联网将让数据中心更为复杂,但更加有趣
查看>>
传Facebook研发新功能 发布合作媒体的专门内容
查看>>
美国国土安全部部长约翰逊就Dyn网络攻击事件发表声明
查看>>
《大数据原理:复杂信息的准备、共享和分析》一一2.6 单向哈希函数
查看>>
开放式网络是实现创新的快速通道
查看>>
《计算机网络课程设计(第2版)》——1.1节计算机网络课程的教学特点
查看>>
震惊!5分钟买到上千个银行卡密码!揭秘盗取银行卡信息三大方法....
查看>>
Objective-C中的属性机制
查看>>
Oracle 日常应用笔记
查看>>
【RAC】集群验证工具cluvfy 实践之二
查看>>
myeclipse svn 修改用户名和密码
查看>>
Found duplicate PV 7UXOslmOGAme9YkHi7cbT6pajucbdppY: using /dev/sdq not /dev/sda
查看>>
福建SEO:根据跳出率和退出率分析用户体验
查看>>
[Java]Socket和ServerSocket学习笔记
查看>>
Nginx是个啥?
查看>>
Java 代码中如何预防空指针异常
查看>>
关于SLA,你到底知多少?
查看>>
布隆过滤器Bloom Filter算法的Java实现(用于去重)
查看>>
Masonry自动布局详解八:复杂ScrollView布局
查看>>