PHP的記憶體限制 Allowed memory size of 134217728 bytes exhausted (tried to allocate 1099 bytes) in____PHP

來源:互聯網
上載者:User

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 1099 bytes) in   
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 1099 bytes) in

 解釋是可用記憶體已耗盡,這關係到PHP的memory_limit的設定問題。

這裡有兩種方法解決

1、修改php.ini

memory_limit = 128 這種方法需要重啟伺服器,很顯然,此方法對虛擬機器有限制。

2、通過ini_set函數修改配置選項值 ini_set ('memory_limit', '128M')  

3.如果你的資料庫配置成區分大小寫(資料庫中的欄位為大寫),你查詢時寫的是小寫,一樣會出現這種狀況。

將查詢欄位修改正確即可解決。

 

----------------

  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的記憶體使用量量,伺服器的響應和負載降低的就不僅僅是幾個百分點的效果了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.