mysqld-nt: Out of memory (Needed 1677720 bytes)解決方法
今天發(fā)現(xiàn)網(wǎng)站有點慢,發(fā)現(xiàn)mysql日志中提示mysqld-nt: Out of memory (Needed 1677720 bytes),經(jīng)排查是由于最近調(diào)整了mysql的一些參數(shù)導(dǎo)致,以為內(nèi)存大就不怕了,32位系統(tǒng)真心內(nèi)容利用率很低,據(jù)說不超過4G,我們的32G內(nèi)存真浪費了,以后還是使用win2008 r2或centos系統(tǒng)做服務(wù)器吧。廢話不多說下面為大家分享下解決方法:
因為mysql版本不同可能配置略有區(qū)別,主要就是設(shè)置如下參數(shù)
key_buffer、key_buffer_size、read_buffer_size、sort_buffer_size記住了有這個參數(shù)的就改,沒有也不要添加。修改后一般是降低,然后重啟mysql服務(wù)即可。
核心提示:檢查mysqld配置my.conf,著重看key_buffer_size, max_heap_table_size, tmp_table_size幾個參數(shù),推薦設(shè)置key_buffer_size值為max_heap_table_size的1/4.
因為服務(wù)器內(nèi)存而大富余比較多,前些天把my.conf里的好幾個參數(shù)調(diào)得相當(dāng)大,1G甚至2G,但并不穩(wěn)定,mysqld報出過幾次Out of memory (Needed xxx bytes)這樣的錯誤,分析原因時,想到是32位linux系統(tǒng)上的linux不支持PAE,不能使用超過3G以上的內(nèi)存,所以把改大的幾個參數(shù)適當(dāng)改小了點,最大也只有幾百M的樣子,但還是出現(xiàn)過幾次Out of memory錯誤。于是網(wǎng)上多方查詢,后來受到公式
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections
的啟發(fā),兩次檢查了key_buffer_size, max_heap_table_size, tmp_table_size幾個參數(shù),發(fā)現(xiàn)這三個值的設(shè)置是一樣的,竟然都是512M!
于是改小key_buffer_size到128M,重啟mysqld接下來5個小時的監(jiān)測,沒有再發(fā)生類似錯誤。
改了這幾個參數(shù)后,還是有一條是Out of memory ,繼續(xù)檢查,發(fā)現(xiàn)innodb_buffer_pool_size = 1512M,于是我改為1000M,再啟Mysql居然好了。
注:這臺服務(wù)器一共了才3G內(nèi)存:最終大至如下
key_buffer = 200M
key_buffer_size = 1294963200
#max_join_size = 4294967295
max_join_size = 1294967295
max_allowed_packet = 1M
#table_open_cache = 512
table_cache = 512
sort_buffer_size = 2294967295
read_buffer_size = 2147479552
#write_buffer_size = 4294967295
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
php錯誤Fatal error: Out of memory (allocated 262144) (tried to allocate 19456 bytes
php運行一段時候后出現(xiàn)錯誤:
php錯誤Fatal error: Out of memory (allocated 262144) (tried to allocate 19456 bytes
意思是說:致命錯誤,超出內(nèi)存,已經(jīng)分配allocated 262144,嘗試分配19456 字節(jié)。
解決方法是修改php.ini,加大memory_limit
剛剛著實嚇我一跳,html可以正常訪問,php不行,我還以為是受攻擊呢。
后來看到www.blogguy.cn 上不去了Fatal error: Out of memory (allocated 262144) (tried to allocate 19456 bytes,知道是內(nèi)存不足導(dǎo)致的,可是vps也連不上去,也看不到到底是誰在占內(nèi)存,只能進網(wǎng)站后臺重啟vps,就不知道問題出在哪兒了。記錄下來備案!
修改方法
修改php.ini
如下的區(qū)域
max_execution_time = 120 ; Maximum execution time of each script, in seconds
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
memory_limit = 64M ; Maximum amount of memory a script may consume (64MB)
根據(jù)需要調(diào)整。
重啟一下apache就可以了。
- SQL Server出現(xiàn)System.OutOfMemoryException異常的解決方法
- MySQL Memory 存儲引擎淺析
- mysql Out of memory (Needed 16777224 bytes)的錯誤解決
- SqlServer如何通過SQL語句獲取處理器(CPU)、內(nèi)存(Memory)、磁盤(Disk)以及操作系統(tǒng)相關(guān)信息
- mysql Sort aborted: Out of sort memory, consider increasing server sort buffer size的解決方法
- SQL Server誤設(shè)置max server memory的處理方法
相關(guān)文章
mysql 數(shù)據(jù)同步 出現(xiàn)Slave_IO_Running:No問題的解決方法小結(jié)
mysql replication 中slave機器上有兩個關(guān)鍵的進程,死一個都不行,一個是slave_sql_running,一個是Slave_IO_Running,一個負責(zé)與主機的io通信,一個負責(zé)自己的slave mysql進程。2011-05-05
2022最新版MySQL 8.0.30 安裝及配置教程(小白入門)
這篇文章主要介紹了2022最新版MySQL 8.0.30 安裝及配置教程,安裝過程算是比較簡單的,今天給大家分享的此文比較適合mysql數(shù)據(jù)庫的小白,需要的朋友可以參考下2022-09-09
MySQL啟動報錯問題InnoDB:Unable to lock/ibdata1 error
這篇文章主要介紹了MySQL啟動報錯問題InnoDB:Unable to lock/ibdata1 error,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-07-07
SQL?CREATE?INDEX提高數(shù)據(jù)庫檢索效率的關(guān)鍵步驟詳解
這篇文章主要為大家介紹了SQL?CREATE?INDEX提高數(shù)據(jù)庫檢索效率的關(guān)鍵步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12
MySQL5.6 Replication主從復(fù)制(讀寫分離) 配置完整版
這篇文章主要介紹了MySQL5.6 Replication主從復(fù)制(讀寫分離) 配置完整版,需要的朋友可以參考下2016-04-04
Mysql中大小寫敏感問題導(dǎo)致的MySql Error 1146 Tabel doen’t exist錯誤
這篇文章主要介紹了Mysql中大小寫敏感問題導(dǎo)致的MySql Error 1146 Tabel doen’t exist錯誤,需要的朋友可以參考下2014-10-10

