php的Allowed memory size of 134217728 bytes exhausted問題解決辦法


php的Allowed memory size of 134217728 bytes exhausted問題解決辦法

報錯: 
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 128 bytes) in xxxx/mysqli_result.php on line 183

解析: 
134217728/1024/1024 = 128

解決方案1:

通過ini_set函數修改配置選項值

ini_set(‘memory_limit’,’256M’); //升級為256M內存

解決方案2:

1、修改php.ini 

修改php配置
vi /usr/local/php/etc/php.ini
memory_limit = 128 改成memory_limit = 256

php-fpm重啟
/etc/init.d/php-fpm restart
重啟Nginx
service nginx restart


PHP5中,對於memory_limit的設定已經從以往的8M擴大到128M的上限。

對於配置中的定義解釋是: memory_limit = 128M ; Maximum amount of memory a script may consume (128MB) 最大單線程的獨立內存使用量。

也就是一個web請求,給予線程最大的內存使用量的定義。

memory_limit的內存分配,標配是128M。一旦獨立的線程超過了128M,那PHP會報錯: Fatal error: Allowed memory size of 33554432 bytes對於8G內存的服務器,如果同時並發的響應達到50,每個都是128M的峰值,那估計也是服務器會卡死的時候。 
盡量降低128M的內存配置,如果調整至64M,服務器的負載基本能下降一半左右,如果能調整至32M效果更好。但是對於應用的要求就更高,很多表建立初期就沒有考慮到這個問題,如果你要采用memcache作為數據的存儲,必須提前完成優化數據表的設計部署,降低獨立線程PHP的內存使用量,服務器的響應和負載降低的就不僅僅是幾個百分點的效果了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM